Top Banner
Introduction to Computers and Programming History of computers What is a computer system? What is a software? What is programming? Different languages Compiled vs. interpreted 1
59

Introduction to Computers and Programming History of computers What is a computer system? What is a software? What is programming? Different languages.

Dec 25, 2015

Download

Documents

Rosaline Lee
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 3: Introduction to Computers and Programming History of computers What is a computer system? What is a software? What is programming? Different languages.

1854 (~150 years ago)

Pioneer of modern computer!

3

Babbage’s difference engine

Device to subtract adjacent values in a column of numbers. Created for engineers in charge of creating tables of logarithms and trigonometric functions.

History 2/4

Page 4: Introduction to Computers and Programming History of computers What is a computer system? What is a software? What is programming? Different languages.

1943 (~70 years ago)

.. came Colossus

Primarily used for breaking the German codes during World War 2.

It would crack Enigma Codes (codes that were cracked by exhaustively shifting text by arbitrary amounts). For example:

‘Zsszbj zs 9599’ would be

‘Attack at 0600’

4

History 3/4

Page 5: Introduction to Computers and Programming History of computers What is a computer system? What is a software? What is programming? Different languages.

Finally, the von Neumann Architecture…

The Von Neumann computer architecture is mostly what we still use today. The architecture separates a computer in 3 major parts: The Central Processing Unit (CPU) The computer memory The Input/Output (I/O) devices

5

CPU + memoryScreen=output

Speakers=output Mouse=input

Keyboard=input

?

?

Knob=input

History 4/4

Page 6: Introduction to Computers and Programming History of computers What is a computer system? What is a software? What is programming? Different languages.

Software and programming? Microsoft Word, Excel, Guitar Hero, the address book in

your cell phone, the electronic that starts a car, the avionics in an airplane… are all software that were written by people.

Programming is the act of writing logical instructions that will be executed when people use the software.

It is as difficult as learning to speak a foreign language, since the programmer is constrained to the vocabulary (specific keywords) and grammar (exact syntax) of programming.

6

Page 7: Introduction to Computers and Programming History of computers What is a computer system? What is a software? What is programming? Different languages.

A computer system today

Keeping the von Neumann architecture, today’s computing systems combine both hardware and software.

Hardware (i.e. what’s hard and can break..): mouse, keyboard, monitor, hard disk, printer, CD, DVD.

Software i.e. the programs that describe the steps we want the computer to perform.

7

Page 9: Introduction to Computers and Programming History of computers What is a computer system? What is a software? What is programming? Different languages.

Categories of software

Software contains the instructions the CPU uses to run programs. There are several categories, including:

Operating systems (OS) – manager of the computer system as a whole

Software applications – commercial programs that have been written to solve specific problems

Language compilers - to ‘translate’ programs written by people into something understandable by the machine (sometimes not needed)

9

Page 12: Introduction to Computers and Programming History of computers What is a computer system? What is a software? What is programming? Different languages.

Generations of Languages used to write software

1) Machine language – also called binary language. Sequenceof 0’s and 1’s.

2) Assembly language – each line of code produces a single machine instruction (add, subtract…), see bottom of page 11.

3) High-level language – slightly closer to spoken languages.

12

add b,cadd a,b

a= a + b + c;

This line does the same as the two above.

Page 14: Introduction to Computers and Programming History of computers What is a computer system? What is a software? What is programming? Different languages.

Finally… MATLAB Is an interpreted language – does not require

compilation, but it does have a compilation step hidden from the user.

Has an interactive environment – “In the MATLAB environment, you can develop and execute

programs that contain MATLAB commands. You can execute a MATLAB command, observe the results, and then execute another MATLAB command that interacts with the information in memory, observe its results and so on.”

14

Page 18: Introduction to Computers and Programming History of computers What is a computer system? What is a software? What is programming? Different languages.

General Idea: Give you methodology to layout a plan to develop a

solution for a given problem (task).

In EGR115, most tasks will be:

“Develop a program that ……”

As a programmer, keep in mind there are 2 sides to a software The person who writes the software: the programmer The person who uses the software: the user (aka client)

As you (the student) develop software, you will constantly jump back and forth between the two roles.

Page 19: Introduction to Computers and Programming History of computers What is a computer system? What is a software? What is programming? Different languages.

The 5 step process

Follow these steps in order:

1. State the problem clearly

2. Identify the givens vs. the results wanted This will be referred as the I/O diagram

3. Manually solve the problem

4. Computerize the solution

5. Test, test, test!!!

19

