Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf ·...

47
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 1: Introduction to Computers, Problem Solving, and Programming Problem Solving, Abstraction, and Design using C++ 6e by Frank L. Friedman and Elliot B. Koffman

Transcript of Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf ·...

Page 1: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Chapter 1: Introduction to Computers, Problem Solving, and Programming

Problem Solving, Abstraction, and Design using C++ 6e

by Frank L. Friedman and Elliot B. Koffman

Page 2: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2

AlgorithmsC++

Linux

Codewarrior

Page 3: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 3

Early Computers

• Late 1930’s, John Atanasoff, Clifford Berry• ENIAC

– 1946– University of Pennsylvania– J. Presper Eckert and John Mauchley– John von Neumann, stored-program concept

Page 4: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 4

Categories of Computers

• Supercomputers• Mainframe• Minicomputers• Microcomputers

Page 5: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1-5

Figure 1.2

(a) Notebook Computer(HP Pavilion dv5©, Courtesy of Hewlett-Packard).

(b) Palmtop Computer(iPhone 3G©, Courtesy of Apple, Inc.)

(c) Desktop Computer(iMac©, Courtesy of Apple, Inc.)

Page 6: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 6

Computer Hardware

• CPU - central processing unit– Where decisions are made, computations are

performed, and input/output requests are delegated

• Main Memory– Stores information being processed by the CPU

• Secondary Memory (Mass Storage)– Stores data and programs

Page 7: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7

Computer Hardware

• Input devices– Allow people to supply information to computers

• Output devices– Allow people to receive information from computers

• Network connection– Modems– Ethernet interface

Page 8: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1-8

Figure 1.3

Components of a Computer

Page 9: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 9

Memory• Stores

– programs• operating system• applications

– data• Types

– RAM - volatile– ROM

• Composed of bits, which are combined into bytes

Page 10: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 10

Memory CellsAddress Contents

-27.2354

0.005-26

H

X75.62

RTV 001. . .

0123456

. . .999

Page 11: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1-11

Figure 1.5 Relationship Between a Byte and a Bit

Page 12: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 12

Secondary Memory• Semi permanent data-storage capability

– Magnetic• Hard disk• Floppy disk• Tape

– Non-magnetic• CD or DVD• memory stick, flash drive

• Secondary memory usually has much more storage capacity than main memory

Page 13: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1-13

Figure 1.6 Secondary Storage Media

Page 14: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 14

CPU

• “Brains” of the computer– Arithmetic calculations are performed using the

Arithmetic/Logical Unit or ALU– Control unit decodes and executes instructions– Registers hold information and instructions for

CPU to process• Arithmetic operations are performed using

binary number system

Page 15: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1-15

Figure 1.1The Intel Atom processor chip contains the full circuitry of a central processing unit in an integrated circuit whose small size and low power requirements make it suitable for use in mobile internet devices. (Intel Corporation Pressroom Photo Archives)

Page 16: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 16

Input / Output Devices

• Accessories that allow computer to perform specific tasks– Receiving information for processing– Return the results of processing

• Common input and output devices– Keyboard Joystick Scanner– Printer Monitor Speaker

Page 17: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 17

Computer Networks• Allows multiple computers to connect

together to share resources and/or data• LAN - Local area network

– Organizational• WAN - Wide area network

– Internet• Requires additional hardware

– modem– network interface

Page 18: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1-18

Figure 1.7 Local Area Network

Page 19: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1-19

Figure 1.8A Wide Area Network with Satellite Relays of Microwave Signals

Page 20: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 20

World Wide Web

• Introduced 1989• Developed by CERN

– European Laboratory for Particle Physics• Web browser

– GUI– Netscape– IE

Page 21: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 21

1.3 Computer Software

• Operating system• Other system software

– utilities– programming language systems

• Applications

Page 22: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 22

Operating System

• E.g. Windows®, Unix®

• Controls – the interaction of system with the user– hardware interactions

• Part is usually stored on ROM, rest on hard drive– This arrangement requires booting the system

Page 23: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 23

Some OS Responsibilities

• Communicating with the user; receiving user commands

• Managing allocation of memory, processor time, file system, and other resources

• Collecting input from keyboard, mouse, etc.• Conveying output to screen, printer, etc.• Writing data to secondary storage devices

Page 24: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1-24

Figure 1.9 Entering a UNIX Command for Directory Display

Page 25: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1-25

Figure 1.10Accessing Secondary Storage Devices through Windows

Page 26: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 26

Application Software

