0% found this document useful (0 votes)
58 views

Chapter 1: An Overview of Computers and Programming Languages

The document provides an overview of chapter 1 which covers computers and programming languages. It discusses the objectives of the chapter which include learning about different computer types, hardware and software, the evolution of programming languages, and C++ programs. It then gives a brief history of computers from early calculation devices to modern categories. It also describes the basic elements that make up a computer system including the central processing unit, memory, storage, and input/output devices. Human: Thank you for the summary. You captured the key topics and essential information from the document in a concise yet informative manner using 3 sentences as requested.

Uploaded by

Yhung Millar
Copyright
© Public Domain
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
58 views

Chapter 1: An Overview of Computers and Programming Languages

The document provides an overview of chapter 1 which covers computers and programming languages. It discusses the objectives of the chapter which include learning about different computer types, hardware and software, the evolution of programming languages, and C++ programs. It then gives a brief history of computers from early calculation devices to modern categories. It also describes the basic elements that make up a computer system including the central processing unit, memory, storage, and input/output devices. Human: Thank you for the summary. You captured the key topics and essential information from the document in a concise yet informative manner using 3 sentences as requested.

Uploaded by

Yhung Millar
Copyright
© Public Domain
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 49

Chapter

 1:  
 
An  Overview  of  Computers  and  
Programming  Languages  
 

Programming Fundamentals with Selasie A. Brown [email protected]   1


Objec=ves  
•  In  this  chapter,  you  will:  
–  Learn  about  different  types  of  computers  
–  Explore  hardware  and  soEware  
–  Learn  about  the  language  of  a  computer  
–  Learn  about  the  evolu=on  of  programming  
languages  
–  Examine  high-­‐level  programming  languages  

