SlideShare a Scribd company logo
 2007 Pearson Education, Inc. All rights reserved.
1
1
Introduction to Computers, the Internet
and the Web
By
Mr. Joseph Wanambwa
Tel: +256703600655
Email: josephwanambwa@gmail.com
PROGRAMMING METHODOLOGIES:
 2007 Pearson Education, Inc. All rights reserved.
2
OBJECTIVES
In this chapter you will learn:
 Basic computer concepts.
 The different types of programming languages.
 The history of the C programming language.
 The purpose of the C Standard Library.
 The elements of a typical C program development
environment.
 Why it is appropriate to learn C in a first programming
course.
 How C provides a foundation for further study of
programming languages in general and of C++, Java
and C# in particular.
 The history of the Internet and the World Wide Web.
 2007 Pearson Education, Inc. All rights reserved.
3
1.1 Introduction
1.2 What Is a Computer?
1.3 Computer Organization
1.4 Early Operating Systems
1.5 Personal, Distributed and Client/Server Computing
1.6 Machine Languages, Assembly Languages and
High-Level Languages
1.7 Fortran, COBOL, Pascal and Ada
1.8 History of C
1.9 C Standard Library
 2007 Pearson Education, Inc. All rights reserved.
4
1.10 C++
1.11 Java
1.12 BASIC, Visual Basic, Visual C++, Visual C# and .NET
1.13 Key Software Trend: Object Technology
1.14 Typical C Program Development Environment
1.15 Hardware Trends
1.16 History of the Internet
1.17 History of the World Wide Web
1.18 Notes About C
1.19 Web Resources
 2007 Pearson Education, Inc. All rights reserved.
5
1.1 Introduction
 We will learn
– The C programming language
– Structured programming and proper programming
techniques
 This course is appropriate for
– Technically oriented people with little or no programming
experience
– Experienced programmers who want a deep and rigorous
treatment of the language
 2007 Pearson Education, Inc. All rights reserved.
6
1.2 What is a Computer?
 Computer
– Device capable of performing computations and making
logical decisions
– Computers process data under the control of sets of
instructions called computer programs
 Hardware
– Various devices comprising a computer
– Keyboard, screen, mouse, disks, memory, CD-ROM, and
processing units
 Software
– Programs that run on a computer
 2007 Pearson Education, Inc. All rights reserved.
7
1.3 Computer Organization
 Six logical units in every computer:
1. Input unit
- Obtains information from input devices (keyboard, mouse)
2. Output unit
- Outputs information (to screen, to printer, to control other devices)
3. Memory unit
- Rapid access, low capacity, stores input information
4. Arithmetic and logic unit (ALU)
- Performs arithmetic calculations and logic decisions
5. Central processing unit (CPU)
- Supervises and coordinates the other sections of the computer
6. Secondary storage unit
- Cheap, long-term, high-capacity storage
- Stores inactive programs
 2007 Pearson Education, Inc. All rights reserved.
8
1.4 Early Operating Systems
 Batch processing
– Do only one job or task at a time
 Operating systems
– Manage transitions between jobs
– Increased throughput
- Amount of work computers process
 Multitasking
– Computer resources are shared by many jobs or tasks
 Timesharing
– Computer runs a small portion of one user’s job then moves on
to service the next user
 2007 Pearson Education, Inc. All rights reserved.
9
1.5 Personal Computing, Distributed
Computing, and Client/Server Computing
 Personal computers
– Economical enough for individual
 Distributed computing
– Computing distributed over networks
 Client/server computing
– Sharing of information across computer networks between
file servers and clients (personal computers)
 2007 Pearson Education, Inc. All rights reserved.
10
1.6 Machine Languages, Assembly
Languages, and High-level Languages
Three types of programming languages
1. Machine languages
- Strings of numbers giving machine specific instructions
- Example:
+1300042774
+1400593419
+1200274027
2. Assembly languages
- English-like abbreviations representing elementary computer
operations (translated via assemblers)
- Example:
LOAD BASEPAY
ADD OVERPAY
STORE GROSSPAY
 2007 Pearson Education, Inc. All rights reserved.