• Does the “real” work• Common application software

– Word processors– Desktop publishing programs– Spreadsheets– Presentation managers– Drawing programs

Page 27: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 27

Programming Languages• Machine Language

– Most fundamental language of the computer– Unique for each processor type– Binary 0s and 1s that specify what to do

• 0010 0000 0000 0100• 1000 0000 0000 0101• 0011 0000 0000 0110

Page 28: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 28

Table 1.2 A Program in Machine and Assembly Language

Page 29: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 29

High - Level Languages

• Resemble human language– C++, C, Pascal, FORTRAN, Ada

a = a + b;

• More compact and human understandable than machine language

• Must be translated into machine language

Page 30: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 30

Object Oriented Programming

• C++ derived from C by Bjarne Stroustrup • Popular because of reuse

– Classes– Objects– Methods

• Organized in a Hierarchy – Super Classes– Sub Classes

Page 31: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 31

Page 32: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 32

Object Oriented Design

• Abstraction– Extract the relevant properties of an object

while ignoring inessential details• Encapsulation

– Breaking down an object into parts, hiding and protecting its essential information, and supplying an interface to modify the information in a controlled and useful manner

Page 33: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 33

1.4 Processing a High-Level Language Program• Set of programs used to develop software• A key component is a translator

– Compiler• Examples

– g++, Borland C++®, Microsoft Visual C++®

• Other programs needed– Editor– Linker– Loader

Page 34: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 34

Processing a Program• Editor used to enter the program

– Like minimal word processor– Creates source program file

• Compiler translates the source program– Displays syntax errors– Creates (usually) temporary object code file

• Linker/Loader to combine object file with other object files and execute program– Creates final executable program

Page 35: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 35

Executing a Program

• CPU – examines each program instruction in memory– sends out command signals required to carry

out the instruction• Special instructions used to

– input data into memory for the program to use– output data to display or printer (or other

device)

Page 36: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1-36

Figure 1.11 Entering, Translating, and Running a High-Level Language Program

Page 37: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1-37

Figure 1.12 Flow of Information During Program Execution

Page 38: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 38

1.5 Software Development Method• Problem Analysis

– Identify data objects– Determine Input / Output data– Constraints on the problem

• Design– Decompose into smaller problems– Top-down design (divide and conquer)– Develop Algorithm (Desk check)

• Algorithm refinement

Page 39: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 39

Software Development Method

• Implementation– Converting the algorithm into programming

language• Testing

– Verify the program meets requirements– System and Unit test

• Maintenance– All programs undergo change over time

Page 40: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 40

1.6 Applying the Software Development Method• Case Study: Converting Miles to Kilometers

– Problem Your summer surveying job requires you to study some maps that give distances in kilometers and some that use miles. You and your coworkers prefer to deal in metric measurements. Write a program that performs the necessary conversion.

Page 41: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 41

Case Study

– Analysis The first step in solving this problem is to determine what you are asked to do. You must convert from one system of measurement to another, but are you supposed to convert from kilometers to miles, or vice versa? The problem states that you prefer to deal in metric measurements, so you must convert distance measurements in miles to kilometers.

Page 42: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 42

Data Requirements

• Problem Inputmiles distance in miles

• Problem Outputkms the distance in kilometers

• Relevant Formula1 mile = 1.609 kilometers

Page 43: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 43

Design• Formulate the algorithm that solves the

problem.• Algorithm

1. Get the distance in miles.2. Convert the distance to kilometers.3. Display the distance in kilometers.

• Algorithm Refinement2.1 The distance in kilometers is 1.609 the

distance in miles• Desk check!

Page 44: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 44

Listing 1.2 Miles to kilometers

Page 45: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 45

Implementation#include <iostream>using namespace std;int main( ){

const float KM_PER_MILE = 1.609;float miles, kms;cout << “Enter the distance in miles: “;cin >> miles;kms = KM_PER_MILE * miles;cout << “The distance in kilometers is “ << kms << endl;return 0;

}

Page 46: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 46

Testing

• Test with input data for which you can easily determine the expected results

• E.g. 10 miles should convert to 16.09 kilometers

Page 47: Chapter 1: Introduction to Computers, Problem Solving, and ...rafea/CSCE106/NewSlides/ch01.pdf · low power requirements make it suitable for use in mobile internet ... Operating

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 47

1.7 Professional Ethics for Computer Programmers

• Privacy and Misuse of Data• Computer Hacking• Plagiarism and Software Piracy• Misuse of a Computer Resource