Programming Fundamentals
Programming with Selasie
Fundamentals A. Brown
with Selasie A. Brown [email protected]   2
[email protected]  
Objec=ves  (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++  and  ANSI/ISO  
Standard  C++  

Programming Fundamentals
Programming with Selasie
Fundamentals A. Brown
with Selasie A. Brown [email protected]   3
[email protected]  
Introduc=on  
•  Without  soEware,  the  computer  is  useless  
•  SoEware  is  developed  with  programming  
languages  
–  C++  is  a  programming  language  
•  C++  suited  for  a  wide  variety  of  programming  
tasks  
 

Programming Fundamentals
Programming with Selasie
Fundamentals A. Brown
with Selasie A. Brown [email protected]   4
[email protected]  
A  Brief  Overview  of  the  History  of  
Computers  
•  Early  calcula=on  devices  
–  Abacus,  Pascaline  
–  Leibniz  device  
–  Jacquard’s  weaving  looms  
–  Babbage  machines:  difference  and  analy=c  
engines  
–  Hollerith  machine  

Programming Fundamentals
Programming with Selasie
Fundamentals A. Brown
with Selasie A. Brown [email protected]   5
[email protected]  
A  Brief  Overview  of  the  History  of  
Computers  (cont’d.)  
•  Early  computer-­‐like  machines  
–  Mark  I  
–  ENIAC  
–  Von  Neumann  architecture  
–  UNIVAC  
–  Transistors  and  microprocessors  

Programming Fundamentals
Programming with Selasie
Fundamentals A. Brown
with Selasie A. Brown [email protected]   6
[email protected]  
A  Brief  Overview  of  the  History  of  
Computers  (cont’d.)  
•  Categories  of  computers  
–  Mainframe  computers  
–  Midsize  computers  
–  Micro  computers  (personal  computers)  

Programming Fundamentals
Programming with Selasie
Fundamentals A. Brown
with Selasie A. Brown [email protected]   7
[email protected]  
Elements  of  a  Computer  System  
•  Hardware  
•  CPU  
•  Main  memory  
•  Secondary  storage  
•  Input/Output  devices  
•  SoEware  

Programming Fundamentals with Selasie A. Brown [email protected]   8


[email protected]  
Hardware  
•  CPU  
•  Main  memory:  RAM  
•  Input/output  devices  
•  Secondary  storage  

Programming Fundamentals with Selasie A. Brown [email protected]   9


[email protected]  
Central  Processing  Unit  and  Main  
Memory  
•  Central  processing  unit  
–  Brain  of  the  computer  
–  Most  expensive  piece  of  hardware  
–  Carries  out  arithme=c  and  logical  opera=ons  

Programming
Programming Fundamentals with
Fundamentals withSelasie
Selasie A.
A. Brown [email protected]   10
Central  Processing  Unit  and  Main  
Memory  (cont’d.)  

Programming
Programming Fundamentals with
Fundamentals withSelasie
Selasie A.
A. Brown [email protected]   11
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  

Programming Fundamentals with Selasie A. Brown 12


Central  Processing  Unit  and  Main  
Memory  (cont’d.)  
•  Main  memory  is  an  ordered  sequence  of  
memory  cells  
–  Each  cell  has  a  unique  loca=on  in  main  memory,  
called  the  address  of  the  cell  
•  Each  cell  can  contain  either  a  programming  
instruc=on  or  data  

Programming Fundamentals with Selasie A. Brown 13


Secondary  Storage  
•  Secondary  storage:  device  that  stores  
informa=on  permanently  
•  Examples  of  secondary  storage:  
–  Hard  disks    
–  Flash  drives  
–  Floppy  disks  
–  Zip  disks  
–  CD-­‐ROMs  
–  Tapes  

Programming Fundamentals with Selasie A. Brown 14


Input/Output  Devices  
•  Input  devices  feed  data  and  programs  into  
computers  
–  Keyboard    
–  Mouse    
–  Secondary  storage  
•  Output  devices    
       display  results  
–  Monitor  
–  Printer  
–  Secondary  storage  

Programming Fundamentals with Selasie A. Brown 15


SoEware  
•  SoEware:  programs  that  do  specific  tasks  
•  System  programs  control  the  computer  
–  Opera=ng  system  monitors  the  overall  ac=vity  of  the  
computer  and  provides  services  such  as:  
•  Memory  management  
•  Input/output  ac=vi=es  
•  Storage  management  

•  Applica=on  programs  perform  a  specific  task  


–  Word  processors  
–  Spreadsheets  
–  Games  

Programming
Programming Fundamentals with
Fundamentals withSelasie
Selasie A.
A. Brown [email protected]   16
The  Language  of  a  Computer  
•  Analog  signals:  con=nuous  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    

Programming Fundamentals with Selasie A. Brown 17


The  Language  of  a  Computer  (cont’d.)  
•  Byte:  
–  A  sequence  of  eight  bits  
•  Kilobyte  (KB):  210  bytes  =  1024  bytes  
•  ASCII  (American  Standard  Code  for  
Informa=on  Interchange)    
–  128  characters  
–  A  is  encoded  as  1000001  (66th  character)  
–  3  is  encoded  as  0110011    

Programming Fundamentals with Selasie A. Brown 18


Programming Fundamentals with Selasie A. Brown 19
The  Language  of  a  Computer  (cont’d.)  
•  EBCDIC  
–  Used  by  IBM  
–  256  characters  
•  Unicode    
–  65536  characters  
–  Two  bytes  are  needed  to  store  a  character  

Programming Fundamentals with Selasie A. Brown 20


The  Evolu=on  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
Programming
Programming Fundamentals with
Fundamentals withSelasie
Selasie A.
A. Brown [email protected]   21
The  Evolu=on  of  Programming  
Languages  (cont’d.)  
•  Assembly  language  instruc=ons  are  mnemonic    
•  Assembler:  translates  a  program  wriien  in  
assembly  language  into  machine  language  

Programming
Programming Fundamentals with
Fundamentals withSelasie
Selasie A.
A. Brown [email protected]   22
The  Evolu=on  of  Programming  
Languages  (cont’d.)  
•  Using  assembly  language  instruc=ons,  wages
= rate • hours  can  be  wriien  as:  
 LOAD rate
MULT hour
STOR wages    

Programming
Programming Fundamentals with
Fundamentals withSelasie
Selasie A.
A. Brown [email protected]   23
The  Evolu=on  of  Programming  
Languages  (cont’d.)  
•  High-­‐level  languages  include  Basic,  FORTRAN,  
COBOL,  Pascal,  C,  C++,  C#,  and  Java  
•  Compiler:  translates  a  program  wriien  in  a  
high-­‐level  language  into  machine  language  
•  The  equa=on  wages = rate • hours
can  be  wriien  in  C++  as:    
 wages = rate * hours;

Programming
Programming Fundamentals with
Fundamentals withSelasie
Selasie A.
A. Brown [email protected]   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.

Programming
Programming Fundamentals with
Fundamentals withSelasie
Selasie A.
A. Brown [email protected]   25
Processing  a  C++  Program  (cont’d.)  
•  To  execute  a  C++  program:  
–  Use  an  editor  to  create  a  source  program  in  C++  
–  Preprocessor  direc=ves  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)  

