Title: CS 7: Introduction to Computer Programming
1CS 7 Introduction to Computer Programming
2Review
- What are the 5 generation languages (GL)?
- 1 GL machine language
- 2 GL assembly language
- 3 GL high level language
- 4 GL non-procedural, specification language
- 5 GL constraint-based, Artificial Intelligence
language
3Trade-offs among the 5 Gs
- Productivity
- Time to write, debug, maintain code
- Portability
- Ease of taking program written on 1 computer and
moving it to another - Efficiency
- Time it takes code to run
- Amount of space it takes to run
- Task Dependent
- Is the language developed for a specific task?
41 GL
- Example
- 000000 00001 00010 00110 00000 100000
- Add registers 1 and 2, place result in register 6
- Low productivity
- Lots of instructions needed for simple tasks
- Low portability
- Different machine languages for different
architectures - High efficiency
- can take advantage of architecture dependent
features - can write more quick and compact code
- Not task dependent
- Everything ultimately must be in machine code!
52 GL - MIPS
- Example
- add 1, 2, 6
- Add registers 1 and 2, place result in register 6
- Low productivity
- Lots of instructions needed for simple tasks
- Usually 1-to-1 correspondence with machine
language - Easier to read
- Low portability
- Different machine languages for different
architectures - High efficiency
- can take advantage of architecture dependent
features - can write more quick and compact code
- Not task dependent
63 GL Java, C, BASIC, FORTRAN
- Example
- d e f
- Add the values in e and f, place result in d
- High productivity
- 1 instruction can be 100, 1000 lines of machine
code - Much more like human language
- Highly portable
- Run on any machine with necessary compiler,
interpreter - Efficiency
- Not as good as machine code
- Not task dependent
74 GL SQL, Visual Basics GUI Creator
- Example
- FIND ALL RECORDS WHERE NAME IS HOFFMANN
- High productivity
- Easy than 3 GL
- Highly portable
- Run on any machine with necessary compiler,
interpreter - Efficiency
- Not as good as machine code or high level
language - Task dependent
- SQL used for database queries
- Visual Basics GUI Creator is for designing
Graphical User Interfaces (GUIs)
85 GL Prolog, Neural Networks
- Example
- Specify neural network architecture for learning
to map written character to ASCII equivalent - High productivity
- Highly portable
- Efficiency
- Not as good as machine code or high level
language - Task dependent
- Used to solve problems with specific constraints
9Algorithms
10Algorithms - Definition
- Set of instructions used to complete a task
- Can be represented as
- Pseudocode list of steps, is precise but not
implemented in programming language - Flowchart graphical representation
11Algorithms - Representation
- How do you
- Make a peanut butter sandwich?
- Calculative a derivative?
- Find a job?
- Do the hokey pokey?
12Hokey Pokey List of Steps Representation
- Volunteers?
- Anything unclear in the steps the song gives?
13Flowchart symbols
- Action Symbol
- Instructions changing a state
- Decision Symbol
- Instructions testing a state
- Flowline
- Instructions transferring to next step
- Start/End Symbol
14Control Structures
- Bohm Jacopini showed all programs could be
written in terms of 3 structures - Sequence which instruction should be done next?
- Selection select between options
- Repetition repeat an action while a given
condition stays true
15Sequence
- 1) Open the jar
- 2) Scoop out the peanut butter
- 3) Spread the peanut butter on the bread
16Selection
- Single Selection (if)
- If youve won the lottery
- raise your hand
- Double Selection (if-else)
- If youre happy
- smile
- else
- frown
True
Won lottery?
Raise Hand
False
True
False
Happy?
Smile
Frown
17Selection (continued)
- Multiple Selection (switch)
- If the light is ...
- red -gt stop
- green -gt go
- yellow -gt slow down
True
Light Red?
Stop
False
True
Light Green?
Go
False
True
Light Yellow?
Slow Down
False
18Repetition
while its still clumpy Stir the mixture
True
Mixture Clumpy?
Stir
False
ask parents if must eat vegetables while
parents say Yes
Must I eat Veggies?
Parent say Yes?
True
False
19Repetition (continued)
Counter 1
Teaching a baby to count from 1 to 10 counter
1 if counter lt 10 increment counter print
counter number
Add 1 to counter
True
Counter 10?
Print counter
False
20Hokey Pokey - Flowchart
21Pseudocode
- Pseudocode - Algorithm written in way that
resembles code - Example (from BlackJack)
- method computeScore(cards)
- for each card in hand
- if card is ace
- add 1 to score
- add 1 to numAces
- else if card is face card
- add 10 to score
- otherwise
- add face value to score
- while numAces gt 0 and count lt 21
- add 10 to counter
- return counter value
22Algorithms - characteristics
- What kinds of things are we seeing in these
tasks? - They have an input, an output, and do some
processing - That processing needs to terminate, be
unambiguous, and simple to perform (we want to be
able to easily implement it from the algorithm)
23References
- Deitel, H.M., and Deitel, P.J. Java How to
Program, 3rd edition. Chapter 4,5 - Wikipedia.
- http//www.soi.city.ac.uk/tony/dbms/4ges.html