Date post: | 22-Dec-2015 |
Category: |
Documents |
View: | 223 times |
Download: | 0 times |
1
TEL 104 / MKK Fundamental Programming:
Lecture 2Computer Systems Overview
&Introduction to Algorithm
2
AlgorithmAlgorithm: A set of instructions describing how to do a task (or process)
eureka!
Program Program
7
Transistor
Base
Collector
Emitter
Modern-day “chips” (about 3 x 3 mm in size) can contain millions of transistors
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
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
14
Hardware Components of a Typical Computer
PeripheralDevices
Central ProcessingUnit (CPU)
Memory
• "Buses" allow components to pass data to each other
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
MemoryPeripheralDevices
Central ProcessingUnit (CPU)
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”
PeripheralDevices
Central ProcessingUnit (CPU)
Memory
17
Hardware Components of a Typical Computer -- Peripherals
PeripheralDevices
Central ProcessingUnit (CPU)
Memory
Peripheral devices –• communicate with the outside world• store data long term
18
Hardware Components of a Typical Computer – Peripheral Devices that
Communicate with the Outside World
PeripheralDevices
Central ProcessingUnit (CPU)
Memory
• 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
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
10110001
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
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
How do we solve problems?
• We "just do"
• Guesswork-and-luck
• Trial-and-error
• Experience (possibly someone else's)
• "Scientifically"
24
0100111010110010101010101001010101010100110010101010101001011010011101010101010010010111010011110101010111110101010001101…
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 saw2. Anaesthetize patient3. Remove top of skull4. Get the big spoon...5. etc., etc.
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 saw2. Anaesthetize patient3. Remove top of skull4. Get the big spoon...5. etc., etc.
010011101011001010101010100101010101010011001010101010100101101001110101010101001001011101001111010101011111010101000110100001101...
26
The Problem-solving Process
Problem specification
Algorithm
Program
Executable (solution)
Analysis
Design
Implementation
Compilation
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
Algorithm –History
Muhammad ibn Musa Al-Khwarizmihttp://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
• A sequence of instructions describing how to do a task
Algorithm – Working Definition
[As opposed to actually executing
the instructions]
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
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
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
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
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
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
From Algorithms to Programs
Problem
C, Java ProgramC, Java Program
AlgorithmAlgorithm: A sequence of instructions describing how to do a task (or process)
37
Components of an Algorithm
• Variables and values
• Instructions
• Sequences
• Procedures
• Selections
• Repetitions
• Documentation
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
Almond and Honey Slice
1/2 quantity Shortcrust Pastry
185 g unsalted butter100 g castor sugar5 tablespoons honey50 ml cream50 ml brandy or any other
liqueur or spirit300 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
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
Variables
This jarcan contain
10 cookies
50 grams of sugar
3 slices of cake
etc.
ValuesVariable
• Are containers for values – places to store values
• Example:
43
Components of an AlgorithmValues and Variables
• Instruction (a.k.a. primitive)
• Sequence (of instructions)
• Procedure (involving instructions)
• Selection (between instructions)
• Repetition (of instructions)
• Documentation (beside instructions)
44
Instructions (Primitives)
• Some action that is simple...
• ...and unambiguous...
• ...that the system knows about...
• ...and should be able to actually do
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
Instructions -- Application
• Some instructions can only be applied to a specific type of values or variables
• Examples:
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
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
Conclusion
• An algorithm must:– Be lucid, precise and unambiguous– Give the correct solution in all cases– Eventually end.
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
Example 1. Add three numbers
A program is required to read three numbers, add them together and print their total.
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.
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
• Defining diagram
Input Processing Output
Number1Number2Number3
Read three numbersAdd numbers togetherPrint total number
total
56
3. Writing down the processing steps in an algorithm,
Read three numbersAdd numbers togetherPrint total number
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
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.
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
• Defining diagram
Input Processing Output
Max_tempMin_temp
Prompt for temperaturesGet temperaturesCalculate average temperatureDisplay average temperature
Avg_temp
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.