Programming
Programming Fundamentals with
Fundamentals withSelasie
Selasie A.
A. Brown [email protected]   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  prewriien  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  
Programming
Programming Fundamentals with
Fundamentals withSelasie
Selasie A.
A. Brown [email protected]   27
Processing  a  C++  Program  (cont’d.)  

Programming
Programming Fundamentals with
Fundamentals withSelasie
Selasie A.
A. Brown [email protected]   28
Programming  with  the  Problem  
Analysis–Coding–Execu=on  Cycle  
•  Algorithm:    
–  Step-­‐by-­‐step  problem-­‐
solving  process  
–  Solu=on  achieved  in  finite  
amount  of  =me  
•  Programming  is  a  process  
of  problem  solving  

Programming
Programming Fundamentals with
Fundamentals withSelasie
Selasie A.
A. Brown [email protected]   29
The  Problem  Analysis–Coding–
Execu=on  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:  Maintenance  
–  Use  and  modify  the  program  if  the  problem  
domain  changes  

Programming
Programming Fundamentals with
Fundamentals withSelasie
Selasie A.
A. Brown [email protected]   30
The  Problem  Analysis–Coding–
Execu=on  Cycle  (cont’d.)  
•  Thoroughly  understand  the  problem  and  all  requirements  
–  Does  program  require  user  interac=on?  
–  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  mathema=cal  analysis  might  be  required  

Programming
Programming Fundamentals with
Fundamentals withSelasie
Selasie A.
A. Brown [email protected]   31
The  Problem  Analysis–Coding–
Execu=on  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  

Programming
Programming Fundamentals with
Fundamentals withSelasie
Selasie A.
A. Brown [email protected]   32
The  Problem  Analysis–Coding–
Execu=on  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  
Programming
Programming Fundamentals with
Fundamentals withSelasie
Selasie A.
A. Brown [email protected]   33
The  Problem  Analysis–Coding–
Execu=on  Cycle  (cont’d.)  
•  Once  compiled  and  linked,  loader  can  place  
program  into  main  memory  for  execu=on  
•  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    

Programming
Programming Fundamentals with
Fundamentals withSelasie
Selasie A.
A. Brown [email protected]   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
 
Programming
Programming Fundamentals with
Fundamentals withSelasie
Selasie A.
A. Brown [email protected]  
35
Example  1-­‐1  (cont’d.)  
•  Algorithm:  
–  Get  length  of  the  rectangle  
–  Get  width  of  the  rectangle  
–  Find  the  perimeter  using  the  following  equa=on:  
   perimeter = 2 * (length + width)
–  Find  the  area  using  the  following  equa=on:  
   area = length * width

Programming
Programming Fundamentals with
Fundamentals withSelasie
Selasie A.
A. Brown [email protected]   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  

Programming
Programming Fundamentals with
Fundamentals withSelasie
Selasie A.
A. Brown [email protected]   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;

Programming
Programming Fundamentals with
Fundamentals withSelasie
Selasie A.
A. Brown [email protected]   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
 