Page 20: Introduction to Computers and Programming History of computers What is a computer system? What is a software? What is programming? Different languages.

Step 1. State the problem

However easy the problem may seem, it is crucial to fully understand the problem, and clarify details. It can help to put the problem in writing.

For example:

Write a program that “Computes the area of a triangle”

This might bring up questions – like “what do I know about the triangle?”

20

Page 22: Introduction to Computers and Programming History of computers What is a computer system? What is a software? What is programming? Different languages.

Step 2. Identify the I/O

Remember the Von Neumann architecture? CPU + memory + inputs/outputs devices

The I/O diagram determines which input and output devices the software uses, as well as decide which inputs and output variables are used.

The I/O diagram is a first step to organizing the brainstorming.

22

Page 26: Introduction to Computers and Programming History of computers What is a computer system? What is a software? What is programming? Different languages.

Applied to the area of triangle

26

COMPUTE THE AREA OF TRIANGLE

Sides 1 and 2

Angle

External interface – What DEVICE is used to see the results

Keyboard

Each arrow represents the INPUTS

(=GIVENS)

Screenarea

Each arrow represents the OUTPUTS

(=RESULTS)

Page 35: Introduction to Computers and Programming History of computers What is a computer system? What is a software? What is programming? Different languages.

Step 4 and Step 5

These steps require the use of a computer to type ‘lines of code’ and test the program.

Realize that none of the steps before did this.

In short: Step 4 – Computerize the solution

a) layout the algorithm. b) Write down the code that implements the algorithm.

Step 5 – Test the software created

Page 36: Introduction to Computers and Programming History of computers What is a computer system? What is a software? What is programming? Different languages.

Remember: “SIMCT”(or: Small iPods Make Copying Tough)

1. S State the problem (clarify it if need be)

2. I Identify the Inputs and Outputs

3. M Manually solve the problem

4. C Computerize the solution1. Layout the algorithm

2. Provide the code that implements the algorithm

5. T test, Test, TEST!!

36

Page 37: Introduction to Computers and Programming History of computers What is a computer system? What is a software? What is programming? Different languages.

1. S State the problem (clarify it if need be)

2. I Identify the Inputs and Outputs

3. M Manually solve the problem

4. C Computerize the solution1. Layout the algorithm

2. Provide the code that implements the algorithm

5. T Test, Test, TEST!!

Remember: “SIMCT”(or: Small iPods Make Copying Tough)

37

Note: I and M are sometimes reversed. You may need to decide what method you will use to solve the problem before you can determine what inputs are needed and what outputs will be provided. In fact, sometimes the problem being solved gets changed. But we will assume the standard SIMCT model.

Page 41: Introduction to Computers and Programming History of computers What is a computer system? What is a software? What is programming? Different languages.

1 (cont.):

Client clarifies his requirements:

“I want a computer program that will find the REAL roots of a quadratic equation for all REAL coefficients a, b, and c such that a≠0.”

This shows a much more thorough consideration of the problem.

41

Page 42: Introduction to Computers and Programming History of computers What is a computer system? What is a software? What is programming? Different languages.

2: Identify Inputs/Outputs What are the inputs for this problem?

In other words, what information is needed

FROM OUTSIDE THE PROGRAM

for the desired program to solve the problem?

In our programs, these inputs typically come from the user – but they don’t have to. Sensors and other programs can provide information, too.

42

Page 46: Introduction to Computers and Programming History of computers What is a computer system? What is a software? What is programming? Different languages.

Step 3: Manually solve the problem

Not always practical to actually solve the problem…

e.g. can you manually launch the shuttle?

But…

a programmer must be able to solve the problem manually, assuming all the time and resources necessary were available. Otherwise, how could a programmer tell the computer how to do it???

46

Page 51: Introduction to Computers and Programming History of computers What is a computer system? What is a software? What is programming? Different languages.

4.1 (cont.): Now, “flesh it out”

% Collect the inputs from the user% Print error message if bad inputs% Apply the inputs to the quadratic formula% Compute the discriminant (b2-4ac)% If discriminant < 0

% display ‘Imaginary roots’% Otherwise

% compute real roots% Display the results

51

Page 52: Introduction to Computers and Programming History of computers What is a computer system? What is a software? What is programming? Different languages.

4.2: code

For each step of the algorithm, write code (in this class, MATLAB code) that will perform the actions you have specified. Avoid proceeding to the next step until you feel certain the step has been accomplished. It is important to test as you go.

(Actual coding steps will be learned this semester)

52

