Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 TEL 104 / MKK Fundamental Programming: Lecture 2 Computer Systems Overview & Introduction to Algorithm.

Similar presentations


Presentation on theme: "1 TEL 104 / MKK Fundamental Programming: Lecture 2 Computer Systems Overview & Introduction to Algorithm."— Presentation transcript:

1 1 TEL 104 / MKK Fundamental Programming: Lecture 2 Computer Systems Overview & Introduction to Algorithm

2 2 Algorithm Algorithm: A set of instructions describing how to do a task (or process) eureka! Program

3 3 How the program works inside the computer

4 4 Transistor Base Collector Emitter “semi-conductor” Binary digit or “bit”: 0  off 1  on

5 5 Transistor (cont) Base Collector Emitter off : 0

6 6 Transistor Base Collector Emitter on : 1

7 7 Transistor Base Collector Emitter Modern-day “chips” (about 3 x 3 mm in size) can contain millions of transistors

8 8 Gates Gate: a group of transistors Gates are switches that distinguish between two electrical voltages: –Current is low => 0 –Current is high => 1 Types: AND Gate OR Gate NOT Gate

9 9 AB 00 01 10 11 A AND B A B A B Example: AND Gate

10 10 Gates and Boolean Algebra AB 00 01 10 11 AND Gate A AND B A OR B OR Gate

11 11 Gates and Boolean Algebra (cont) A 0 1 NOT A NOT Gate

12 12 Gates and Boolean Algebra (cont) A = A sequence of bits at a time: 1 1 0 0 1 1 0 1 B = 0 1 1 0 0 1 1 0 A AND B = Most PCs do 32 bits at a time (“32-bit machines”), others as many as 128 bits at a time

13 13 Gates are the basic building blocks of computers 0 or 1

14 14 Hardware Components of a Typical Computer Peripheral Devices Central Processing Unit (CPU) Memory "Buses" allow components to pass data to each other

15 15 Hardware Components of a Typical Computer -- CPU Central Processing Unit (CPU) performs the basic operations consists of two parts: –Arithmetic / Logic Unit (ALU) - data manipulation –Control Unit - coordinate machine’s activities Memory Peripheral Devices Central Processing Unit (CPU)

16 16 Hardware Components of a Typical Computer -- Memory Main Memory holds programs and data stores bits in fixed-sized chunks: “word” (8, 16, 32, or 64 bits) each word is stored in a cell, which has a unique address the cells can be accessed in any order => random-access memory or “RAM” Peripheral Devices Central Processing Unit (CPU) Memory

17 17 Hardware Components of a Typical Computer -- Peripherals Peripheral Devices Central Processing Unit (CPU) Memor y Peripheral devices – communicate with the outside world store data long term

18 18 Hardware Components of a Typical Computer – Peripheral Devices that Communicate with the Outside World Peripheral Devices Central Processing Unit (CPU) Memor y Input/Output (I/O) –Input: keyboard, mouse, microphone, scanner, sensors (camera, infra-red), punch-cards –Output: video, printer, audio speakers, etc Communication –modem, ethernet card

19 19 Modes of communication Parallel communication: –all the bits are transferred at the same time –each bit on a separate line 01 Serial communication: – one bit at a time 1011000110110001

20 20 Introduction to Algorithm

21 21 7 Steps in Program Development 1.Define the problem The inputs The outputs The processing steps to produce the required outputs 2.Outline the solution The major processing steps involved The subtask (if any) The user interface (if any) The major control stuctures (e.g. Repetition loops) The major variables and record structures The mainline logic 3.Develop the outline into an algorithm

22 22 7 Steps in Program Development (cont) 4.Test the algorithm for correctness 5.Code the algorithm into a specific programming language 6.Run the program on the computer 7.Document and maintain the program