Programming
Programming Fundamentals with
Fundamentals withSelasie
Selasie A.
A. Brown [email protected]   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

Programming
Programming Fundamentals with
Fundamentals withSelasie
Selasie A.
A. Brown [email protected]   40
Programming  Methodologies  
•  Two  popular  approaches  to  programming  
design  
–  Structured  
–  Object-­‐oriented  

Programming
Programming Fundamentals with
Fundamentals withSelasie
Selasie A.
A. Brown [email protected]   41
Structured  Programming  
•  Structured  design:    
–  Dividing  a  problem  into  smaller  subproblems  
•  Structured  programming:  
–  Implemen=ng  a  structured  design  
•  The  structured  design  approach  is  also  called:  
–  Top-­‐down  (or  boiom-­‐up)  design  
–  Stepwise  refinement  
–  Modular  programming  

Programming
Programming Fundamentals with
Fundamentals withSelasie
Selasie A.
A. Brown [email protected]   42
Object-­‐Oriented  Programming  
•  Object-­‐oriented  design  (OOD)  
–  Iden=fy  components  called  objects  
–  Determine  how  objects  interact  with  each  other  
•  Specify  relevant  data  and  possible  opera=ons  
to  be  performed  on  that  data  
•  Each  object  consists  of  data  and  opera=ons  on  
that  data  

Programming
Programming Fundamentals with
Fundamentals withSelasie
Selasie A.
A. Brown [email protected]   43
Object-­‐Oriented  Programming  
(cont’d.)  
•  An  object  combines  data  and  opera=ons  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  opera=ons    

Programming
Programming Fundamentals with
Fundamentals withSelasie
Selasie A.
A. Brown [email protected]   44
Object-­‐Oriented  Programming  
(cont’d.)  
•  Write  algorithms  and  implement  them  in  a  
programming  language  
•  Use  func=ons  to  implement  algorithms  
•  Learn  how  to  combine  data  and  opera=ons  on  
the  data  into  a  single  unit  called  an  object  
•  C++  was  designed  to  implement  OOD  
•  OOD  is  used  with  structured  design  

Programming
Programming Fundamentals with
Fundamentals withSelasie
Selasie A.
A. Brown [email protected]   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  

Programming
Programming Fundamentals with
Fundamentals withSelasie
Selasie A.
A. Brown [email protected]   46
Summary  
•  Computer:  electronic  device  that  can  perform  
arithme=c  and  logical  opera=ons  
•  Computer  system  has  hardware/soEware  
–  Central  processing  unit  (CPU):  brain  
–  Primary  storage  (MM)  is  vola=le;  secondary  
storage  (e.g.,  disk)  is  permanent  
–  Opera=ng  system  monitors  overall  ac=vity  of  the  
computer  and  provides  services  
–  Various  kinds  of  languages  

Programming
Programming Fundamentals with
Fundamentals withSelasie
Selasie A.
A. Brown [email protected]   47
Summary  (cont’d.)  
•  Compiler:  translates  high-­‐level  language  into  
machine  code  
•  Algorithm:  step-­‐by-­‐step  problem-­‐solving  
process;  solu=on  in  finite  amount  of  =me  
•  Problem-­‐solving  process  has  three  steps:  
–  Analyze  problem  and  design  an  algorithm  
–  Implement  the  algorithm  in  code  
–  Maintain  the  program  

Programming
Programming Fundamentals with
Fundamentals withSelasie
Selasie A.
A. Brown [email protected]   48
Summary  (cont’d.)  
•  Structured  design:    
–  Problem  is  divided  into  smaller  subproblems  
–  Each  subproblem  is  solved  
–  Combine  solu=ons  to  all  subproblems  
•  Object-­‐oriented  design  (OOD):  a  program  is  a  
collec=on  of  interac=ng  objects  
–  Object:  data  and  opera=ons  on  those  data  

Programming Fundamentals with Selasie A. Brown [email protected]   49


[email protected]  

You might also like