©xiaoying gao, peter andreae what is programming about comp 102 #2 2013t2 xiaoying sharon gao...
Post on 14-Dec-2015
219 Views
Preview:
TRANSCRIPT
©Xiaoying Gao, Peter Andreae
What is Programming About
COMP 102 #2 2013T2
Xiaoying Sharon GaoComputer Science
Victoria University of Wellington
©Xiaoying Gao, Peter Andreae
COMP 102 2:2Menu
• More course details• Strategies for learning in COMP102.• Programs and programming languages• Cycle: design, edit, test
Reading: • Text Book Chapter 1
Admin:• Assignment 1 is handed out.• Sign up for two lab sessions! (Labs start tomorrow)• Voting for a Class Rep
• Put a message about yourself on the forum if you want to be class representative; the class will vote next week.
• Trouble with passwords? Go to school office: CO 358• 1st year help: Craig.Watterson@ecs.vuw.a.cnz, CO353
©Xiaoying Gao, Peter Andreae
COMP 102 2:3Lab Facilities
• All scheduled labs are in CO 242 • CO243 is always available at our lab times, no tutor.• Can use any of CO242, 243, 237, 238, 239 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.
©Xiaoying Gao, Peter Andreae
COMP 102 2:4Lectures 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
©Xiaoying Gao, Peter Andreae
COMP 102 2:5
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
©Xiaoying Gao, Peter Andreae
COMP 102 2:6Machine & 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
::
©Xiaoying Gao, Peter Andreae
COMP 102 2:7High 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
©Xiaoying Gao, Peter Andreae
COMP 102 2:8Programming 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
©Xiaoying Gao, Peter Andreae
COMP 102 2:9Java
• 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.
©Xiaoying Gao, Peter Andreae
COMP 102 2:10Constructing Programs
Design
Edit
Test
• The Design—Edit—Test cycle:
Given a task:
©Xiaoying Gao, Peter Andreae
COMP 102 2:11Specialised 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
??
©Xiaoying Gao, Peter Andreae
COMP 102 2:12Building 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.
©Xiaoying Gao, Peter Andreae
COMP 102 2:13A 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
©Xiaoying Gao, 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:15
©Xiaoying Gao, Peter Andreae
COMP 102 2:16A 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"); }
}}
©Xiaoying Gao, Peter Andreae
COMP 102 2:17Learning 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.
top related