Download presentation
Presentation is loading. Please wait.
1
1 CSE1301 Computer Programming Lecture 2: Introduction to Algorithms
2
2 Topics A little bit of History: The idea of a universal machine Systematic problem solving Algorithms
3
3 A “Universal” Machine Programmability Binary Code (everything stored as “0” or “1”) Program and Data are represented in the same form Electronic Components
4
4 200 BC - todayAbacus- ~1670Leibniz’ “Rechenmaschine” Fixed calculations +, -, *, /, sqrt ~1750Jacquard’s LoomPunch Tape 1820Babbage’s “Difference Engine” Fixed Table Calculation 1838Babbage’s “Analytical Engine” Program & Data separate 1841Ada Byron, Lady Lovelace First program (Bernoulli- Numbers) Early Computing History in a Nutshell
5
5 Leibniz’s Step Reckoner Gottfried von Leibniz 1670 Add, subtract, multiply, divide, square roots
6
6 Jacquard’s punch card Joseph Marie Jacquard 1804 punch cards used to operate loom
7
7 Babbage’s analytical engine Charles Babbage (1791-1871) Design for the analytical engine Programmable, but mechanical. Data+Program separate
8
8 One of the first Programmers Lady Ada Augusta Byron, Countess of Lovelace (1815-1952) (1791-1871)
9
9 200 BC - todayAbacus- ~1670Leibniz’ “Rechenmaschine” Fixed calculations ~1750Jacquard’s LoomPunch Tape 1820Babbage’s “Difference Engine” Fixed Table Calculation 1838Babbage’s “Analytical Engine” Program & Data separate 1841Ada Byron, Lady Lovelace First program (Bernoulli- Numbers) Early Computing History in a Nutshell First universal programmable machine
10
10 1886HollerithPunch Cards 1936Zuse Z1Relais 1941-1944Zuse Z3/Z4“Plankalkül” 1944Mark IPartly mechanic 1943ColossusNot universal 1946EniacProgrammable with Re-wiring 1949Manchester Universal Computer Cathode-Ray Tube Memory The Ancestors Binary code universal Integration: fully electronic binary Programmable universal electronic
11
11 Hollerith’s Tabulating Machine Herman Hollerith (1860-1929) Invented a punched card device to help analyse the 1890 US census data Founded “Tabulating Machine Company” 1896 1924 – Tabulating Machine Company merges with others to form IBM Binary but not really programmable
12
12 Konrad Zuse 1936: Z1 first binary computer using Erector Set parts, keyboard and lights for output (relay memory) 1938: Z2 – using punched tape and relays Z1 Z3:fully binary, fully programmable, but partly mechanical
13
13 Colossus 1943 British Colossus – (1,500 vacuum tubes) –Decipher enigma coded messages at 5,000 chars/sec –At peak, 10 machines ran 24 hours a day in Bletchley Park A German enigma coding machine Fully electronic, but not universally programmable
14
14 Harvard Mark 1 1943-44 Aiken at Harvard/IBM “Mark 1” – first electromechanical digital computer (electromagnetic relays – magnets open and close metal switches) (recreation of Analytical Engine) –8 ft tall, 50 ft long, 1 million parts –323 decimal-digit additions per sec –storage for 72 23-digit numbers. Universal, fully programmable But partly mechanical
15
15 ENIAC (1946) 18,000 tubes, 1500 sq ft Programmed by wire plugs into panels –5,000 decimal-digit additions/sec –20 10-decimal digit “accumulators” Von Neumann and ENIAC Fully electronic, programmable But extensive-wiring required
16
16 Experminental MUC (1949) 1941 Von Neumann proposes EDVAC – Electronic Discrete Variable Computer Computer should –Use binary –Have stored programs –Be function-oriented Team Members from Bletchley Park and EDVAC/ENIAC collaborate at Manchester Add CRT display memory First fully electronic universal computer
17
17 How do we solve problems? We "just do" Guesswork-and-luck Trial-and-error Experience (possibly someone else's) "Scientifically"
18
18 0100111010110010101010101 0010101010101001100101010 1010100101101001110101010 1010010010111010011110101 010111110101010001101… sterilize(saw,alcohol); raise_hammer(); lower hammer(fast); start(saw); /* etc. etc. */ Patient has elevated pressure in anterior parietal lobe The Problem-solving Process Problem specification Algorithm Program Executable ( solution ) Design Implementation Compilation "Doctor, my head hurts" Analysis 1. Sterilize cranial saw 2. Anaesthetize patient 3. Remove top of skull 4. Get the big spoon... 5. etc., etc.
19
19 sterilize(saw,alcohol); raise_hammer(); lower hammer(fast); start(saw); /* etc. etc. */ The Problem-solving Process Problem specification Algorithm Program Executable (solution) Analysis Design Implementation Compilation " Doctor, my head hurts" Patient has elevated pressure in anterior parietal lobe. 1. Sterilize cranial saw 2. Anaesthetize patient 3. Remove top of skull 4. Get the big spoon... 5. etc., etc. 01001110101100101010101010010 10101010100110010101010101001 011010011101010101010010010111 010011110101010111110101010001 10100001101...
20
20 The Problem-solving Process Problem specification Algorithm Program Executable (solution) Analysis Design Implementation Compilation
21
21 A sequence of instructions specifying the steps required to accomplish some task Named after: Muhammad ibn Musa al-Khwarizmi of Khowarezm (now Khiva in Uzbekistan) Circa 780-850 C.E. (Common Era) Algorithm
22
22 Algorithm –History Muhammad ibn Musa Al-Khwarizmi http://www-groups.dcs.st-andrews.ac.uk/~history/Mathematicians/Al-Khwarizmi.html Book on arithmetic: –Hindu numeration, decimal numbers, use of zero, method for finding square root –Latin translation (c.1120 CE): “Algoritmi de numero Indorum” Book on algebra –Hisab al-jabr w’al-muqabala
23
23 A sequence of instructions describing how to do a task Algorithm – Working Definition [ As opposed to actually executing the instructions]
24
24 Algorithm -- Examples A cooking recipe Assembly instructions for a model The rules of how to play a game VCR instructions Description of a martial arts technique Directions for driving from A to B A knitting pattern A car repair manual
25
25 Algorithm – Examples (cont) Recipe for Almond and honey slice Recipe for Arroz con pollo
26
26 Almond and Honey Slice 1/2 quantity Shortcrust Pastry 185 g unsalted butter 100 g castor sugar 5 tablespoons honey 50 ml cream 50 ml brandy or any other liqueur or spirit 300 g flaked almonds Preheat oven for 200° C Line a 30 cm 20 cm baking tray with baking paper, and then with pastry Bake blind for 20 minutes, then remove weights and foil Turn oven up to 220° C. Bring remaining ingredients to a boil, stirring. Spread evenly over pastry. Bake until topping is bubbling and has caramelised evenly, about 15 minutes. Cool before cutting into fingers or squares. From: Stephanie Alexander, The Cook’s Companion, Viking/Penguin, Ringwood, Victoria, 1996, p. 349.
27
27 Almond and Honey Slice 1/2 quantity Shortcrust Pastry 185 g unsalted butter 100 g castor sugar 5 tablespoons honey 50 ml cream 50 ml brandy or any other liqueur or spirit 300 g flaked almonds Preheat oven for 200° C Line a 30 cm 20 cm baking tray with baking paper, and then with pastry Bake blind for 20 minutes, then remove weights and foil Turn oven up to 220° C. Bring remaining ingredients to a boil, stirring. Spread evenly over pastry. Bake until topping is bubbling and has caramelised evenly, about 15 minutes. Cool before cutting into fingers or squares. From: Stephanie Alexander, The Cook’s Companion, Viking/Penguin, Ringwood, Victoria, 1996, p. 349. Instructions are given in the order in which they are performed (“executed”)
28
28 Correct Algorithm? Cut chicken into pieces and brown the pieces on all sides in a casserole dish in hot olive oil. Remove the chicken and to the juices in the casserole add garlic, onions and green peppers, and sauté until onion is golden. Add bay leaf, whole tomatoes, and chicken broth. When the broth boils add salt, saffron and rice. Arrange chicken on rice, cover casserole and bake in a moderate oven (350°F) for 20 minutes or until the rice is tender. Add beans and artichokes during last 10 minutes of cooking. From: “Arroz Con Pollo” in The Margaret Fulton Cookbook, Hamlyn, Sydney, 1968.
29
29 Cut chicken into pieces and brown the pieces on all sides in a casserole dish in hot olive oil. Remove the chicken and to the juices in the casserole add garlic, onions and green peppers, and sauté until onion is golden. Add bay leaf, whole tomatoes, and chicken broth. When the broth boils add salt, saffron and rice. Arrange chicken on rice, cover casserole and bake in a moderate oven (350°F) for 20 minutes or until the rice is tender. Add beans and artichokes during last 10 minutes of cooking. From: “Arroz Con Pollo” in The Margaret Fulton Cookbook, Hamlyn, Sydney, 1968. Correct Algorithm?
30
30 Cut chicken into pieces and brown the pieces on all sides in a casserole dish in hot olive oil. Remove the chicken and to the juices in the casserole add garlic, onions and green peppers, and sauté until onion is golden. Add bay leaf, whole tomatoes, and chicken broth. When the broth boils add salt, saffron and rice. Arrange chicken on rice, cover casserole and bake in a moderate oven (350°F) for 10 minutes. Add beans and artichokes. Cover, and bake for another 10 minutes or until rice is tender. Correct Algorithm?
31
31 From Algorithms to Programs Problem C Program Algorithm Algorithm: A sequence of instructions describing how to do a task (or process)
32
32 Components of an Algorithm Variables and values Instructions –Sequences –Procedures –Selections –Repetitions Also required: Documentation
33
33 Values Represent quantities, amounts or measurements May be numerical or alphabetical (or other things) Often have a unit related to their purpose Example: –Recipe ingredients
34
34 Almond and Honey Slice 1/2 quantity Shortcrust Pastry 185 g unsalted butter 100 g castor sugar 5 tablespoons honey 50 ml cream 50 ml brandy or any other liqueur or spirit 300 g flaked almonds Preheat oven for 200° C Line a 30 cm 20 cm baking tray with baking paper, and then with pastry Bake blind for 20 minutes, then remove weights and foil Turn oven up to 220° C. Bring remaining ingredients to a boil, stirring. Spread evenly over pastry. Bake until topping is bubbling and has caramelised evenly, about 15 minutes. Cool before cutting into fingers or squares. From: Stephanie Alexander, The Cook’s Companion, Viking/Penguin, Ringwood, Victoria, 1996, p. 349.
35
35 Almond and Honey Slice 1/2 quantity Shotcrust Pastry 185 g unsalted butter 100 g castor sugar 5 tablespoons honey 50 ml cream 50 ml brandy or any other liqueur or spirit 300 g flaked almonds Preheat oven for 200° C Line a 30 cm 20 cm baking tray with baking paper, and then with pastry Bake blind for 20 minutes, then remove weights and foil Turn oven up to 220° C. Bring remaining ingredients to a boil, stirring. Spread evenly over pastry. Bake until topping is bubbling and has caramelised evenly, about 15 minutes. Cool before cutting into fingers or squares. From: Stephanie Alexander, The Cook’s Companion, Viking/Penguin, Ringwood, Victoria, 1996, p. 349.
36
36 Variables This jar can contain 10 cookies 50 grams of sugar 3 slices of cake etc. ValuesVariable Are containers for values – places to store values Example:
37
37 Restrictions on Variables Variables may be restricted to contain a specific type of value
38
38 Components of an Algorithm Values and Variables Instruction (a.k.a. primitive) Sequence (of instructions) Procedure (involving instructions) Selection (between instructions) Repetition (of instructions) Documentation (beside instructions)
39
39 Summary Problem Solving Process Algorithms Components of Algorithms –Values and Variables –Instructions –to be continued... Reading Deitel & Deitel, C: How to program –Chapter 3, Sections 3.1 to 3.3
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.