SlideShare a Scribd company logo
1 of 48
Chapter 1:
An Overview of Computers and
Programming Languages
Objectives
• In this chapter, you will:
– Learn about different types of computers
– Explore the hardware and software components of a
computer system
– Learn about the language of a computer
– Learn about the evolution of programming languages
– Examine high-level programming languages
2C++ Programming: Program Design Including Data Structures, Seventh Edition
Objectives (cont’d.)
– Discover what a compiler is and what it does
– Examine a C++ program
– Explore how a C++ program is processed
– Learn what an algorithm is and explore problem-solving
techniques
– Become aware of structured design and object-oriented
design programming methodologies
– Become aware of Standard C++, ANSI/ISO Standard C++,
and C++11
3C++ Programming: Program Design Including Data Structures, Seventh Edition
Introduction
• Without software, the computer is useless
• Software is developed with programming languages
– C++ is a programming language
• C++ suited for a wide variety of programming tasks
4C++ Programming: Program Design Including Data Structures, Seventh Edition
A Brief Overview of the History of
Computers
• Early calculation devices
– Abacus, Pascaline
– Leibniz device
– Jacquard’s weaving looms
– Babbage machines: difference and analytic engines
– Hollerith machine
5C++ Programming: Program Design Including Data Structures, Seventh Edition
A Brief Overview of the History of
Computers (cont’d.)
• Early computer-like machines
– Mark I
– ENIAC
– Von Neumann architecture
– UNIVAC
– Transistors and microprocessors
6C++ Programming: Program Design Including Data Structures, Seventh Edition
A Brief Overview of the History of
Computers (cont’d.)
• Categories of computers
– Mainframe computers
– Midsize computers
– Micro computers (personal computers)
7C++ Programming: Program Design Including Data Structures, Seventh Edition
Elements of a Computer System
• Hardware
• CPU
• Main memory
• Secondary storage
• Input/Output devices
• Software
8C++ Programming: Program Design Including Data Structures, Seventh Edition
Hardware
• CPU
• Main memory: RAM
• Input/output devices
• Secondary storage
9C++ Programming: Program Design Including Data Structures, Seventh Edition
Central Processing Unit and Main
Memory
• Central processing unit
– Brain of the computer
– Most expensive piece of hardware
– Carries out arithmetic and logical operations
10C++ Programming: Program Design Including Data Structures, Seventh Edition
Central Processing Unit and Main
Memory (cont’d.)
11C++ Programming: Program Design Including Data Structures, Seventh Edition
Central Processing Unit and Main
Memory (cont’d.)
• Random access memory
– Directly connected to the CPU
• All programs must be loaded into main memory
before they can be executed
• All data must be brought into main memory before it
can be manipulated
• When computer power is turned off, everything in
main memory is lost
12C++ Programming: Program Design Including Data Structures, Seventh Edition
Central Processing Unit and Main
Memory (cont’d.)
• Main memory is an ordered sequence of memory
cells
– Each cell has a unique location in main memory, called the
address of the cell
• Each cell can contain either a programming
instruction or data
13C++ Programming: Program Design Including Data Structures, Seventh Edition
Secondary Storage
• Secondary storage: device that stores information
permanently
• Examples of secondary storage:
– Hard disks
– Flash drives
– Floppy disks
– Zip disks
– CD-ROMs
– Tapes
14C++ Programming: Program Design Including Data Structures, Seventh Edition
Input/Output Devices
• Input devices feed data and programs into
computers
– Keyboard
– Mouse
– Secondary storage
• Output devices display results
– Monitor
– Printer
– Secondary storage
15C++ Programming: Program Design Including Data Structures, Seventh Edition
Software
• Software: programs that do specific tasks
• System programs control the computer
– Operating system monitors the overall activity of the
computer and provides services such as:
• Memory management
• Input/output activities
• Storage management
• Application programs perform a specific task
– Word processors
– Spreadsheets
– Games
16C++ Programming: Program Design Including Data Structures, Seventh Edition
The Language of a Computer
• Analog signals: continuous wave forms
• Digital signals: sequences of 0s and 1s
• Machine language: language of a computer; a
sequence of 0s and 1s
• Binary digit (bit): the digit 0 or 1
• Binary code (binary number): a sequence of 0s
and 1s
17C++ Programming: Program Design Including Data Structures, Seventh Edition
The Language of a Computer (cont’d.)
• Byte:
– A sequence of eight bits
• Kilobyte (KB): 210
bytes = 1024 bytes
• ASCII (American Standard Code for Information
Interchange)
– 128 characters
– A is encoded as 1000001 (66th character)
– 3 is encoded as 0110011
18C++ Programming: Program Design Including Data Structures, Seventh Edition
The Language of a Computer (cont’d.)
19C++ Programming: Program Design Including Data Structures, Seventh Edition
The Language of a Computer (cont’d.)
• EBCDIC
– Used by IBM
– 256 characters
• Unicode
– 65536 characters
– Two bytes are needed to store a character
20C++ Programming: Program Design Including Data Structures, Seventh Edition
The Evolution of Programming
Languages
• Early computers were programmed in machine
language
• To calculate wages = rate * hours in
machine language:
100100 010001 //Load
100110 010010 //Multiply
100010 010011 //Store
21C++ Programming: Program Design Including Data Structures, Seventh Edition
The Evolution of Programming
Languages (cont’d.)
• Assembly language instructions are mnemonic
• Assembler: translates a program written in assembly
language into machine language
• Using assembly language instructions, wages =
rate • hours can be written as:
LOAD rate
MULT hour
STOR wages
22C++ Programming: Program Design Including Data Structures, Seventh Edition
The Evolution of Programming
Languages (cont’d.)
• High-level languages include Basic, FORTRAN,
COBOL, Pascal, C, C++, C#, and Java
• Compiler: translates a program written in a high-level
language into machine language
• The equation wages = rate • hours can be
written in C++ as:
wages = rate * hours;
23C++ Programming: Program Design Including Data Structures, Seventh Edition
Processing a C++ Program
#include <iostream>
using namespace std;
int main()
{
cout << "My first C++ program." << endl;
return 0;
}
Sample Run:
My first C++ program.
24C++ Programming: Program Design Including Data Structures, Seventh Edition
Processing a C++ Program (cont’d.)
• To execute a C++ program:
– Use an editor to create a source program in C++
– Preprocessor directives begin with # and are processed by
the preprocessor
– Use the compiler to:
• Check that the program obeys the language rules
• Translate into machine language (object program)
25C++ Programming: Program Design Including Data Structures, Seventh Edition
Processing a C++ Program (cont’d.)
• To execute a C++ program (cont'd.):
– Linker:
• Combines object program with other programs
provided by the SDK to create executable code
• Library: contains prewritten code you can use
– Loader:
• Loads executable program into main memory
– The last step is to execute the program
• Some IDEs do all this with a Build or Rebuild
command
26C++ Programming: Program Design Including Data Structures, Seventh Edition
Processing a C++ Program (cont’d.)
27C++ Programming: Program Design Including Data Structures, Seventh Edition
Programming with the Problem
Analysis–Coding–Execution Cycle
• Algorithm:
– Step-by-step problem-solving
process
– Solution achieved in finite
amount of time
• Programming is a process of
problem solving
28C++ Programming: Program Design Including Data Structures, Seventh Edition
The Problem Analysis–Coding–
Execution Cycle (cont’d.)
• Step 1: Analyze the problem
– Outline the problem and its requirements
– Design steps (algorithm) to solve the problem
• Step 2: Implement the algorithm
– Implement the algorithm in code
– Verify that the algorithm works
• Step 3: Maintain
– Use and modify the program if the problem domain
changes
29C++ Programming: Program Design Including Data Structures, Seventh Edition
The Problem Analysis–Coding–
Execution Cycle (cont’d.)
• Thoroughly understand the problem and all requirements
– Does program require user interaction?
– Does program manipulate data?
– What is the output?
• If the problem is complex, divide it into subproblems
– Analyze and design algorithms for each subproblem
• Check the correctness of algorithm
– Can test using sample data
– Some mathematical analysis might be required
30C++ Programming: Program Design Including Data Structures, Seventh Edition
The Problem Analysis–Coding–
Execution Cycle (cont’d.)
• Once the algorithm is designed and correctness
verified
– Write the equivalent code in high-level language
• Enter the program using text editor
31C++ Programming: Program Design Including Data Structures, Seventh Edition
The Problem Analysis–Coding–
Execution Cycle (cont’d.)
• Run code through compiler
• If compiler generates errors
– Look at code and remove errors
– Run code again through compiler
• If there are no syntax errors
– Compiler generates equivalent machine code
• Linker links machine code with system resources
32C++ Programming: Program Design Including Data Structures, Seventh Edition
The Problem Analysis–Coding–
Execution Cycle (cont’d.)
• Once compiled and linked, loader can place program
into main memory for execution
• The final step is to execute the program
• Compiler guarantees that the program follows the
rules of the language
– Does not guarantee that the program will run correctly
33C++ Programming: Program Design Including Data Structures, Seventh Edition
Example 1-1
• Design an algorithm to find the perimeter and area
of a rectangle
• The perimeter and area of the rectangle are given by
the following formulas:
perimeter = 2 * (length + width)
area = length * width
34C++ Programming: Program Design Including Data Structures, Seventh Edition
Example 1-1 (cont’d.)
• Algorithm:
– Get length of the rectangle
– Get width of the rectangle
– Find the perimeter using the following equation:
perimeter = 2 * (length + width)
– Find the area using the following equation:
area = length * width
35C++ Programming: Program Design Including Data Structures, Seventh Edition
Example 1-5
• Calculate each student’s grade
– 10 students in a class; each student has taken five tests;
each test is worth 100 points
• Design algorithms to:
– Calculate the grade for each student and class average
– Find the average test score
– Determine the grade
• Data: students’ names; test scores
36C++ Programming: Program Design Including Data Structures, Seventh Edition
Example 1-5 (cont’d.)
• Algorithm to determine the average test score:
– Get the five test scores
– Add the five test scores
• Suppose sum stands for the sum of the test scores
– Suppose average stands for the average test score:
• average = sum / 5;
37C++ Programming: Program Design Including Data Structures, Seventh Edition
Example 1-5 (cont’d.)
• Algorithm to determine the grade:
if average is greater than or equal to 90
grade = A
otherwise
if average is greater than or equal to 80 and less than 90
grade = B
otherwise
if average is greater than or equal to 70 and less than 80
grade = C
otherwise
if average is greater than or equal to 60 and less than 70
grade = D
otherwise
grade = F
38C++ Programming: Program Design Including Data Structures, Seventh Edition
Example 1-5 (cont’d.)
• Main algorithm is as follows:
– totalAverage = 0;
– Repeat the following for each student:
• Get student’s name
• Use the algorithm to find the average test score
• Use the algorithm to find the grade
• Update totalAverage by adding current student’s
average test score
– Determine the class average as follows:
• classAverage = totalAverage / 10
39C++ Programming: Program Design Including Data Structures, Seventh Edition
Programming Methodologies
• Two popular approaches to programming design
– Structured
– Object-oriented
40C++ Programming: Program Design Including Data Structures, Seventh Edition
Structured Programming
• Structured design:
– Dividing a problem into smaller subproblems
• Structured programming:
– Implementing a structured design
• The structured design approach is also called:
– Top-down (or bottom-up) design
– Stepwise refinement
– Modular programming
41C++ Programming: Program Design Including Data Structures, Seventh Edition
Object-Oriented Programming
• Object-oriented design (OOD)
– Identify components called objects
– Determine how objects interact with each other
• Specify relevant data and possible operations to be
performed on that data
• Each object consists of data and operations on that
data
42C++ Programming: Program Design Including Data Structures, Seventh Edition
Object-Oriented Programming
(cont’d.)
• An object combines data and operations on the data
into a single unit
• A programming language that implements OOD is
called an object-oriented programming (OOP)
language
• Must learn how to represent data in computer
memory, how to manipulate data, and how to
implement operations
43C++ Programming: Program Design Including Data Structures, Seventh Edition
Object-Oriented Programming
(cont’d.)
• Write algorithms and implement them in a
programming language
• Use functions to implement algorithms
• Learn how to combine data and operations on the
data into a single unit called an object
• C++ was designed to implement OOD
• OOD is used with structured design
44C++ Programming: Program Design Including Data Structures, Seventh Edition
ANSI/ISO Standard C++
• C++ evolved from C
• C++ designed by Bjarne Stroustrup at Bell
Laboratories in early 1980s
– Many different C++ compilers were available
• C++ programs were not always portable from one
compiler to another
• In mid-1998, ANSI/ISO C++ language standards were
approved
• Second standard called C++11 approved in 2011
45C++ Programming: Program Design Including Data Structures, Seventh Edition
Summary
• Computer: electronic device that can perform
arithmetic and logical operations
• Computer system has hardware/software
– Central processing unit (CPU): brain
– Primary storage (MM) is volatile; secondary storage (e.g.,
disk) is permanent
– Operating system monitors overall activity of the
computer and provides services
– Various kinds of languages
46C++ Programming: Program Design Including Data Structures, Seventh Edition
Summary (cont’d.)
• Compiler: translates high-level language into
machine code
• Algorithm: step-by-step problem-solving process;
solution in finite amount of time
• Problem-solving process has three steps:
– Analyze problem and design an algorithm
– Implement the algorithm in code
– Maintain the program
47C++ Programming: Program Design Including Data Structures, Seventh Edition
Summary (cont’d.)
• Structured design:
– Problem is divided into smaller subproblems
– Each subproblem is solved
– Combine solutions to all subproblems
• Object-oriented design (OOD): a program is a
collection of interacting objects
– Object: data and operations on those data
48C++ Programming: Program Design Including Data Structures, Seventh Edition

More Related Content

What's hot

9781285852744 ppt ch10
9781285852744 ppt ch109781285852744 ppt ch10
9781285852744 ppt ch10Terry Yoast
 
9781285852744 ppt ch13
9781285852744 ppt ch139781285852744 ppt ch13
9781285852744 ppt ch13Terry Yoast
 
9781285852744 ppt ch08
9781285852744 ppt ch089781285852744 ppt ch08
9781285852744 ppt ch08Terry Yoast
 
Embedded C programming based on 8051 microcontroller
Embedded C programming based on 8051 microcontrollerEmbedded C programming based on 8051 microcontroller
Embedded C programming based on 8051 microcontrollerGaurav Verma
 
Part II: Assembly Fundamentals
Part II: Assembly FundamentalsPart II: Assembly Fundamentals
Part II: Assembly FundamentalsAhmed M. Abed
 
Introduction to C Language
Introduction to C LanguageIntroduction to C Language
Introduction to C LanguageSyedShujaatAbbas
 
Introduction to c programming
Introduction to c programmingIntroduction to c programming
Introduction to c programmingAkshay Ithape
 
Chapter 1: Introduction
Chapter 1: IntroductionChapter 1: Introduction
Chapter 1: IntroductionEric Chou
 
Introduction to C Language (By: Shujaat Abbas)
Introduction to C Language (By: Shujaat Abbas)Introduction to C Language (By: Shujaat Abbas)
Introduction to C Language (By: Shujaat Abbas)Shujaat Abbas
 
Simplified instructional computer
Simplified instructional computerSimplified instructional computer
Simplified instructional computerKirby Fabro
 
System Programming Unit III
System Programming Unit IIISystem Programming Unit III
System Programming Unit IIIManoj Patil
 

What's hot (16)

Embedded C - Lecture 1
Embedded C - Lecture 1Embedded C - Lecture 1
Embedded C - Lecture 1
 
9781285852744 ppt ch10
9781285852744 ppt ch109781285852744 ppt ch10
9781285852744 ppt ch10
 
9781285852744 ppt ch13
9781285852744 ppt ch139781285852744 ppt ch13
9781285852744 ppt ch13
 
9781285852744 ppt ch08
9781285852744 ppt ch089781285852744 ppt ch08
9781285852744 ppt ch08
 
Embedded C programming based on 8051 microcontroller
Embedded C programming based on 8051 microcontrollerEmbedded C programming based on 8051 microcontroller
Embedded C programming based on 8051 microcontroller
 
Part II: Assembly Fundamentals
Part II: Assembly FundamentalsPart II: Assembly Fundamentals
Part II: Assembly Fundamentals
 
Introduction to C Language
Introduction to C LanguageIntroduction to C Language
Introduction to C Language
 
Introduction to c programming
Introduction to c programmingIntroduction to c programming
Introduction to c programming
 
Flowcharts
FlowchartsFlowcharts
Flowcharts
 
Chapter 1: Introduction
Chapter 1: IntroductionChapter 1: Introduction
Chapter 1: Introduction
 
Introduction to C Language (By: Shujaat Abbas)
Introduction to C Language (By: Shujaat Abbas)Introduction to C Language (By: Shujaat Abbas)
Introduction to C Language (By: Shujaat Abbas)
 
C++ language
C++ languageC++ language
C++ language
 
Simplified instructional computer
Simplified instructional computerSimplified instructional computer
Simplified instructional computer
 
Compiler Design Unit 1
Compiler Design Unit 1Compiler Design Unit 1
Compiler Design Unit 1
 
06 mips-isa
06 mips-isa06 mips-isa
06 mips-isa
 
System Programming Unit III
System Programming Unit IIISystem Programming Unit III
System Programming Unit III
 

Viewers also liked

Libro biodiversidad fhn
Libro biodiversidad fhnLibro biodiversidad fhn
Libro biodiversidad fhnCami Müller
 
Currency high lights 14.03.17
Currency high lights 14.03.17Currency high lights 14.03.17
Currency high lights 14.03.17choice broking
 
Augmented Reality in Health Sector
Augmented Reality in Health SectorAugmented Reality in Health Sector
Augmented Reality in Health SectorSMACAR Solutions
 
Tugasan 3 PENSWASTAAN
Tugasan 3 PENSWASTAANTugasan 3 PENSWASTAAN
Tugasan 3 PENSWASTAANNurul Othman
 
Evaluacin del-desempeo-docente-20172-170309021149
Evaluacin del-desempeo-docente-20172-170309021149Evaluacin del-desempeo-docente-20172-170309021149
Evaluacin del-desempeo-docente-20172-170309021149Isela Guerrero Pacheco
 
Group peta(sample format)
Group peta(sample format)Group peta(sample format)
Group peta(sample format)Allan Pabillano
 
World stage総合企画書ver1.1
World stage総合企画書ver1.1World stage総合企画書ver1.1
World stage総合企画書ver1.1JK-Branding
 
Engineer colors企画書ver1.1
Engineer colors企画書ver1.1Engineer colors企画書ver1.1
Engineer colors企画書ver1.1JK-Branding
 
Origen y la evolucion
Origen y la evolucionOrigen y la evolucion
Origen y la evolucionDiego Leyva
 
Materiales construcción moçambique (13 abril)
Materiales construcción moçambique (13 abril)Materiales construcción moçambique (13 abril)
Materiales construcción moçambique (13 abril)Charles Dayan
 

Viewers also liked (15)

Libro biodiversidad fhn
Libro biodiversidad fhnLibro biodiversidad fhn
Libro biodiversidad fhn
 
Aaj ka trend 14.03.17
Aaj ka trend 14.03.17Aaj ka trend 14.03.17
Aaj ka trend 14.03.17
 
Currency high lights 14.03.17
Currency high lights 14.03.17Currency high lights 14.03.17
Currency high lights 14.03.17
 
Juegos educativos
Juegos educativosJuegos educativos
Juegos educativos
 
Status adwords
Status adwordsStatus adwords
Status adwords
 
Augmented Reality in Health Sector
Augmented Reality in Health SectorAugmented Reality in Health Sector
Augmented Reality in Health Sector
 
Tugasan 3 PENSWASTAAN
Tugasan 3 PENSWASTAANTugasan 3 PENSWASTAAN
Tugasan 3 PENSWASTAAN
 
Evaluacin del-desempeo-docente-20172-170309021149
Evaluacin del-desempeo-docente-20172-170309021149Evaluacin del-desempeo-docente-20172-170309021149
Evaluacin del-desempeo-docente-20172-170309021149
 
Shaadi saga- Content Strategy
Shaadi saga- Content Strategy Shaadi saga- Content Strategy
Shaadi saga- Content Strategy
 
Group peta(sample format)
Group peta(sample format)Group peta(sample format)
Group peta(sample format)
 
World stage総合企画書ver1.1
World stage総合企画書ver1.1World stage総合企画書ver1.1
World stage総合企画書ver1.1
 
Engineer colors企画書ver1.1
Engineer colors企画書ver1.1Engineer colors企画書ver1.1
Engineer colors企画書ver1.1
 
10 consejos para utilizar tus sobras
10 consejos para utilizar tus sobras10 consejos para utilizar tus sobras
10 consejos para utilizar tus sobras
 
Origen y la evolucion
Origen y la evolucionOrigen y la evolucion
Origen y la evolucion
 
Materiales construcción moçambique (13 abril)
Materiales construcción moçambique (13 abril)Materiales construcción moçambique (13 abril)
Materiales construcción moçambique (13 abril)
 

Similar to Learn Programming Fundamentals with C

9781285852744 ppt ch01
9781285852744 ppt ch019781285852744 ppt ch01
9781285852744 ppt ch01Terry Yoast
 
ch01_an overview of computers and programming languages
ch01_an overview of computers and programming languagesch01_an overview of computers and programming languages
ch01_an overview of computers and programming languagesLiemLe21
 
chapter1-161229182113 (1).pdf
chapter1-161229182113 (1).pdfchapter1-161229182113 (1).pdf
chapter1-161229182113 (1).pdfBernardVelasco1
 
CIS110 Computer Programming Design Chapter (1)
CIS110 Computer Programming Design Chapter  (1)CIS110 Computer Programming Design Chapter  (1)
CIS110 Computer Programming Design Chapter (1)Dr. Ahmed Al Zaidy
 
C++ advanced PPT.pdf
C++ advanced PPT.pdfC++ advanced PPT.pdf
C++ advanced PPT.pdfDinashMaliya3
 
l1-introduction_to_computers_and_c_programming.pptx
l1-introduction_to_computers_and_c_programming.pptxl1-introduction_to_computers_and_c_programming.pptx
l1-introduction_to_computers_and_c_programming.pptxssuser6f38e5
 
CPP Lecture 1.pptx
CPP Lecture 1.pptxCPP Lecture 1.pptx
CPP Lecture 1.pptxaddisabebaw2
 
Overview of computers and programming
Overview of computers and programmingOverview of computers and programming
Overview of computers and programmingJason J Pulikkottil
 
C++ programming program design including data structures
C++ programming program design including data structures C++ programming program design including data structures
C++ programming program design including data structures Ahmad Idrees
 
Basic Programming concepts - Programming with C++
Basic Programming concepts - Programming with C++Basic Programming concepts - Programming with C++
Basic Programming concepts - Programming with C++Mohamed El Desouki
 
Introduction-to-C-Part-1 (1).doc
Introduction-to-C-Part-1 (1).docIntroduction-to-C-Part-1 (1).doc
Introduction-to-C-Part-1 (1).docMayurWagh46
 
Basics of C Lecture 2[16097].pptx
Basics of C Lecture 2[16097].pptxBasics of C Lecture 2[16097].pptx
Basics of C Lecture 2[16097].pptxCoolGamer16
 
Computer Programming In C.pptx
Computer Programming In C.pptxComputer Programming In C.pptx
Computer Programming In C.pptxchouguleamruta24
 
C++ Windows Forms L01 - Intro
C++ Windows Forms L01 - IntroC++ Windows Forms L01 - Intro
C++ Windows Forms L01 - IntroMohammad Shaker
 
Review chapter 1 2-3
Review chapter 1 2-3Review chapter 1 2-3
Review chapter 1 2-3ahmed22dg
 

Similar to Learn Programming Fundamentals with C (20)

9781285852744 ppt ch01
9781285852744 ppt ch019781285852744 ppt ch01
9781285852744 ppt ch01
 
ch01_an overview of computers and programming languages
ch01_an overview of computers and programming languagesch01_an overview of computers and programming languages
ch01_an overview of computers and programming languages
 
chapter1-161229182113 (1).pdf
chapter1-161229182113 (1).pdfchapter1-161229182113 (1).pdf
chapter1-161229182113 (1).pdf
 
CIS110 Computer Programming Design Chapter (1)
CIS110 Computer Programming Design Chapter  (1)CIS110 Computer Programming Design Chapter  (1)
CIS110 Computer Programming Design Chapter (1)
 
C++ advanced PPT.pdf
C++ advanced PPT.pdfC++ advanced PPT.pdf
C++ advanced PPT.pdf
 
l1-introduction_to_computers_and_c_programming.pptx
l1-introduction_to_computers_and_c_programming.pptxl1-introduction_to_computers_and_c_programming.pptx
l1-introduction_to_computers_and_c_programming.pptx
 
Csc240 -lecture_3
Csc240  -lecture_3Csc240  -lecture_3
Csc240 -lecture_3
 
01CHAP_1.PPT
01CHAP_1.PPT01CHAP_1.PPT
01CHAP_1.PPT
 
CPP Lecture 1.pptx
CPP Lecture 1.pptxCPP Lecture 1.pptx
CPP Lecture 1.pptx
 
Overview of computers and programming
Overview of computers and programmingOverview of computers and programming
Overview of computers and programming
 
C++ ch1
C++ ch1C++ ch1
C++ ch1
 
C++ programming program design including data structures
C++ programming program design including data structures C++ programming program design including data structures
C++ programming program design including data structures
 
Chapter1.ppt
Chapter1.pptChapter1.ppt
Chapter1.ppt
 
Basic Programming concepts - Programming with C++
Basic Programming concepts - Programming with C++Basic Programming concepts - Programming with C++
Basic Programming concepts - Programming with C++
 
Introduction-to-C-Part-1 (1).doc
Introduction-to-C-Part-1 (1).docIntroduction-to-C-Part-1 (1).doc
Introduction-to-C-Part-1 (1).doc
 
Basics of C Lecture 2[16097].pptx
Basics of C Lecture 2[16097].pptxBasics of C Lecture 2[16097].pptx
Basics of C Lecture 2[16097].pptx
 
Computer Programming In C.pptx
Computer Programming In C.pptxComputer Programming In C.pptx
Computer Programming In C.pptx
 
1. intro to comp & c++ programming
1. intro to comp & c++ programming1. intro to comp & c++ programming
1. intro to comp & c++ programming
 
C++ Windows Forms L01 - Intro
C++ Windows Forms L01 - IntroC++ Windows Forms L01 - Intro
C++ Windows Forms L01 - Intro
 
Review chapter 1 2-3
Review chapter 1 2-3Review chapter 1 2-3
Review chapter 1 2-3
 

Recently uploaded

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 

Recently uploaded (20)

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 

Learn Programming Fundamentals with C

  • 1. Chapter 1: An Overview of Computers and Programming Languages
  • 2. Objectives • In this chapter, you will: – Learn about different types of computers – Explore the hardware and software components of a computer system – Learn about the language of a computer – Learn about the evolution of programming languages – Examine high-level programming languages 2C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 3. Objectives (cont’d.) – Discover what a compiler is and what it does – Examine a C++ program – Explore how a C++ program is processed – Learn what an algorithm is and explore problem-solving techniques – Become aware of structured design and object-oriented design programming methodologies – Become aware of Standard C++, ANSI/ISO Standard C++, and C++11 3C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 4. Introduction • Without software, the computer is useless • Software is developed with programming languages – C++ is a programming language • C++ suited for a wide variety of programming tasks 4C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 5. A Brief Overview of the History of Computers • Early calculation devices – Abacus, Pascaline – Leibniz device – Jacquard’s weaving looms – Babbage machines: difference and analytic engines – Hollerith machine 5C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 6. A Brief Overview of the History of Computers (cont’d.) • Early computer-like machines – Mark I – ENIAC – Von Neumann architecture – UNIVAC – Transistors and microprocessors 6C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 7. A Brief Overview of the History of Computers (cont’d.) • Categories of computers – Mainframe computers – Midsize computers – Micro computers (personal computers) 7C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 8. Elements of a Computer System • Hardware • CPU • Main memory • Secondary storage • Input/Output devices • Software 8C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 9. Hardware • CPU • Main memory: RAM • Input/output devices • Secondary storage 9C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 10. Central Processing Unit and Main Memory • Central processing unit – Brain of the computer – Most expensive piece of hardware – Carries out arithmetic and logical operations 10C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 11. Central Processing Unit and Main Memory (cont’d.) 11C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 12. Central Processing Unit and Main Memory (cont’d.) • Random access memory – Directly connected to the CPU • All programs must be loaded into main memory before they can be executed • All data must be brought into main memory before it can be manipulated • When computer power is turned off, everything in main memory is lost 12C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 13. Central Processing Unit and Main Memory (cont’d.) • Main memory is an ordered sequence of memory cells – Each cell has a unique location in main memory, called the address of the cell • Each cell can contain either a programming instruction or data 13C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 14. Secondary Storage • Secondary storage: device that stores information permanently • Examples of secondary storage: – Hard disks – Flash drives – Floppy disks – Zip disks – CD-ROMs – Tapes 14C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 15. Input/Output Devices • Input devices feed data and programs into computers – Keyboard – Mouse – Secondary storage • Output devices display results – Monitor – Printer – Secondary storage 15C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 16. Software • Software: programs that do specific tasks • System programs control the computer – Operating system monitors the overall activity of the computer and provides services such as: • Memory management • Input/output activities • Storage management • Application programs perform a specific task – Word processors – Spreadsheets – Games 16C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 17. The Language of a Computer • Analog signals: continuous wave forms • Digital signals: sequences of 0s and 1s • Machine language: language of a computer; a sequence of 0s and 1s • Binary digit (bit): the digit 0 or 1 • Binary code (binary number): a sequence of 0s and 1s 17C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 18. The Language of a Computer (cont’d.) • Byte: – A sequence of eight bits • Kilobyte (KB): 210 bytes = 1024 bytes • ASCII (American Standard Code for Information Interchange) – 128 characters – A is encoded as 1000001 (66th character) – 3 is encoded as 0110011 18C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 19. The Language of a Computer (cont’d.) 19C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 20. The Language of a Computer (cont’d.) • EBCDIC – Used by IBM – 256 characters • Unicode – 65536 characters – Two bytes are needed to store a character 20C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 21. The Evolution of Programming Languages • Early computers were programmed in machine language • To calculate wages = rate * hours in machine language: 100100 010001 //Load 100110 010010 //Multiply 100010 010011 //Store 21C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 22. The Evolution of Programming Languages (cont’d.) • Assembly language instructions are mnemonic • Assembler: translates a program written in assembly language into machine language • Using assembly language instructions, wages = rate • hours can be written as: LOAD rate MULT hour STOR wages 22C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 23. The Evolution of Programming Languages (cont’d.) • High-level languages include Basic, FORTRAN, COBOL, Pascal, C, C++, C#, and Java • Compiler: translates a program written in a high-level language into machine language • The equation wages = rate • hours can be written in C++ as: wages = rate * hours; 23C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 24. Processing a C++ Program #include <iostream> using namespace std; int main() { cout << "My first C++ program." << endl; return 0; } Sample Run: My first C++ program. 24C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 25. Processing a C++ Program (cont’d.) • To execute a C++ program: – Use an editor to create a source program in C++ – Preprocessor directives begin with # and are processed by the preprocessor – Use the compiler to: • Check that the program obeys the language rules • Translate into machine language (object program) 25C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 26. Processing a C++ Program (cont’d.) • To execute a C++ program (cont'd.): – Linker: • Combines object program with other programs provided by the SDK to create executable code • Library: contains prewritten code you can use – Loader: • Loads executable program into main memory – The last step is to execute the program • Some IDEs do all this with a Build or Rebuild command 26C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 27. Processing a C++ Program (cont’d.) 27C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 28. Programming with the Problem Analysis–Coding–Execution Cycle • Algorithm: – Step-by-step problem-solving process – Solution achieved in finite amount of time • Programming is a process of problem solving 28C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 29. The Problem Analysis–Coding– Execution Cycle (cont’d.) • Step 1: Analyze the problem – Outline the problem and its requirements – Design steps (algorithm) to solve the problem • Step 2: Implement the algorithm – Implement the algorithm in code – Verify that the algorithm works • Step 3: Maintain – Use and modify the program if the problem domain changes 29C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 30. The Problem Analysis–Coding– Execution Cycle (cont’d.) • Thoroughly understand the problem and all requirements – Does program require user interaction? – Does program manipulate data? – What is the output? • If the problem is complex, divide it into subproblems – Analyze and design algorithms for each subproblem • Check the correctness of algorithm – Can test using sample data – Some mathematical analysis might be required 30C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 31. The Problem Analysis–Coding– Execution Cycle (cont’d.) • Once the algorithm is designed and correctness verified – Write the equivalent code in high-level language • Enter the program using text editor 31C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 32. The Problem Analysis–Coding– Execution Cycle (cont’d.) • Run code through compiler • If compiler generates errors – Look at code and remove errors – Run code again through compiler • If there are no syntax errors – Compiler generates equivalent machine code • Linker links machine code with system resources 32C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 33. The Problem Analysis–Coding– Execution Cycle (cont’d.) • Once compiled and linked, loader can place program into main memory for execution • The final step is to execute the program • Compiler guarantees that the program follows the rules of the language – Does not guarantee that the program will run correctly 33C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 34. Example 1-1 • Design an algorithm to find the perimeter and area of a rectangle • The perimeter and area of the rectangle are given by the following formulas: perimeter = 2 * (length + width) area = length * width 34C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 35. Example 1-1 (cont’d.) • Algorithm: – Get length of the rectangle – Get width of the rectangle – Find the perimeter using the following equation: perimeter = 2 * (length + width) – Find the area using the following equation: area = length * width 35C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 36. Example 1-5 • Calculate each student’s grade – 10 students in a class; each student has taken five tests; each test is worth 100 points • Design algorithms to: – Calculate the grade for each student and class average – Find the average test score – Determine the grade • Data: students’ names; test scores 36C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 37. Example 1-5 (cont’d.) • Algorithm to determine the average test score: – Get the five test scores – Add the five test scores • Suppose sum stands for the sum of the test scores – Suppose average stands for the average test score: • average = sum / 5; 37C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 38. Example 1-5 (cont’d.) • Algorithm to determine the grade: if average is greater than or equal to 90 grade = A otherwise if average is greater than or equal to 80 and less than 90 grade = B otherwise if average is greater than or equal to 70 and less than 80 grade = C otherwise if average is greater than or equal to 60 and less than 70 grade = D otherwise grade = F 38C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 39. Example 1-5 (cont’d.) • Main algorithm is as follows: – totalAverage = 0; – Repeat the following for each student: • Get student’s name • Use the algorithm to find the average test score • Use the algorithm to find the grade • Update totalAverage by adding current student’s average test score – Determine the class average as follows: • classAverage = totalAverage / 10 39C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 40. Programming Methodologies • Two popular approaches to programming design – Structured – Object-oriented 40C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 41. Structured Programming • Structured design: – Dividing a problem into smaller subproblems • Structured programming: – Implementing a structured design • The structured design approach is also called: – Top-down (or bottom-up) design – Stepwise refinement – Modular programming 41C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 42. Object-Oriented Programming • Object-oriented design (OOD) – Identify components called objects – Determine how objects interact with each other • Specify relevant data and possible operations to be performed on that data • Each object consists of data and operations on that data 42C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 43. Object-Oriented Programming (cont’d.) • An object combines data and operations on the data into a single unit • A programming language that implements OOD is called an object-oriented programming (OOP) language • Must learn how to represent data in computer memory, how to manipulate data, and how to implement operations 43C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 44. Object-Oriented Programming (cont’d.) • Write algorithms and implement them in a programming language • Use functions to implement algorithms • Learn how to combine data and operations on the data into a single unit called an object • C++ was designed to implement OOD • OOD is used with structured design 44C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 45. ANSI/ISO Standard C++ • C++ evolved from C • C++ designed by Bjarne Stroustrup at Bell Laboratories in early 1980s – Many different C++ compilers were available • C++ programs were not always portable from one compiler to another • In mid-1998, ANSI/ISO C++ language standards were approved • Second standard called C++11 approved in 2011 45C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 46. Summary • Computer: electronic device that can perform arithmetic and logical operations • Computer system has hardware/software – Central processing unit (CPU): brain – Primary storage (MM) is volatile; secondary storage (e.g., disk) is permanent – Operating system monitors overall activity of the computer and provides services – Various kinds of languages 46C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 47. Summary (cont’d.) • Compiler: translates high-level language into machine code • Algorithm: step-by-step problem-solving process; solution in finite amount of time • Problem-solving process has three steps: – Analyze problem and design an algorithm – Implement the algorithm in code – Maintain the program 47C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 48. Summary (cont’d.) • Structured design: – Problem is divided into smaller subproblems – Each subproblem is solved – Combine solutions to all subproblems • Object-oriented design (OOD): a program is a collection of interacting objects – Object: data and operations on those data 48C++ Programming: Program Design Including Data Structures, Seventh Edition