Page 53: Introduction to Computers and Programming History of computers What is a computer system? What is a software? What is programming? Different languages.

5: test, Test, TEST!!! It is provably impossible to write a computer

program to test another arbitrary computer program for correctness. And it’s usually too time consuming to write a program that specifically tests the program we’re writing – so we resort to manual testing.

For complicated programs, it is not possible to test a program too thoroughly because it is not possible to test all inputs. And it may be worth writing that test program after all…

Choose inputs to maximize confidence that the solution written will work correctly.

53

Page 54: Introduction to Computers and Programming History of computers What is a computer system? What is a software? What is programming? Different languages.

5 (cont.):

For a quadratic solver, each set of input should be tested, which means:

54

a<0, b<0, c<0a<0, b<0, c=0a<0, b<0, c>0a<0, b=0, c<0a<0, b=0, c=0a<0, b=0, c>0a<0, b>0, c<0a<0, b>0, c=0a<0, b>0, c>0

a=0, b<0, c<0a=0, b<0, c=0a=0, b<0, c>0a=0, b=0, c<0a=0, b=0, c=0a=0, b=0, c>0a=0, b>0, c<0a=0, b>0, c=0a=0, b>0, c>0

a>0, b<0, c<0a>0, b<0, c=0a>0, b<0, c>0a>0, b=0, c<0a>0, b=0, c=0a>0, b=0, c>0a>0, b>0, c<0a>0, b>0, c=0a>0, b>0, c>0

Page 55: Introduction to Computers and Programming History of computers What is a computer system? What is a software? What is programming? Different languages.

Step5 (cont.)

Of course, with human ingenuity, change the design of the program (i.e. modify the algorithm) to avoid some of these:

% If no error condition (such as a equal 0)

% then compute the roots

% Otherwise, just print the error message

With this sort of technique, we can avoid having to test nearly 1/3 of the possibilities!

55

Page 56: Introduction to Computers and Programming History of computers What is a computer system? What is a software? What is programming? Different languages.

Step5 (cont.)

For a quadratic solver, each set of input should be tested, which means:

56

a<0, b<0, c<0a<0, b<0, c=0a<0, b<0, c>0a<0, b=0, c<0a<0, b=0, c=0a<0, b=0, c>0a<0, b>0, c<0a<0, b>0, c=0a<0, b>0, c>0

a=0, b<0, c<0a=0, b<0, c=0a=0, b<0, c>0a=0, b=0, c<0a=0, b=0, c=0a=0, b=0, c>0a=0, b>0, c<0a=0, b>0, c=0a=0, b>0, c>0

a>0, b<0, c<0a>0, b<0, c=0a>0, b<0, c>0a>0, b=0, c<0a>0, b=0, c=0a>0, b=0, c>0a>0, b>0, c<0a>0, b>0, c=0a>0, b>0, c>0

Page 57: Introduction to Computers and Programming History of computers What is a computer system? What is a software? What is programming? Different languages.

% Collect the inputs from the user

% If no error condition

% Compute the discriminant (b2-4ac)

% If discriminant < 0

% display ‘Imaginary roots’

% Otherwise

% compute real roots

% Display the results

% Otherwise

% Print error message57

Page 58: Introduction to Computers and Programming History of computers What is a computer system? What is a software? What is programming? Different languages.

% Collect the inputs from the usera = input(‘Enter coefficient a: ’);b = input(‘Enter coefficient b: ’);c = input(‘Enter coefficient c: ’);

% If no error conditionif a~=0 %means a not equal to zero, could have done (a<0 || a>0)

% Compute the discriminant (b2-4ac)discriminant = b^2-4*a*c;

% If discriminant < 0if discriminant<0

% display ‘Imaginary roots’disp(‘Imaginary Roots’)

% Otherwiseelse

% compute real rootsx1 = (-b + sqrt(discriminant)) / (2*a);x2 = (-b - sqrt(discriminant)) / (2*a);% Display the resultsfprintf(‘x1 = %.2f and x2 = %.2f\n’,x1,x2)

end% Otherwiseelse

% Print error messagedisp(‘error: a invalid’)

end

58

Page 59: Introduction to Computers and Programming History of computers What is a computer system? What is a software? What is programming? Different languages.

Wrapping Up What are the 5 steps?

1. State the problem Do research if the problem is not clear enough

2. Identify the Inputs/Outputs (Givens/Results) Create an I/O diagram Which devices are used for each side?

3. Manually solve the problem 4. Computerize the solution

4.1 Set up the algorithm 4.2 Code

5. test, Test, TEST!!!

59