cosc175 - lec11 overview history hardware software software development life cycle programming...

40
cosc175 - lec1 1 Overview • History • Hardware • Software • Software Development Life Cycle • Programming Languages • Structured Programming • Defining the Problem

Upload: janel-harrell

Post on 27-Dec-2015

220 views

Category:

Documents


2 download

TRANSCRIPT

cosc175 - lec1 1

Overview

• History• Hardware• Software• Software Development Life Cycle• Programming Languages• Structured Programming• Defining the Problem

cosc175 - lec1 2

History of computers• First Generation computers (1951-1958)

– vacuum tubes– used large amounts of electricity, heat,large and expensive– 1946 - ENIAC - computed trajectories for U.S. Army– 1951 - UNIVAC - first commercially available computer,

census• Second Generation computers (1959-1963)

– transistors, less heat– more reliable, less expensive

• Third Generation computers (1964-1970)– integrated circuits– less heat, higher speed

cosc175 - lec1 3

History of computers• Fourth Generation computers (1971-present)

– microprocessor => Personal Computer– Apple II (1977), IBM PC (1981)– ARPANET (1969)– WWW (1991)– Today - cheaper, smaller, better

• Fifth Generation computers (present and beyond)– Artificial Intelligence

• http://www.history.com/shows/modern-marvels/videos/who-invented-the-computer#who-invented-the-computer

cosc175 - lec1 4

Computer Components(Hardware)

Arithmetic Logic Unit

Control Unit

Auxiliary StorageDevice

Memory Unit ( RAM & Registers )

Central Processing Unit ( CPU ) Input Device

Output Device

Peripherals

cosc175 - lec1 5

Software

• Systems Software– Operating System – software that

controls overall operation of computer– DOS, Windows, Unix, Linux

• Programming Environment– Editor/Compiler/Interpreter/Linker/ Debugger

• Application Software

cosc175 - lec1 6

Software Development Life Cycle

1. Define the Problem (Analysis)2. Design the Solution

(Algorithm)3. Code Solution (Program)4. Test and Debug5. Maintain & Document

SDLC

cosc175 - lec1 7

cosc175 - lec1 8

1. Analysis

What? Defining the Problem Requirements Generate and document a clear problem

statement Need to talk to all stakeholders Most common cause of software system

failure traced to poor requirements gathering

IPO

cosc175 - lec1 9

2. Design • HOW? • Planning• Algorithm – expansion of steps in

the IPO diagram• Flowchart• Pseudocode

cosc175 - lec1 10

Start

Input payRate

Input hrsWorked

netPay = payRate * hrsWorked

Output netPay

Stop

Pseudocode:

Input payRateInput hrsWorkednetPay = payRate * hrsWorkedOutput netPay

Design tools

cosc175 - lec1 11

pseudocode flowchart•Can be done easily on word processor•Implements structured•design elements well•Not visual•No standard

•Standardized•visual•Difficult to modify•requires special software to do on computer

cosc175 - lec1 12

An Algorithm is . . .• Step-by-step procedures for solving a problem in a

finite amount of time. • We are learning to write algorithms and the

computer is simply a fast and flexible tool for implementing algorithms.

• An algorithm is an ordered set of instructions such that:      (1) There are a finite number of steps.      (2) It takes a finite amount of time to execute the steps.      (3) Each step is precise in meaning, and “doable.”      (4) It solves a general class of problems.

cosc175 - lec1 13

3. Code the Solution

• Choose language• Edit – create source program• Compile - translate

– Syntax error – violate rules of programming language

• Link• Create an executable program

cosc175 - lec1 14

4. Test and Debug

• Test with variety of data• Debugging: locating and correcting

errors– Logic error or bug - flaw in algorithm

• Run-time error e.g. Divide by zero

• Programming packages usually have debugger software to help programmer

cosc175 - lec1 15

5. Maintain and Document

• Maintenance – Changing and maintaining existing programs– Most coding is actually maintenance

• Documentation – sometimes done by technical writers

cosc175 - lec1 16

A Tempting Shortcut?

GOAL

THINKINGCODE

REVISEREVISE

REVISEDEBUG

DEBUG

DEBUG

TEST

CODEShortcut?

cosc175 - lec1 17

Programming Languages• Definition: languages with strict grammar rules, symbols, and

words used to construct a computer program• Machine Languages

– is not portable, runs only on specific type of computer– is made up of binary-coded instructions (strings of 0s and 1s) – is the language that can be directly used by the computer

• Assembly Language– Mnemonic codes are used for the op. codes instead of binary,

EXA: LDA N, SUB B– assembly language program must be translated into machine

language before it can be executed, ‘assembler’.• High Level Languages

– portable– similar to natural language– Requires compiler – translates high-level language into

machine code– FORTRAN, Visual BASIC, COBOL, Pascal, Ada, C++, Java– most are standardized by ISO/ANSI

Assembly Language

cosc175 - lec1 19

cosc175 - lec1 20

