1 / 38

Introduction to Computer Programming and Algorithms

Explore the history of computer programming, from universal machines to fully electronic and programmable computers. Learn about algorithms and the problem-solving process in computer programming.

tbraswell
Download Presentation

Introduction to Computer Programming and Algorithms

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CSE1301Computer ProgrammingLecture 2:Introduction to Algorithms

  2. Topics • A little bit of History: The idea of a universal machine • Systematic problem solving • Algorithms

  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. Early Computing History in a Nutshell

  5. Leibniz’s Step Reckoner • Gottfried von Leibniz 1670 • Add, subtract, multiply, divide, square roots

  6. Jacquard’s punch card • Joseph Marie Jacquard 1804 • punch cards used to operate loom

  7. Babbage’s analytical engine • Charles Babbage (1791-1871) Design for the analytical engine • Programmable, but mechanical. • Data+Program separate

  8. One of the first Programmers • Lady Ada Augusta Byron, Countess of Lovelace (1815-1952) (1791-1871)

  9. Early Computing History in a Nutshell First universal programmable machine

  10. The Ancestors Binary code universal electronic Integration: • fully electronic • binary • Programmable • universal

  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. 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. 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. 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. 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. 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 Parkand EDVAC/ENIACcollaborate at Manchester • Add CRT display memory First fully electronic universal computer

  17. Analysis Problemspecification Design Algorithm Implementation Program Compilation Executable (solution) The Problem-solving Process "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. sterilize(saw,alcohol); raise_hammer(); lower hammer(fast); start(saw); /* etc. etc. */ 0100111010110010101010101001010101010100110010101010101001011010011101010101010010010111010011110101010111110101010001101…

  18. The Problem-solving Process "Doctor, my head hurts" Patient has elevated pressure in anterior parietal lobe. Analysis Problem specification 1. Sterilize cranial saw 2. Anaesthetize patient 3. Remove top of skull 4. Get the big spoon... 5. etc., etc. Design Algorithm Implementation sterilize(saw,alcohol); raise_hammer(); lower hammer(fast); start(saw); /* etc. etc. */ Program Compilation 010011101011001010101010100101010101010011001010101010100101101001110101010101001001011101001111010101011111010101000110100001101... Executable (solution)

  19. The Problem-solving Process Analysis Problem specification Design Algorithm Implementation Program Compilation Executable (solution)

  20. Algorithm • 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)

  21. 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

  22. Algorithm – Working Definition • A sequence of instructions describing how to do a task [As opposed to actually executing the instructions]

  23. Algorithm -- Examples • A cooking recipe • Assembly instructionsfor a model • The rules of how to play a game • VCR instructions • Descriptionof a martial arts technique • Directions for driving from A to B • A knitting pattern • A car repair manual

  24. Algorithm – Examples (cont) • Recipe for Almond and honey slice • Recipe for Arroz con pollo

  25. 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. Almond and Honey Slice From: Stephanie Alexander, The Cook’s Companion, Viking/Penguin, Ringwood, Victoria, 1996, p. 349.

  26. 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. Almond and Honey Slice Instructions are given in the order in which they are performed (“executed”) From: Stephanie Alexander, The Cook’s Companion, Viking/Penguin, Ringwood, Victoria, 1996, p. 349.

  27. 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. Correct Algorithm? From: “Arroz Con Pollo” in The Margaret Fulton Cookbook, Hamlyn, Sydney, 1968.

  28. 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 andbake 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. Correct Algorithm? From: “Arroz Con Pollo” in The Margaret Fulton Cookbook, Hamlyn, Sydney, 1968.

  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 andbake 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?

  30. Algorithm: A sequence of instructions describing how to do a task (or process) Problem C Program From Algorithms to Programs

  31. Components of an Algorithm • Variables and values • Instructions • Sequences • Procedures • Selections • Repetitions Also required: Documentation

  32. 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

  33. 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. Almond and Honey Slice From: Stephanie Alexander, The Cook’s Companion, Viking/Penguin, Ringwood, Victoria, 1996, p. 349.

  34. 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. Almond and Honey Slice From: Stephanie Alexander, The Cook’s Companion, Viking/Penguin, Ringwood, Victoria, 1996, p. 349.

  35. Variable Values 10 cookies 50 grams of sugar 3 slices of cake etc. This jar can contain Variables • Are containers for values– placesto storevalues • Example:

  36. Restrictions on Variables • Variables may be restricted to contain a specific type of value

  37. 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)

  38. 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

More Related