+ All Categories
Home > Documents > © Peter Andreae What is Programming About COMP 102 #2 2011 T1 Peter Andreae Computer Science...

© Peter Andreae What is Programming About COMP 102 #2 2011 T1 Peter Andreae Computer Science...

Date post: 31-Dec-2015
Category:
Upload: audrey-stone
View: 216 times
Download: 0 times
Share this document with a friend
Popular Tags:
17
© Peter Andreae What is Programming About COMP 102 #2 2011 T1 Peter Andreae Computer Science Victoria University of Wellington
Transcript
Page 1: © Peter Andreae What is Programming About COMP 102 #2 2011 T1 Peter Andreae Computer Science Victoria University of Wellington.

© Peter Andreae

What is Programming About

COMP 102 #2

2011 T1

Peter AndreaeComputer Science

Victoria University of Wellington

Page 2: © Peter Andreae What is Programming About COMP 102 #2 2011 T1 Peter Andreae Computer Science Victoria University of Wellington.

© Peter Andreae

COMP 102 2:2Menu

• More course details• Strategies for learning in COMP102.• Programs and programming languages• Object Oriented Programming

Reading: • Text Book Chapter 1

Announcements:• Sign up for a lab session! (Labs start Wed/Thu)• Voting for a Class Rep

• Put a message about yourself on the forum if you want to be class representative; the class will vote on Monday.

• Trouble with passwords? Go to school office: CO 358

Page 3: © Peter Andreae What is Programming About COMP 102 #2 2011 T1 Peter Andreae Computer Science Victoria University of Wellington.

© Peter Andreae

COMP 102 2:4Lab Facilities

• All scheduled labs are in CO 239 and 243(or VS2.26 at A&D)

• Can use any of CO 237, 238, 239 and 243 when not booked for a course.

• Can also use home computers.

• The number of workstations is limited⇒ need to be considerate

⇒ cannot guarantee workstations available at just the time you want.

Page 4: © Peter Andreae What is Programming About COMP 102 #2 2011 T1 Peter Andreae Computer Science Victoria University of Wellington.

© Peter Andreae

COMP 102 2:5Lectures vs Textbook

Lectures • Interactive • Multiple media • Real time

Good for • Overview • Motivation • Problem solving methods• Understanding• Illustration

Textbook • One way • Visual only • Static • Re-readable • Carefully checked and edited

Good for• Detailed explanations• Lists of facts and rules• Careful definitions• Large examples

Page 5: © Peter Andreae What is Programming About COMP 102 #2 2011 T1 Peter Andreae Computer Science Victoria University of Wellington.

© Peter Andreae

COMP 102 2:6

A program is a specification for the behaviour of a computer:

• What the computer should do when: • the program is started• the user types something• the user clicks with the mouse• a message arrives over the network• some input from a camera/switch/sensor arrives.• ……

• Responses may be simple or very complex.

• A program consists of • descriptions of responses to events/requests • written as instructions • in a language the computer can understand:

• Low level, High level languages, Specialised languages

What is a Program

Page 6: © Peter Andreae What is Programming About COMP 102 #2 2011 T1 Peter Andreae Computer Science Victoria University of Wellington.

© Peter Andreae

COMP 102 2:7Machine & Assembly

Language• What the computer can understand

• Different for each computer

• Very detailed, low-level control of the computer

• Horrible to read

::

00011001 01001111 01101001 00111010 00101001 10110101

::

copy the contents of memory location 143 into register 1.

add the contents of memory location 116 to the contents of register 1.

copy the contents of register 1 to memory location 181.

::

LD d1 143AD d1 116ST d1 181

::

Page 7: © Peter Andreae What is Programming About COMP 102 #2 2011 T1 Peter Andreae Computer Science Victoria University of Wellington.

© Peter Andreae

COMP 102 2:8High Level Programming

Languages• designed for people to use• designed to be translated into

machine language• compiled (translated all at once), or• interpreted (translated one step at a time), or• compiled to an intermediate language, then

interpreted

Must be • Precise: no ambiguity about what to do• Expressive: must be able to specify whatever you want

done.• Readable: People must be able to read the

instructions.• Translatable: able to be translated into machine

language• Concise: not “long-winded” or redundant

SmalltalkML

AdaC++

EiffelProlog

HaskellMiranda

JavaC#

PythonScratch

GameMakerAlice

FORTRANLISPAlgol

COBOLBasic

CPascalSimulaModula

PHPJavascript

Page 8: © Peter Andreae What is Programming About COMP 102 #2 2011 T1 Peter Andreae Computer Science Victoria University of Wellington.

© Peter Andreae

COMP 102 2:9Specialised language:

MazeMouse• Writing a program to control a Mouse in a Maze

• The mouse should get out of the maze• No matter what shape the maze is!!

• The program must cope with “the general case”!

• Very Simple Language:• Sequence of Forward, Left, and/or Right

eg: FLFR

• What should the mouse do when • there’s a space ahead

• there’s a space only to the left

• there’s a space only to the right

• there’s space only to the sides

• it’s in a dead-end

??

Page 9: © Peter Andreae What is Programming About COMP 102 #2 2011 T1 Peter Andreae Computer Science Victoria University of Wellington.

© Peter Andreae

COMP 102 2:10Programming Languages

• Different languages support different paradigms: • imperative, • object-oriented, • functional, • logic programming, ...

Object Oriented programming languages:• Organise program around Classes (types) of objects

• Each class of objects can perform a particular set of actions

• Most instructions consist of asking an object to performone of its actions

Page 10: © Peter Andreae What is Programming About COMP 102 #2 2011 T1 Peter Andreae Computer Science Victoria University of Wellington.

© Peter Andreae

COMP 102 2:11Java

• A high-level Object-Oriented programming language

• Designed by Sun Microsystems, early-mid 1990's.

• Widely used in teaching and industry.

• Related to C++, but simpler. Similar to C#.

• Good for interactive applications.

• Supports implementation in Web environment (applets).

• Extensive libraries of predefined classesto support, UIs, graphics, databases, web applications, ...

• Very portable between kinds of computers.

Page 11: © Peter Andreae What is Programming About COMP 102 #2 2011 T1 Peter Andreae Computer Science Victoria University of Wellington.

© Peter Andreae

COMP 102 2:12Constructing Programs

Design

Edit

Test

• The Design—Edit—Test cycle:

Given a task:

Page 12: © Peter Andreae What is Programming About COMP 102 #2 2011 T1 Peter Andreae Computer Science Victoria University of Wellington.

© Peter Andreae

COMP 102 2:13Building programs

• Specification:• Work out what you want the program to accomplish

• Design• Work out what the computer must do to accomplish the task

• Edit• Express the design in a programming language

• instructions for individual steps, • structure of the program

• Test• Run the program and see whether it works as intended

• may need to try it out on lots of different cases.

Page 13: © Peter Andreae What is Programming About COMP 102 #2 2011 T1 Peter Andreae Computer Science Victoria University of Wellington.

© Peter Andreae

COMP 102 2:14A program for the Maze

MouseSpecification

• Program to get the mouse out of any maze with a reachable exit(Mouse always starts in the top left corner facing right)

Design • "make the mouse move into an empty space,

When there is a choice, go forward if possible, otherwise to the left"

Edit• space ahead

• space only to the left

• space only to the right

• space only to the sides

• dead-end

??F

LF

RF

LF

LLF

Program

Page 14: © Peter Andreae What is Programming About COMP 102 #2 2011 T1 Peter Andreae Computer Science Victoria University of Wellington.

© Peter Andreae

Testing the program

• (Try it out with the MazeMouse demo)

COMP 102 2:15

Page 15: © Peter Andreae What is Programming About COMP 102 #2 2011 T1 Peter Andreae Computer Science Victoria University of Wellington.

© Peter Andreae

A different task:

Specification:• Find the average of a sequence of numbers from the user

• Design:

• Initialise a count and a running total to 0• Ask the user to enter the numbers• Repeat until there are no more numbers:

• read the next number• add it to the total• increase the count

• Print out the total / count

COMP 102 2:16

Page 16: © Peter Andreae What is Programming About COMP 102 #2 2011 T1 Peter Andreae Computer Science Victoria University of Wellington.

© Peter Andreae

COMP 102 2:17A Java Program

import comp102.*;/** Program to compute the average of a sequence of numbers

*/public class MeanFinder {

public void findMean () {double total= 0;int count =0;UI.print( "Enter numbers (followed by 'done'): " );while ( UI.hasNextDouble( ) ) {

total = total + UI.nextDouble( );count = count + 1;

}if (count > 0) {

UI.printf( "Mean = %5.2f \n", (total/count) ); }else {

UI.println( "You entered no numbers"); }

}}

Page 17: © Peter Andreae What is Programming About COMP 102 #2 2011 T1 Peter Andreae Computer Science Victoria University of Wellington.

© Peter Andreae

COMP 102 2:18Learning to Program in Java

What’s involved?

• Understand what the computer can do and what the language can specify

• Problem solving:• program design,• data structuring,

• Programming language (Java):• syntax and semantics• style and common patterns• libraries of code written by other people

• Testing and Debugging (fixing).

• Common patterns in program design.• Important data structures and algorithms.


Recommended