23 23 How do we solve problems? We "just do" Guesswork-and-luck Trial-and-error Experience (possibly someone else's) "Scientifically"

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

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

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

27 27 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

28 28 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

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

30 30 Algorithm -- Examples A cooking recipe Assembly instructions for a model The rules of how to play a game VCR instructions Directions for driving from A to B A knitting pattern A car repair manual Recipe for Almond and honey slice

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

32 32 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”)

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

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

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

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

37 37 Components of an Algorithm Variables and values Instructions Sequences Procedures Selections Repetitions Documentation

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

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

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

41 41 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:

42 42 Restrictions on Variables Variables may be restricted to contain a specific type of value

43 43 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)

44 44 Instructions (Primitives) Some action that is simple......and unambiguous......that the system knows about......and should be able to actually do

45 45 Instructions – Examples Take off your shoes Count to 10 Cut along dotted line Knit 1 Purl 2 Sift 10 grams of arsenic Directions to perform specific actions on values and variables.

46 46 Instructions -- Application Some instructions can only be applied to a specific type of values or variables Examples:

47 47 Instructions (Primitives) -- Recommendations When writing an algorithm, make each instruction simple and unambiguous Example: Cut chicken into pieces and brown the pieces on all sides in a casserole dish in hot olive oil. Cut chicken into pieces. Heat olive oil in a casserole dish. Brown the chicken pieces in the casserole dish.

48 48 Instruction (Primitives) When writing an algorithm, make the instructions simple and unambiguous. Example: Cut chicken into pieces and brown the pieces on all sides in a casserole dish in hot olive oil. Cut chicken into pieces. Heat olive oil in a casserole dish. Brown the chicken pieces in the casserole dish. A “sequence” of simple instructions

49 49 Conclusion An algorithm must: –Be lucid, precise and unambiguous –Give the correct solution in all cases –Eventually end.

50 50 Developing an algorithm To help the initial analysis, the problem should be divided into 3 separate components: 1.Input: a list of the source data provided to the problem 2.Output: a list of the outputs required 3.Processing: a list of actions needed to produce the required outputs.

51 51 Example 1. Add three numbers  A program is required to read three numbers, add them together and print their total.

52 52 Solution: 1.Underline the nouns and adjectives used in the specification  establish the input, output component and any object that are required. A program is required to read three numbers, add them together and print their total.

53 53 Defining diagram InputProcessingOutput Number1 Number2 Number3 total

54 54 2.Underline the verbs and adverbs used in the specification  establish the action required. A program is required to read three numbers, add them together and print their total.

55 55 Defining diagram InputProcessingOutput Number1 Number2 Number3 Read three numbers Add numbers together Print total number total

56 56 3.Writing down the processing steps in an algorithm, Read three numbers Add numbers together Print total number

57 57 Example 2. Find average temperature A program is required to prompt the terminal operator for the maximum and minimum temperature readings on a particular day, accept those readings as integers, and calculate and display to the screen the average temperature, calculated by (maximum temperature + minimum temperature)/2.

58 58 Step 1 A program is required to prompt the terminal operator for the maximum and minimum temperature readings on a particular day, accept those readings as integers, and calculate and display to the screen the average temperature, calculated by (maximum temperature + minimum temperature)/2.

59 59 Defining diagram InputProcessingOutput Max_temp Min_temp Avg_temp

60 60 Step 2 A program is required to prompt the terminal operator for the maximum and minimum temperature readings on a particular day, accept those readings as integers, and calculate and display to the screen the average temperature, calculated by (maximum temperature + minimum temperature)/2.

61 61 Defining diagram InputProcessingOutput Max_temp Min_temp Prompt for temperatures Get temperatures Calculate average temperature Display average temperature Avg_temp

62 62 Assignment1. Compute mowing time A program is required to read from the screen the lenght and widht of a rectangular house block, and the lenght and width of the rectangular house that has been built on the block. The algorithm should then compute and display the mowing time required to cut the grass around the house, at the rate of two square metres per minute.


Download ppt "1 TEL 104 / MKK Fundamental Programming: Lecture 2 Computer Systems Overview & Introduction to Algorithm."

Similar presentations


Ads by Google