Presentation is loading. Please wait.

Presentation is loading. Please wait.

©Xiaoying Gao, Peter Andreae What is Programming About COMP 102 #2 2013T2 Xiaoying Sharon Gao Computer Science Victoria University of Wellington.

Similar presentations


Presentation on theme: "©Xiaoying Gao, Peter Andreae What is Programming About COMP 102 #2 2013T2 Xiaoying Sharon Gao Computer Science Victoria University of Wellington."— Presentation transcript:

1 ©Xiaoying Gao, Peter Andreae What is Programming About COMP 102 #2 2013T2 Xiaoying Sharon Gao Computer Science Victoria University of Wellington

2 ©Xiaoying Gao, Peter Andreae COMP 102 2:2 Menu 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 st year help: CO353

3 ©Xiaoying Gao, Peter Andreae COMP 102 2:3 Lab 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.

4 ©Xiaoying Gao, Peter Andreae COMP 102 2:4 Lectures 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

5 ©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

6 ©Xiaoying Gao, Peter Andreae COMP 102 2:6 Machine & Assembly Language What the computer can understand Different for each computer Very detailed, low-level control of the computer Horrible to read : : 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 143 AD d1 116 ST d1 181 :

7 ©Xiaoying Gao, Peter Andreae COMP 102 2:7 High 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 Smalltalk ML Ada C++ Eiffel Prolog Haskell Miranda Java C# Python Scratch GameMaker Alice FORTRAN LISP Algol COBOL Basic C Pascal Simula Modula PHP Javascript

8 ©Xiaoying Gao, Peter Andreae COMP 102 2:8 Programming 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 perform one of its actions

9 ©Xiaoying Gao, Peter Andreae COMP 102 2:9 Java 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 classes to support, UIs, graphics, databases, web applications,... Very portable between kinds of computers.

10 ©Xiaoying Gao, Peter Andreae COMP 102 2:10 Constructing Programs Design Edit Test The Design—Edit—Test cycle: Given a task:

11 ©Xiaoying Gao, Peter Andreae COMP 102 2:11 Specialised 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 ??

12 ©Xiaoying Gao, Peter Andreae COMP 102 2:12 Building 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.

13 ©Xiaoying Gao, Peter Andreae COMP 102 2:13 A program for the Maze Mouse Specification 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

14 ©Xiaoying Gao, Peter Andreae Testing the program (Try it out with the MazeMouse demo) COMP 102 2:14

15 ©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

16 ©Xiaoying Gao, Peter Andreae COMP 102 2:16 A 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"); }

17 ©Xiaoying Gao, Peter Andreae COMP 102 2:17 Learning 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.

18 ©Xiaoying Gao, Peter Andreae COMP 102 2:18 Constructing Programs Initial Design Edit : typing in the Java code Compile : Translating to executable instructions Run : Testing the program to see that it works The Edit—Compile—Run cycle:

19 ©Xiaoying Gao, Peter Andreae COMP 102 2:19 What is a Computer? A computer is a machine that manipulates information Words, Sentences, Documents Numbers, Tables, Measurements Instructions, Rules, Procedures Relationships, Concepts, Categories Indexes, Directories, Maps Sounds, Pictures, Shapes Tunes, Stories, Poems Designs Theories

20 ©Xiaoying Gao, Peter Andreae COMP 102 2:20 Information: is the stuff of minds, not hands can be created from nothing is not conserved you can copy it you can communicate it you can delete/forget it

21 ©Xiaoying Gao, Peter Andreae COMP 102 2:21 Computers are Information Machines Manipulating information requires a different kind of machine from manipulating matter or energy: Represent information. Patterns of bits (on/off, high/low voltage, north/south, light/dark …) [L&L 1.1, appendix B and C] Copy/move information. copy bit patterns from one place to another eg, from main memory to the screen memory Transform information. Construct new bit patterns out of old ones to represent new information

22 ©Xiaoying Gao, Peter Andreae COMP 102 2:22 General purpose computers For any single task: Build a Special Purpose Computer. Expensive to design. Expensive to produce unless large market (eg, watches, calculators) Hard to modify! Program a General Purpose Computer to act like a special purpose computer. One physical machine for lots of tasks. Cheap to produce because large market (Relatively) easy to instruct to act as any particular machine. (Relatively) easy to modify if task changes Computers are customisable machines

23 ©Xiaoying Gao, Peter Andreae COMP 102 2:23 Computer Structure. Hardware Structure (simplified) (L&L: 1.2) Memory holds data and instructions (programs) Main Memory Central Processing Unit (CPU) Hard Disk USB mem stick CDROM /DVD Keyboard Modem Speakers Mouse/ Tablet Monitor Network (L&L 1.3)


Download ppt "©Xiaoying Gao, Peter Andreae What is Programming About COMP 102 #2 2013T2 Xiaoying Sharon Gao Computer Science Victoria University of Wellington."

Similar presentations


Ads by Google