11
1.6 Machine Languages, Assembly
Languages, and High-level Languages
Three types of programming languages (continued)
3. High-level languages
- Codes similar to everyday English
- Use mathematical notations (translated via compilers)
- Example:
grossPay = basePay + overTimePay
 2007 Pearson Education, Inc. All rights reserved.
12
1.7 Fortran, COBOL, Pascal and Ada
 Fortran
– developed by IBM Corporation in the 1950s
– used for scientific and engineering applications that
require complex mathematical computations
 COBOL
– developed in 1959 by computer manufacturers, the
government and industrial computer users
– used for commercial applications that require precise and
efficient manipulation of large amounts of data
 2007 Pearson Education, Inc. All rights reserved.
13
1.7 Fortran, COBOL, Pascal and Ada
 Pascal
– Developed by Professor Niklaus Wirth in 1971
– Designed for teaching structured programming
 Ada
– Developed under the sponsorship of the U.S. Department
of Defense (DOD) during the 1970s and early 1980s
– Able to perform multitasking
 2007 Pearson Education, Inc. All rights reserved.
14
1.8 History of C
 C
– Evolved by Ritchie from two previous programming languages,
BCPL and B. BCPL ("Basic Combined Programming
Language") is a procedural, imperative, and structured
computer programming language. B was derived from BCPL.
– Used to develop UNIX
– Used to write modern operating systems
– Hardware independent (portable)
– By late 1970's C had evolved to "Traditional C"
 Standardization
– Many slight variations of C existed, and were incompatible
– Committee formed to create a "unambiguous, machine-
independent" definition
– Standard created in 1989, updated in 1999
 2007 Pearson Education, Inc. All rights reserved.
15
Portability Tip 1.1
Because C is a hardware-independent, widely
available language, applications written in C
can run with little or no modifications on a wide
range of different computer systems.
 2007 Pearson Education, Inc. All rights reserved.
16
1.9 C Standard Library
 C programs consist of pieces/modules called
functions
– A programmer can create his own functions
- Advantage: the programmer knows exactly how it works
- Disadvantage: time consuming
– Programmers will often use the C library functions
- Use these as building blocks
– Avoid re-inventing the wheel
- If a pre-made function exists, generally best to use it rather
than write your own
- Library functions carefully written, efficient, and portable
 2007 Pearson Education, Inc. All rights reserved.
17
Performance Tip 1.1
Using Standard C library functions instead
of writing your own comparable versions can
improve program performance, because these
functions are carefully written to perform
efficiently.
 2007 Pearson Education, Inc. All rights reserved.
18
Portability Tip 1.2
Using Standard C library functions instead
of writing your own comparable versions can
improve program portability, because these
functions are used in virtually all Standard C
implementations.
 2007 Pearson Education, Inc. All rights reserved.
19
1.10 C++
 C++
– Superset of C developed by Bjarne Stroustrup at Bell Labs
– "Spruces up" C, and provides object-oriented capabilities
– Dominant language in industry and academia
 Learning C++
– Because C++ includes C, some feel it is best to master C,
then learn C++
 2007 Pearson Education, Inc. All rights reserved.
20
1.11 Java
 Java is used to
– Create Web pages with dynamic and interactive content
– Develop large-scale enterprise applications
– Enhance the functionality of Web servers
– Provide applications for consumer devices (such as cell
phones, pagers and personal digital assistants)
 Java How to Program
– Closely followed the development of Java by Sun
– Teaches first-year programming students the essentials of
graphics, images, animation, audio, video, database,
networking, multithreading and collaborative computing
 2007 Pearson Education, Inc. All rights reserved.
21
1.12 BASIC, Visual Basic, Visual C++,
Visual C# and .NET
 BASIC
– Developed in the mid-1960s by Professors John Kemeny
and Thomas Kurtz of Dartmouth College as a language for
writing simple programs
 Visual Basic
– Introduced by Microsoft in 1991 to simplify the process of
making Windows applications
 Visual Basic, Visual C++, and Visual C#
– Designed for Microsoft’s .NET programming platform
 2007 Pearson Education, Inc. All rights reserved.
22
1.13 Key Software Trend: Object
Technology
 Objects
– Reusable software components that model items in the real
world
– Meaningful software units
- Date objects, time objects, paycheck objects, invoice objects,
audio objects, video objects, file objects, record objects, etc.
- Any noun can be represented as an object
– Very reusable
– More understandable, better organized, and easier to
maintain than procedural programming
– Favor modularity
 2007 Pearson Education, Inc. All rights reserved.
23
1.14 Typical C Program Development
Environment
Phases of C++ Programs:
–Editor
–Preprocess
–Compile: creates the object
code
–Link: links object code with
the libraries and then creates
an executable
–Load: puts program in
memory
–Execute: CPU takes each
instruction and executes it
Fig. 1.1 | Typical C development environment.
 2007 Pearson Education, Inc. All rights reserved.
24
Common Programming Error 1.1
Errors like division-by-zero occur as a program
runs, so these errors are called runtime errors or
execution-time errors. Divide-by-zero is generally a
fatal error, i.e., an error that causes the program to
terminate immediately without successfully
performing its job. Nonfatal errors allow programs
to run to completion, often producing incorrect
results. [Note: On some systems, divide-by-zero is not
a fatal error. Please see your system documentation.]
 2007 Pearson Education, Inc. All rights reserved.
25
1.15 Hardware Trends
 Every year or two the following approximately
double:
– Amount of memory in which to execute programs
– Amount of secondary storage (such as disk storage)
- Used to hold programs and data over the longer term
– Processor speeds
- The speeds at which computers execute their programs
 2007 Pearson Education, Inc. All rights reserved.
26
1.16 History of the Internet
 The Internet enables
– Quick and easy communication via e-mail
– International networking of computers
 Packet switching
– The transfer of digital data via small packets
– Allows multiple users to send and receive data simultaneously
 No centralized control
– If one part of the Internet fails, other parts can still operate
 TCP/IP
 Bandwidth
– Information carrying capacity of communications lines
 2007 Pearson Education, Inc. All rights reserved.
27
1.17 History of the World Wide Web
 World Wide Web
– Locate and view multimedia-based documents on almost
any subject
– Makes information instantly and conveniently accessible
worldwide
– Possible for individuals and small businesses to get
worldwide exposure
– Changing the way business is done
 2007 Pearson Education, Inc. All rights reserved.
28
1.18 General Notes About C
 Program clarity
– Programs that are complex are difficult to read,
understand, and modify
 C is a portable language
– Programs can run on many different computers
– However, portability is an elusive goal
– are not covered
 Reference
- C by Example By Greg Perry
 2007 Pearson Education, Inc. All rights reserved.
29
Good Programming Practice 1.1
Write your C programs in a simple and
straightforward manner. This is sometimes
referred to as KIS (“keep it simple”). Do not
“stretch” the language by trying bizarre usages.
 2007 Pearson Education, Inc. All rights reserved.
30
Portability Tip 1.3
Although it is possible to write portable
programs, there are many problems
between different C compilers and different
computers that make portability difficult to
achieve. Simply writing programs in C does
not guarantee portability. The progammer
will often need to deal directly with complex
computer variations.
 2007 Pearson Education, Inc. All rights reserved.
31
Read the manuals for the version of C you
are using. Reference these manuals
frequently to be sure you are aware of the
rich collection of C features and that you are
using these features correctly.
Software Engineering Observation 1.1
 2007 Pearson Education, Inc. All rights reserved.
32
Software Engineering Observation 1.2
Your computer and compiler are good
teachers. If you are not sure how a feature
of C works, write a sample program with
that feature, compile and run the program
and see what happens.

More Related Content

PDF
Chap 1 Introduction to Computers, the Internet and the WebFile.pdf
PPT
CHTP5e_01.ppt bbbbbbbbb bbbb
PPT
C programming Introduction
PPT
Cpp htp5e 01
PPT
Chtp4 01
PPT
PPT
Introduction to Computers and C++ Programming
PPT
Introduction to C Language chapter 01.ppt
Chap 1 Introduction to Computers, the Internet and the WebFile.pdf
CHTP5e_01.ppt bbbbbbbbb bbbb
C programming Introduction
Cpp htp5e 01
Chtp4 01
Introduction to Computers and C++ Programming
Introduction to C Language chapter 01.ppt

Similar to Lecture 1.ppt (20)

PPT
iw3htp4_01-FINAL.ppt
PPT
chapter01.ppt
PPT
chapter01.ppt
PPT
chapter01 (1).ppt
PPT
1. intro to comp & c++ programming
PPT
01 intro to vb-net
PPT
Csphtp1 01
PPT
Introduction to Computers, the Internet and the Web
PDF
Solution Manual for C++ How to Program: Late Objects Version, 7/E 7th Edition...
PPT
PDF
Solution Manual for C++ How to Program: Late Objects Version, 7/E 7th Edition...
PDF
Solution Manual for C++ How to Program: Late Objects Version, 7/E 7th Edition...
PPT
Chapter 04 C++ Programmings Fundamental.
PPT
cpphtp4_PPT_01.ppt
PPT
computer programming C++
PDF
Solution Manual for C++ How to Program: Late Objects Version, 7/E 7th Edition...
PPT
Book ppt
PPTX
lecture Slides - Week 1.programming fundamentals
PPT
pengenalan mengenai computer dan internet
PDF
Introduction to Programming Fundamentals
iw3htp4_01-FINAL.ppt
chapter01.ppt
chapter01.ppt
chapter01 (1).ppt
1. intro to comp & c++ programming
01 intro to vb-net
Csphtp1 01
Introduction to Computers, the Internet and the Web
Solution Manual for C++ How to Program: Late Objects Version, 7/E 7th Edition...
Solution Manual for C++ How to Program: Late Objects Version, 7/E 7th Edition...
Solution Manual for C++ How to Program: Late Objects Version, 7/E 7th Edition...
Chapter 04 C++ Programmings Fundamental.
cpphtp4_PPT_01.ppt
computer programming C++
Solution Manual for C++ How to Program: Late Objects Version, 7/E 7th Edition...
Book ppt
lecture Slides - Week 1.programming fundamentals
pengenalan mengenai computer dan internet
Introduction to Programming Fundamentals
Ad

Recently uploaded (20)

PPTX
Odoo POS Development Services by CandidRoot Solutions
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
Digital Systems & Binary Numbers (comprehensive )
PDF
System and Network Administration Chapter 2
PPTX
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
Understanding Forklifts - TECH EHS Solution
PPTX
Computer Software and OS of computer science of grade 11.pptx
PPTX
Introduction to Artificial Intelligence
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
Nekopoi APK 2025 free lastest update
PPTX
Reimagine Home Health with the Power of Agentic AI​
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
iTop VPN Free 5.6.0.5262 Crack latest version 2025
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Odoo POS Development Services by CandidRoot Solutions
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
wealthsignaloriginal-com-DS-text-... (1).pdf
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
CHAPTER 2 - PM Management and IT Context
Digital Systems & Binary Numbers (comprehensive )
System and Network Administration Chapter 2
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Understanding Forklifts - TECH EHS Solution
Computer Software and OS of computer science of grade 11.pptx
Introduction to Artificial Intelligence
Navsoft: AI-Powered Business Solutions & Custom Software Development
Nekopoi APK 2025 free lastest update
Reimagine Home Health with the Power of Agentic AI​
Odoo Companies in India – Driving Business Transformation.pdf
Design an Analysis of Algorithms II-SECS-1021-03
iTop VPN Free 5.6.0.5262 Crack latest version 2025
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Ad

Lecture 1.ppt

  • 1.  2007 Pearson Education, Inc. All rights reserved. 1 1 Introduction to Computers, the Internet and the Web By Mr. Joseph Wanambwa Tel: +256703600655 Email: josephwanambwa@gmail.com PROGRAMMING METHODOLOGIES:
  • 2.  2007 Pearson Education, Inc. All rights reserved. 2 OBJECTIVES In this chapter you will learn:  Basic computer concepts.  The different types of programming languages.  The history of the C programming language.  The purpose of the C Standard Library.  The elements of a typical C program development environment.  Why it is appropriate to learn C in a first programming course.  How C provides a foundation for further study of programming languages in general and of C++, Java and C# in particular.  The history of the Internet and the World Wide Web.
  • 3.  2007 Pearson Education, Inc. All rights reserved. 3 1.1 Introduction 1.2 What Is a Computer? 1.3 Computer Organization 1.4 Early Operating Systems 1.5 Personal, Distributed and Client/Server Computing 1.6 Machine Languages, Assembly Languages and High-Level Languages 1.7 Fortran, COBOL, Pascal and Ada 1.8 History of C 1.9 C Standard Library
  • 4.  2007 Pearson Education, Inc. All rights reserved. 4 1.10 C++ 1.11 Java 1.12 BASIC, Visual Basic, Visual C++, Visual C# and .NET 1.13 Key Software Trend: Object Technology 1.14 Typical C Program Development Environment 1.15 Hardware Trends 1.16 History of the Internet 1.17 History of the World Wide Web 1.18 Notes About C 1.19 Web Resources
  • 5.  2007 Pearson Education, Inc. All rights reserved. 5 1.1 Introduction  We will learn – The C programming language – Structured programming and proper programming techniques  This course is appropriate for – Technically oriented people with little or no programming experience – Experienced programmers who want a deep and rigorous treatment of the language
  • 6.  2007 Pearson Education, Inc. All rights reserved. 6 1.2 What is a Computer?  Computer – Device capable of performing computations and making logical decisions – Computers process data under the control of sets of instructions called computer programs  Hardware – Various devices comprising a computer – Keyboard, screen, mouse, disks, memory, CD-ROM, and processing units  Software – Programs that run on a computer
  • 7.  2007 Pearson Education, Inc. All rights reserved. 7 1.3 Computer Organization  Six logical units in every computer: 1. Input unit - Obtains information from input devices (keyboard, mouse) 2. Output unit - Outputs information (to screen, to printer, to control other devices) 3. Memory unit - Rapid access, low capacity, stores input information 4. Arithmetic and logic unit (ALU) - Performs arithmetic calculations and logic decisions 5. Central processing unit (CPU) - Supervises and coordinates the other sections of the computer 6. Secondary storage unit - Cheap, long-term, high-capacity storage - Stores inactive programs
  • 8.  2007 Pearson Education, Inc. All rights reserved. 8 1.4 Early Operating Systems  Batch processing – Do only one job or task at a time  Operating systems – Manage transitions between jobs – Increased throughput - Amount of work computers process  Multitasking – Computer resources are shared by many jobs or tasks  Timesharing – Computer runs a small portion of one user’s job then moves on to service the next user
  • 9.  2007 Pearson Education, Inc. All rights reserved. 9 1.5 Personal Computing, Distributed Computing, and Client/Server Computing  Personal computers – Economical enough for individual  Distributed computing – Computing distributed over networks  Client/server computing – Sharing of information across computer networks between file servers and clients (personal computers)
  • 10.  2007 Pearson Education, Inc. All rights reserved. 10 1.6 Machine Languages, Assembly Languages, and High-level Languages Three types of programming languages 1. Machine languages - Strings of numbers giving machine specific instructions - Example: +1300042774 +1400593419 +1200274027 2. Assembly languages - English-like abbreviations representing elementary computer operations (translated via assemblers) - Example: LOAD BASEPAY ADD OVERPAY STORE GROSSPAY
  • 11.  2007 Pearson Education, Inc. All rights reserved. 11 1.6 Machine Languages, Assembly Languages, and High-level Languages Three types of programming languages (continued) 3. High-level languages - Codes similar to everyday English - Use mathematical notations (translated via compilers) - Example: grossPay = basePay + overTimePay
  • 12.  2007 Pearson Education, Inc. All rights reserved. 12 1.7 Fortran, COBOL, Pascal and Ada  Fortran – developed by IBM Corporation in the 1950s – used for scientific and engineering applications that require complex mathematical computations  COBOL – developed in 1959 by computer manufacturers, the government and industrial computer users – used for commercial applications that require precise and efficient manipulation of large amounts of data
  • 13.  2007 Pearson Education, Inc. All rights reserved. 13 1.7 Fortran, COBOL, Pascal and Ada  Pascal – Developed by Professor Niklaus Wirth in 1971 – Designed for teaching structured programming  Ada – Developed under the sponsorship of the U.S. Department of Defense (DOD) during the 1970s and early 1980s – Able to perform multitasking
  • 14.  2007 Pearson Education, Inc. All rights reserved. 14 1.8 History of C  C – Evolved by Ritchie from two previous programming languages, BCPL and B. BCPL ("Basic Combined Programming Language") is a procedural, imperative, and structured computer programming language. B was derived from BCPL. – Used to develop UNIX – Used to write modern operating systems – Hardware independent (portable) – By late 1970's C had evolved to "Traditional C"  Standardization – Many slight variations of C existed, and were incompatible – Committee formed to create a "unambiguous, machine- independent" definition – Standard created in 1989, updated in 1999
  • 15.  2007 Pearson Education, Inc. All rights reserved. 15 Portability Tip 1.1 Because C is a hardware-independent, widely available language, applications written in C can run with little or no modifications on a wide range of different computer systems.
  • 16.  2007 Pearson Education, Inc. All rights reserved. 16 1.9 C Standard Library  C programs consist of pieces/modules called functions – A programmer can create his own functions - Advantage: the programmer knows exactly how it works - Disadvantage: time consuming – Programmers will often use the C library functions - Use these as building blocks – Avoid re-inventing the wheel - If a pre-made function exists, generally best to use it rather than write your own - Library functions carefully written, efficient, and portable
  • 17.  2007 Pearson Education, Inc. All rights reserved. 17 Performance Tip 1.1 Using Standard C library functions instead of writing your own comparable versions can improve program performance, because these functions are carefully written to perform efficiently.
  • 18.  2007 Pearson Education, Inc. All rights reserved. 18 Portability Tip 1.2 Using Standard C library functions instead of writing your own comparable versions can improve program portability, because these functions are used in virtually all Standard C implementations.
  • 19.  2007 Pearson Education, Inc. All rights reserved. 19 1.10 C++  C++ – Superset of C developed by Bjarne Stroustrup at Bell Labs – "Spruces up" C, and provides object-oriented capabilities – Dominant language in industry and academia  Learning C++ – Because C++ includes C, some feel it is best to master C, then learn C++
  • 20.  2007 Pearson Education, Inc. All rights reserved. 20 1.11 Java  Java is used to – Create Web pages with dynamic and interactive content – Develop large-scale enterprise applications – Enhance the functionality of Web servers – Provide applications for consumer devices (such as cell phones, pagers and personal digital assistants)  Java How to Program – Closely followed the development of Java by Sun – Teaches first-year programming students the essentials of graphics, images, animation, audio, video, database, networking, multithreading and collaborative computing
  • 21.  2007 Pearson Education, Inc. All rights reserved. 21 1.12 BASIC, Visual Basic, Visual C++, Visual C# and .NET  BASIC – Developed in the mid-1960s by Professors John Kemeny and Thomas Kurtz of Dartmouth College as a language for writing simple programs  Visual Basic – Introduced by Microsoft in 1991 to simplify the process of making Windows applications  Visual Basic, Visual C++, and Visual C# – Designed for Microsoft’s .NET programming platform
  • 22.  2007 Pearson Education, Inc. All rights reserved. 22 1.13 Key Software Trend: Object Technology  Objects – Reusable software components that model items in the real world – Meaningful software units - Date objects, time objects, paycheck objects, invoice objects, audio objects, video objects, file objects, record objects, etc. - Any noun can be represented as an object – Very reusable – More understandable, better organized, and easier to maintain than procedural programming – Favor modularity
  • 23.  2007 Pearson Education, Inc. All rights reserved. 23 1.14 Typical C Program Development Environment Phases of C++ Programs: –Editor –Preprocess –Compile: creates the object code –Link: links object code with the libraries and then creates an executable –Load: puts program in memory –Execute: CPU takes each instruction and executes it Fig. 1.1 | Typical C development environment.
  • 24.  2007 Pearson Education, Inc. All rights reserved. 24 Common Programming Error 1.1 Errors like division-by-zero occur as a program runs, so these errors are called runtime errors or execution-time errors. Divide-by-zero is generally a fatal error, i.e., an error that causes the program to terminate immediately without successfully performing its job. Nonfatal errors allow programs to run to completion, often producing incorrect results. [Note: On some systems, divide-by-zero is not a fatal error. Please see your system documentation.]
  • 25.  2007 Pearson Education, Inc. All rights reserved. 25 1.15 Hardware Trends  Every year or two the following approximately double: – Amount of memory in which to execute programs – Amount of secondary storage (such as disk storage) - Used to hold programs and data over the longer term – Processor speeds - The speeds at which computers execute their programs
  • 26.  2007 Pearson Education, Inc. All rights reserved. 26 1.16 History of the Internet  The Internet enables – Quick and easy communication via e-mail – International networking of computers  Packet switching – The transfer of digital data via small packets – Allows multiple users to send and receive data simultaneously  No centralized control – If one part of the Internet fails, other parts can still operate  TCP/IP  Bandwidth – Information carrying capacity of communications lines
  • 27.  2007 Pearson Education, Inc. All rights reserved. 27 1.17 History of the World Wide Web  World Wide Web – Locate and view multimedia-based documents on almost any subject – Makes information instantly and conveniently accessible worldwide – Possible for individuals and small businesses to get worldwide exposure – Changing the way business is done
  • 28.  2007 Pearson Education, Inc. All rights reserved. 28 1.18 General Notes About C  Program clarity – Programs that are complex are difficult to read, understand, and modify  C is a portable language – Programs can run on many different computers – However, portability is an elusive goal – are not covered  Reference - C by Example By Greg Perry
  • 29.  2007 Pearson Education, Inc. All rights reserved. 29 Good Programming Practice 1.1 Write your C programs in a simple and straightforward manner. This is sometimes referred to as KIS (“keep it simple”). Do not “stretch” the language by trying bizarre usages.
  • 30.  2007 Pearson Education, Inc. All rights reserved. 30 Portability Tip 1.3 Although it is possible to write portable programs, there are many problems between different C compilers and different computers that make portability difficult to achieve. Simply writing programs in C does not guarantee portability. The progammer will often need to deal directly with complex computer variations.
  • 31.  2007 Pearson Education, Inc. All rights reserved. 31 Read the manuals for the version of C you are using. Reference these manuals frequently to be sure you are aware of the rich collection of C features and that you are using these features correctly. Software Engineering Observation 1.1
  • 32.  2007 Pearson Education, Inc. All rights reserved. 32 Software Engineering Observation 1.2 Your computer and compiler are good teachers. If you are not sure how a feature of C works, write a sample program with that feature, compile and run the program and see what happens.