C++• 1972 : C created by Dennis Ritchie at Bell Labs

=> 90% of UNIX is then written in C• 1983: C++ - Bjarne Stroustrup at Bell Labs • 1998 : ISO/ANSI standardization of C++• general-purpose programming language - many

uses• Flexible - few restrictions• high demand for C,C++ programmers• high level/low level• Portable - leader in portability• programmer oriented-"written by a professional

programmer for professional programmers"

cosc175 - lec1 21

1. Edit: write and type the program (source code) in C++ , Save as myProg.cpp2: Compile: translate the source code into machine language => myprog.obj

syntax error – violation of the rules of the language.  3: Link = bring in other code from libraries, bind the modules together, etc => myProg.exe4: Run = run the executable file

 Logic errors (bug) – An error caused by a mistake in programming instructions.A logic error causes a program to operate wrongly or produce incorrect data, but not to stop working

cosc175 - lec1 22

Structured Programming

Top-down Design– divide and conquer

Modularity subprograms Stepwise refinement

The Structure Theorem- Use 3 basic control structures to solve any problem

1. Sequence2. Selection (if-then-else)3. Repetition (loop)

cosc175 - lec1 23

SEQUENCEStatement

Statement

Statement

Display “Enter Name”Input nameDisplay “Hello “ name

cosc175 - lec1 24

SELECTION (branch)IF Condition THEN Statement1 ELSE Statement2

Statement1 Statement

Statement2

Condition . . .

True

False

If (num > 0) Display “Positive”Else Display “Negative”

cosc175 - lec1 25

LOOP (repetition)

Statement

Condition. . .

False

True

WHILE Condition DO Statement1

cosc175 - lec1 26

SUBPROGRAM (function)

SUBPROGRAM1 . . .

SUBPROGRAM1 a meaningful collection of SEQUENCE, SELECTION, LOOP, SUBPROGRAM

cosc175 - lec1 27

Computing Profession Ethics

• copy software only with permission from the copyright holder

• give credit to another programmer by name whenever using his/her code

• use computer resources only with permission

• guard the privacy of confidential data• use software engineering principles to

develop software free from errors

cosc175 - lec1 28

                                                                                                         

As proposed by the project sponsor.

As specified in the project request.

As designed by the senior analyst.

                                                                                                         

As produced by the programmers.

As installed at the user's site. What the user wanted.

cosc175 - lec1 29

Step 1:AnalysisDefine the Problem

IPO1. Input: Determine what is given

=>nouns, adjectives

2. Output: Determine what is required =>nouns, adjectives

3. Processing: Determine the transformations needed,actions needed to produce the required output=>verbs, adverbs

cosc175 - lec1 30

variables

• Input and output data• Nouns• Naming convention

– No spaces– Meaningful names– Usually begin with lowercase– Examples: roomWidth, numPeople,

studentName

cosc175 - lec1 31

Example 1

Input

Processing

Output

Read three numbers, add them together and print the total.

cosc175 - lec1 32

1. Identify inputsUnderline nouns

Input

Processing

Output

Read three numbers, add them together and print the total.•Break up several values into separate variables

cosc175 - lec1 33

1. Identify inputsfill Input column first

Input

Processing

Output

num1

num2

num3

Read three numbers, add them together and print the total.•Break up several values into separate variables

cosc175 - lec1 34

2. Identify outputsoutput column next

Input

Processing

Output

num1

total

num2

num3

Read three numbers, add them together and print the total.•Break up several values into separate variables•No verbs here

cosc175 - lec1 35

3. Processing-Define processing steps by bolding verbs

Input

Processing

Output

num1

total

num2

num3

Read three numbers, add them together and print the total.

cosc175 - lec1 36

Each verb is a process step

Input

Processing

Output

num1

Read num1, num2, num3

total

num2

Calculate total

num3

Display total

Read three numbers, add them together and print the total.Hint: Usually follows: input, process, output

cosc175 - lec1 37

Step 3: define list of actions

Input

Processing

Output

num1

Read num1,num2,num3

total

num2

Add numbers together

num3

Print total

Read three numbers, add them together and print the total.•Hint: Use verbs•these steps usually involve the input and output defined in step 1

cosc175 - lec1 38

Example 2:

Input

Processing

Output

maxTemp avgTemp

minTemp

Write a program to prompt the operator for the maximum and minimum temperature readings on a particular day, accept those readings as integers, and calculate and display on the screen the average temperature.

cosc175 - lec1 39

Example 2:

Input

Processing

Output

Write a program to prompt the operator for the maximum and minimum temperature readings on a particular day, accept those readings as integers, and calculate and display on the screen the average temperature.

cosc175 - lec1 40

Example 2:

Input

Processing

Output

maxTemp Prompt for maxTemp,minTemp

avgTemp

minTemp

Calculate avgTemp

Display avgTemp

Write a program to prompt the operator for the maximum and minimum temperature readings on a particular day, accept those readings as integers, and calculate and display on the screen the average temperature.