cs 7: introduction to computer programming algorithms
TRANSCRIPT
![Page 1: CS 7: Introduction to Computer Programming Algorithms](https://reader034.vdocuments.site/reader034/viewer/2022042718/56649e585503460f94b522a0/html5/thumbnails/1.jpg)
CS 7: Introduction to Computer Programming
Algorithms
![Page 2: CS 7: Introduction to Computer Programming Algorithms](https://reader034.vdocuments.site/reader034/viewer/2022042718/56649e585503460f94b522a0/html5/thumbnails/2.jpg)
Review 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”
![Page 3: CS 7: Introduction to Computer Programming Algorithms](https://reader034.vdocuments.site/reader034/viewer/2022042718/56649e585503460f94b522a0/html5/thumbnails/3.jpg)
Trade-offs among the 5 G’s 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?
![Page 4: CS 7: Introduction to Computer Programming Algorithms](https://reader034.vdocuments.site/reader034/viewer/2022042718/56649e585503460f94b522a0/html5/thumbnails/4.jpg)
1 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!
![Page 5: CS 7: Introduction to Computer Programming Algorithms](https://reader034.vdocuments.site/reader034/viewer/2022042718/56649e585503460f94b522a0/html5/thumbnails/5.jpg)
2 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
![Page 6: CS 7: Introduction to Computer Programming Algorithms](https://reader034.vdocuments.site/reader034/viewer/2022042718/56649e585503460f94b522a0/html5/thumbnails/6.jpg)
3 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
![Page 7: CS 7: Introduction to Computer Programming Algorithms](https://reader034.vdocuments.site/reader034/viewer/2022042718/56649e585503460f94b522a0/html5/thumbnails/7.jpg)
4 GL – SQL, Visual Basic’s 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 Basic’s GUI Creator is for designing Graphical
User Interfaces (GUIs)
![Page 8: CS 7: Introduction to Computer Programming Algorithms](https://reader034.vdocuments.site/reader034/viewer/2022042718/56649e585503460f94b522a0/html5/thumbnails/8.jpg)
5 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
![Page 9: CS 7: Introduction to Computer Programming Algorithms](https://reader034.vdocuments.site/reader034/viewer/2022042718/56649e585503460f94b522a0/html5/thumbnails/9.jpg)
Some Notes
Syllabus Typo (5 not 6 projects) Make sure to read all of the relevant
sections of book for the week before the first lecture of that week
Labs start today
![Page 10: CS 7: Introduction to Computer Programming Algorithms](https://reader034.vdocuments.site/reader034/viewer/2022042718/56649e585503460f94b522a0/html5/thumbnails/10.jpg)
Algorithms
![Page 11: CS 7: Introduction to Computer Programming Algorithms](https://reader034.vdocuments.site/reader034/viewer/2022042718/56649e585503460f94b522a0/html5/thumbnails/11.jpg)
Algorithms - 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
![Page 12: CS 7: Introduction to Computer Programming Algorithms](https://reader034.vdocuments.site/reader034/viewer/2022042718/56649e585503460f94b522a0/html5/thumbnails/12.jpg)
Algorithms - Representation
How do you… Make a peanut butter sandwich? Calculative a derivative? Find a job? Do the hokey pokey?
![Page 13: CS 7: Introduction to Computer Programming Algorithms](https://reader034.vdocuments.site/reader034/viewer/2022042718/56649e585503460f94b522a0/html5/thumbnails/13.jpg)
Hokey Pokey – List of Steps Representation
Volunteers? Anything unclear in the steps the
song gives?
![Page 14: CS 7: Introduction to Computer Programming Algorithms](https://reader034.vdocuments.site/reader034/viewer/2022042718/56649e585503460f94b522a0/html5/thumbnails/14.jpg)
Flowchart symbols
Action Symbol Instructions changing a state
Decision Symbol Instructions testing a state
Flowline Instructions transferring to next step
Start/End Symbol
![Page 15: CS 7: Introduction to Computer Programming Algorithms](https://reader034.vdocuments.site/reader034/viewer/2022042718/56649e585503460f94b522a0/html5/thumbnails/15.jpg)
Control 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
![Page 16: CS 7: Introduction to Computer Programming Algorithms](https://reader034.vdocuments.site/reader034/viewer/2022042718/56649e585503460f94b522a0/html5/thumbnails/16.jpg)
Sequence
1) Open the jar 2) Scoop out the peanut butter 3) Spread the peanut butter on the
bread
![Page 17: CS 7: Introduction to Computer Programming Algorithms](https://reader034.vdocuments.site/reader034/viewer/2022042718/56649e585503460f94b522a0/html5/thumbnails/17.jpg)
Selection Single Selection (if)
If you’ve won the lottery: raise your hand
Double Selection (if-else) If you’re happy: smile else: frown
Won lottery?
Raise Hand
True
False
Happy? SmileTrueFalse
Frown
![Page 18: CS 7: Introduction to Computer Programming Algorithms](https://reader034.vdocuments.site/reader034/viewer/2022042718/56649e585503460f94b522a0/html5/thumbnails/18.jpg)
Selection (continued)
Multiple Selection (switch)If the light is ... red -> stop green -> go yellow -> slow down
LightRed?
Stop
True
False
LightGreen?
Go
False
LightYellow?
SlowDown
False
True
True
![Page 19: CS 7: Introduction to Computer Programming Algorithms](https://reader034.vdocuments.site/reader034/viewer/2022042718/56649e585503460f94b522a0/html5/thumbnails/19.jpg)
Repetition
While
Do-while
MixtureClumpy?
StirTrue
False
Parent say“Yes”?
True
False
Must I eatVeggies?
ask parents if must eat
vegetables
while parents say “Yes”
while it’s still clumpy
Stir the mixture
![Page 20: CS 7: Introduction to Computer Programming Algorithms](https://reader034.vdocuments.site/reader034/viewer/2022042718/56649e585503460f94b522a0/html5/thumbnails/20.jpg)
Repetition (continued)
For
Counter ≤ 10?
Print counter
True
False
Counter = 1
Add 1to counter
Teaching a baby to count from 1 to 10:
counter = 1
if counter <= 10:
increment counter
print counter number
![Page 21: CS 7: Introduction to Computer Programming Algorithms](https://reader034.vdocuments.site/reader034/viewer/2022042718/56649e585503460f94b522a0/html5/thumbnails/21.jpg)
Hokey Pokey - Flowchart
![Page 22: CS 7: Introduction to Computer Programming Algorithms](https://reader034.vdocuments.site/reader034/viewer/2022042718/56649e585503460f94b522a0/html5/thumbnails/22.jpg)
Pseudocode 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 > 0 and count < 21: add 10 to counter return counter value
![Page 23: CS 7: Introduction to Computer Programming Algorithms](https://reader034.vdocuments.site/reader034/viewer/2022042718/56649e585503460f94b522a0/html5/thumbnails/23.jpg)
Algorithms - 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)
![Page 24: CS 7: Introduction to Computer Programming Algorithms](https://reader034.vdocuments.site/reader034/viewer/2022042718/56649e585503460f94b522a0/html5/thumbnails/24.jpg)
References
Deitel, H.M., and Deitel, P.J. Java: How to Program, 3rd edition. Chapter 4,5
Wikipedia. http://www.soi.city.ac.uk/~tony/db
ms/4ges.html