1 introduction to computers and programming essential feature of a computer is the separation of...
TRANSCRIPT
![Page 1: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/1.jpg)
1
Introduction to Computers and Programming
Essential feature of a computer is the separation of operations and data.
![Page 2: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/2.jpg)
2
Hardware Leibnizt 17th Century (adding machine) Babbage 1835 Turing 1936 Post war: ENIAC 30 tons (needed external wiring)
and EDSAC (first stored program) UK – based on Von Neumann Design
Now similar design but speed in MIPS and BIBS rather than 6 – 10!
The physical components Accept input, Display output. Store information. Perform arithmetic and logical operations Control sequence of system
![Page 3: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/3.jpg)
3
The physical components
INPUTINPUT OUTPUTOUTPUT
Memory (RAM)Memory (RAM)Secondary Storage, Hard disk, Secondary Storage, Hard disk,
Floppy, Zip, CDFloppy, Zip, CD
Arithmetic and
logic unit (ALU)
ControlControl
Central Processing Unit (CPU)Central Processing Unit (CPU)
![Page 4: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/4.jpg)
4
The Computer’s Core:CPU and Memory
A collection of switches and relays
Transforms information
User provides input
Computer follows instructions
Returns output to user
Each type understands specific instructions,
Opcodes, (IBM or Mac)
Communicates with the other parts of the
computer.
![Page 5: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/5.jpg)
5
RAM (Random Access Memory)
RAM most common type of primary storage
RAM can store programs and data temporarily
RAM has memory locations with unique addresses
Computers can quickly retrieve from RAM
RAM is volatile memory it is temporary and
constantly changing. Power off — RAM is cleared,
whether you saved it or not!, Save to secondary
storage.
![Page 6: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/6.jpg)
6
Addresses
*
01010011
01000011
01001111
01001111
01001111
01001111
01100111
Imagine a stackof letter boxes.
Each box has a unique address.
Each box has can contain some information (a byte).Each byte has 8 bits which can be a 0 or 1.
0000
0001
3000
3001
3002
64000
: :
: :
63999
Low
High
Memory Memory Address
: :
![Page 7: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/7.jpg)
7
Computer Software
The programs Systems Applications
Like English, programs written in a programming language have their own syntax.Unlike English there are no irregular verbs and exceptions to be learnt
![Page 8: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/8.jpg)
8
Programming Languages
Over 200 languages Language depends upon task Assembly, COBOL, Logo, C++, Pascal, FORTRAN, BASIC.
![Page 9: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/9.jpg)
9
Programming languages (Cont)
Machine languages 11000000 000000000001 000000000010
Add contents of memory location 1 to contents of memory location 2
Horrid to write programs!
Assembly ADD 1 2
Needs an assembler to translate to machine language
Opcode
![Page 10: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/10.jpg)
10
Programming Languages (cont)
Levels of Computer Languages:Low (long way from English) machine language, assembly
High (Closer to English) COBOL, Pascal, FORTRAN, Logo, Basic
Mid-level? C, C++
![Page 11: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/11.jpg)
11
Programming Languages (cont)
Procedural languages focus on tasks. Breaks programs down into sub-procedures. Pascal, Fortran.
Object-Oriented languages (OOP) focus on data, looks at data and operations that are performed on the data. Java, Smalltalk
Special Languages (very high) Prolog, Lisp
![Page 12: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/12.jpg)
12
However
C ++, COBOL, FORTRAN, Pascal, BASIC, Prolog etc.
Computer Can’t Understand English! OR
Computer Understand Machine language.
![Page 13: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/13.jpg)
13
Translation/Interpretation
Translation to Machine Language Interpreter Compiler/linker Assembler
![Page 14: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/14.jpg)
14
Compilation Creating and executable file with C++
source source codecode
compiler -h-files used
object codeobject code linked to libraries
.exe file.exe file
![Page 15: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/15.jpg)
15
Developing/Constructing Programs
![Page 16: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/16.jpg)
16
Problem Solution and Software Development
Phase I: Analysis, Design and Development.Phase II: DocumentationPhase III: Maintenance
![Page 17: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/17.jpg)
17
A Close Look at Phase I
1. Analyse/Solve the problem2. Develop/Design a solution
produce an algorithm3. Code the solution4. Test/Verify the program
![Page 18: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/18.jpg)
18
A Close Look at Phase I
Problem analysis and Solution finding Need a process of solving a problem and
then getting the solution onto a computer.
Initially YOU need to know how to solve a problem in English, before you can get a computer to tackle the problem.The problem is that computers do not understand English.You need to get the solution into a form the computer understands.
![Page 19: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/19.jpg)
19
Problem Solving: generalized problem-solving
approach 1. Understand the problem
1. Roughly sketch out 2. Identify inputs/outputs unknowns,
assumptions.3. Notation: sketch out ideas for variable
names and types.4. Sketch out any equations/relations that
you know or that might be useful.2. Devise a plan
1. Write the plan down!2. Check the plan
3. Implement the Plan1. Check the implementation
4. Examine Solution
![Page 20: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/20.jpg)
20
1. Understand The Problem Draw a figure. What is the data, Try to introduce suitable
variables. What sort of variables should they be?
What is the unknown? What is known? Are there any conditions that need satisfying?
e.g. A grading program will have different grades according to exam scores.
Are the conditions sufficient to determine the unknown? Or is it insufficient? Or redundant? Or contradictory? If not, what do you need to determine the unknown?
Can you write the conditions down?
![Page 21: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/21.jpg)
21
Output of Step 1
One or more pages of rough work, nothing formalGood idea of problem requirementsGood idea of inputs, outputs, constants, conditions, assumptions.
![Page 22: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/22.jpg)
22
2. Devise a Plan Find the connection between the data and
the unknown. You might need to consider separate problems if
you can’t find an intermediate connection. You should eventually come up with a plan of the solution.
Have you seen the problem before? Have you seen the same problem in a
slightly different form? Do you know a related problem? Do you know a theorem that could be
useful? Pythagoras?
![Page 23: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/23.jpg)
23
2. Devise a Plan Continued look at the unknown! And try to think of
a familiar problem having the same or a similar unknown. Is there a problem related to yours and solved before. Can you use it? Can you use its method? Should you introduce some other element in order to make its use possible?
Can you restate the problem? If you cannot solve the proposed
problem, try to solve some related problem first. Can you solve a simplified form with particular conditions.
![Page 24: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/24.jpg)
24
2. Devise a Plan Continued Can you imagine a more accessible
related problem? A more general problem? A more special problem? E.g. If you need to count the number of
words in a file. Solve the sub-problem of counting the number of words on a line first.
Can you solve a part of the problem? Keep only some of the conditions
![Page 25: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/25.jpg)
25
2. Devise a plan continued
Can you derive something useful from the data? Can you think of other data appropriate for determining the unknown? Can you change the unknown or the data, or both if necessary, so that the new unknown and the new data are nearer to each other?
E.g. Change from one coordinate system to another,
Did you use all the data? Did you use all the conditions?
![Page 26: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/26.jpg)
26
Devise a plan continued
Is there a different way of solving the problem. Can you use this to check your solution? is it better?
![Page 27: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/27.jpg)
27
Output of Step 2 Top Down Design
A formal written design.State inputs, outputs
Write steps to process input unambiguously using a semi formal notation (PDL, Flowchart or structure diagram? Can you translate each step of the plan into C++
easily? No … Go back and refine
Verification/testing procedures documented (A test table).
![Page 28: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/28.jpg)
28
3. Coding the Solution
Check code for each step Incrementally. Can you see clearly that the step is correct? Can you prove that it is correct? How would you prove it is correct? i.e. what are the tests you would use to prove your plan?
![Page 29: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/29.jpg)
29
4. Examining the solution
Check the result? Use tests identified in step 2.
Can you use the solution, or the method, for some other problem?
![Page 30: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/30.jpg)
30
So find a solution, write it down in English. Write it down more formally in Pseudo-code
(PDL), or as a structure diagram or a flow chart.
Start your programming environment and convert your pseudo-code to C++
Tell the computer to convert the C++ to machine language (compile)
Tell the computer to load the machine language into memory and execute (Run).
Summary
![Page 31: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/31.jpg)
31
AlgorithmsAn algorithm is simply the technical word for your solution/Plan.It is the step by step sequence of instructions to complete a task it will consist of: Sequences Selection Iteration Invocation
![Page 32: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/32.jpg)
32
Example of Top Down DesignMaking Cups of Coffee
Problem: Make 10 cups of coffee
Initial (Top) PlanMake 10 cups of coffee
Refinement 1Repeat 10 times
Make a cup of CoffeeEnd repeat
![Page 33: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/33.jpg)
33
Example of Top Down DesignMaking Cups of Coffee
Refinement 2Repeat 10 times
Put coffee in CupPut boiling water in Cup
End repeat
![Page 34: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/34.jpg)
34
Example of Top Down DesignMaking Cups of Coffee
Refinement 3Repeat these tasks 10 times
1. Get mug out of cupboard
1.End Repeat2.Get Coffee out of cupboard3.Fill Kettle4.Put Kettle on to boil5.Repeat 10 times
1. Put Coffee in cup2. If Kettle boiled put water in cup3. If wanted Add milk4. If wanted Add sugar
6.End repeat
![Page 35: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/35.jpg)
35
Another Example
Linear SearchProblem:
Find the largest number in a list of numbers.
![Page 36: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/36.jpg)
36
Design Example Linear Search PDLcall the 1st number largestcall the 2nd number current
1 while we are not finished2 if current > largest4 label current as largest5 call next number in the list current6 repeat the while7 output the largest
![Page 37: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/37.jpg)
37
Linear Search Flowchart
largest = first NoCurrent = Second No
Largest = CurrentCurrent > Largest?
Current = Next NoAny more numbers?
Display largest
No
No
Yes
Yes
Start
Stop
![Page 38: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/38.jpg)
38
Phase II Documentation
Improve readabilityYou rememberOthers understandEnables easy maintenance
![Page 39: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/39.jpg)
39
What is documentation
Your formal design paperwork. Should be detailed enough for any
programmer to implement
Comments (annotations) actually written into the code.
![Page 40: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/40.jpg)
40
Phase III Maintenance
Correction of problems after deliveryAdd featuresAdapt to changing needs. E.g. Y2K problem Needs good documentation!
![Page 41: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/41.jpg)
41
What we are aiming for is Structured Programming
AdvantagesNot one giant step, but breaks in to smaller and smaller chunks.Programmer concentrates on details Easy to do in teamsEasy to keep track of developmentCreates more reliable and robust programs.Makes more possible reuse and extensibility.
![Page 42: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/42.jpg)
42
Structured Programming
Errors isolatedDesign written in code Improves reliabilityMinimizes risk of FailureFaster developmentFull documentation Maintainability
![Page 43: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/43.jpg)
43
Writing Down Solution
Designs
FlowchartsPseudo-codeStructure Diagrams
![Page 44: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/44.jpg)
44
•Logical steps
•Written in English
•Language independent
•Labels
•Indenting for logical structures
1. begin game 1.1 display instructions 1.2 pick a number between 1 and 1002. repeat turn until number is guessed or seven turns are completed 2.1 input guess from user 2.2 respond to guess 3. end repeat 4. end game 4.1 display end message
Pseudo-code/ PDL
![Page 45: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/45.jpg)
45
Logical steps representedby standard symbols
display instructionsdisplay instructions
get numberget number
is numberis numbereven?even?
YesYes NoNo
continucontinuee
Flowcharts
![Page 46: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/46.jpg)
46
Structure Diagrams
Inventory Control Program
Enter data Do Calculations
Display report
1 2 3
![Page 47: 1 Introduction to Computers and Programming Essential feature of a computer is the separation of operations and data](https://reader034.vdocuments.us/reader034/viewer/2022051620/56649e845503460f94b8630d/html5/thumbnails/47.jpg)
47
Summary
No Magic BulletAdopt good practice (structured programming)Apply Three Phases Phase I – analyse, develop algorithm,
code test Phase II – Document Phase III - Maintain