Ch01 Introduction to Programming
Ch01 Introduction to Programming
to Computer Programming
Featuring: C language
1
What is computer?
• Computer is a device which can process
data, perform computation and logical
operations and gives output
• A computer performs the above using
programs and without human intervention
2
History and Hardware
• Babbage’s analytical engine (1822)
• Atanasoff-Berry Computer (ABC, 1937)
– Human operator manipulated external wiring
• Electrical Numerical Integrator and Computer
(ENIAC, 1946)
– Vacuum tubes
• Mark I (1944)
– Mechanical relay switches
• Electronic Delayed Storage Automatic
Computer (EDSAC, 1949)
– Incorporated a form of memory
3
History and Hardware
(continued)
4
Computer Hardware &
Software
• Hardware – the physical devices of a
computer
• Software – the programs or “intelligence”
of the computer
5
Software
• Software – a group of programs
• Program – a specific set of instructions to
the computer to perform a task
• Programmer – a person who writes a
program
6
Computer Organization
• Input Unit
• Output Unit
• Memory Unit
• Arithmetic Logic Unit (ALU)
• Central Processing Unit (CPU)
• Secondary Storage unit
7
Components
8
Memory and data
• Memory unit: Area to store data and
instructions
• Data stored as On or Off pulses
9
Data representation
• Represented by a combination of eight
binary digits (1s and 0s)
• ASCII – American Standard Code for
Information Interchange
10
ASCII representation
• From 00000000 to 11111111; each
assigned to a unique character.
• An integer
– is stored in memory in its binary equivalence
– read as character using its ASCII character
11
ASCII Table
12
PROGRAMMING
LANGUAGES
13
Programming Languages
• Computer program: data and instructions
used to operate a computer and produce a
specific result
• Programming: writing instructions in a
language that the computer can respond to and
that other programmers can understand
• Programming language: set of instructions
that can be used to construct a program
• Source programs/Source code: Programs
written in a computer language
14
Three General Types of
Programming Languages:
• 1940s – Machine Languages
– A natural language of a computer, machine dependent
– the only language that can be understood and processed directly by
computer
• Note:
Machine and assembly languages are low-level languages
because they both use instructions that are directly tied to one type
of computer
15
Machine Language
• Executable program: program that can
operate a computer
• Executable programs are written with binary
numbers, which is a computer’s internal
language (machine language)
– An example of a simple machine language program
containing two instructions is:
11000000000000000001000000000010
11110000000000000010000000000011
• Opcode is short for operation code; tells the
computer the operation to be performed
16
Assembly Language
17
Assembly Language
(continued)
18
Earlier high-level
programming languages
• COBOL (Common Business Oriented
Language)
– used primarily for business processing
• FORTRAN (Formula Translation)
– primarily perform mathematical calculations
19
Later High-Level Programming
Languages
20
Writing, Editing, Compiling
and Linking Programs
21
Writing, Editing, Compiling
and Linking Programs
22
Procedural and Object-
Oriented Languages
• Procedural language: instructions are used
to create self-contained units, called
procedures
– Procedure: accepts data as input and
transforms it in some manner to produce a
specific result as output
• Also called function or method
• Procedures conforming to structure
guidelines are known as structured
procedures 23
Procedural and Object-
Oriented Languages
(continued)
• Structured language: high-level
procedural language (e.g., C) that enforces
structured procedures
• Object-oriented languages: languages
with object orientation such as C++, Java,
Visual Basic, and C#
24
Procedural and Object-
Oriented Languages
(continued)
25
Structured programming
• A technique for organizing and coding
computer programs in which a hierarchy
of modules is used
• A disciplined approach in writing
programs so that it is easier to test,
debug and modify.
• Example:
– Pascal, Ada, C
26
History of C language
• Developed in the 1970s at AT&T Bell Laboratories by K.
Thompson, D. Ritchie, and B. Kernighan
• Evolved from a language called B in the seventies at AT&T Bell
labs
• First implemented on the UNIX operating system
• Written to help non-scientists develop computer programs
• High-level structured language
– Can also access the internal hardware of a computer
• C permits a programmer to “see into” a computer’s memory and
directly alter data stored in it
• Standard maintained by the American National Standards Institute
(ANSI)
• In the 1980s, Bjarne Stroustrup (working at AT&T) developed C++
– C with object-oriented capabilities
27
The C language
• General purpose programming language
• Modern control flow and data structure
• Uses economy of expression
• Convenient and effective
• Useful for writing compilers and operating
systems
28
Characteristic of C language
• Features structured programming
– Top-down: System overview -> Subsystem refined
in detail
– Advantages of top-down programming:
• Separating the low level work from the higher level
objects leads to a modular design.
• Modular design means development can be self
contained.
• Having "skeleton" code illustrates clearly how low
level modules integrate.
• Code is easier to follow, since it is written methodically
and with purpose.
29
The Making of A Quality Program
1. Readability
• understandable, with comments and
documentations, using conventions like
name of variables and indentations
2. Modularity
• problems divided into sub-problems and
assembled in a logical order
3. Efficiency
• runs faster and smaller size of program
30
The Making of A Quality Program
(cont.)
4. Robustness
• Be able to handle all situations in a graceful
manner
• Not to crash in unexpected situations or go
to infinite loops
5. Usability
• correct, meets the end-user requirement
31
Q&A
32