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

Ch01 Introduction to Programming

The document provides an introduction to computer programming, focusing on the C language and its historical context, hardware components, and software definitions. It outlines the evolution of programming languages from machine languages to high-level languages, detailing the characteristics and structure of the C language. Additionally, it emphasizes the importance of writing quality programs through readability, modularity, efficiency, robustness, and usability.
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

Ch01 Introduction to Programming

The document provides an introduction to computer programming, focusing on the C language and its historical context, hardware components, and software definitions. It outlines the evolution of programming languages from machine languages to high-level languages, detailing the characteristics and structure of the C language. Additionally, it emphasizes the importance of writing quality programs through readability, modularity, efficiency, robustness, and usability.
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 32

Introduction

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

• 1950s – Symbolic/Assembly languages


– use of a series of mnemonics to represent commonly used instructions

• 1960s – High-Level Languages


– E.g. COBOL, FORTRAN, C, Java

• 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

• Assembly language: uses the


substitution of word-like symbols for the
opcodes, and decimal numbers and labels
for memory addresses
LOAD first
ADD second
MUL factor
STORE answer

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

• PL/I, BASIC, Pascal, Prolog, C, Ada


• C++, Visual Basic
• HTML, Java

20
Writing, Editing, Compiling
and Linking Programs

• Step1 – Write and edit programs

• Step2 – Compile programs


– Translate source file into machine language
– The output produced by the compiler is called an object
program (machine language version of the source code)

• Step3 – Linking Programs


- combines additional machine language code with the
object program to create a final executable program

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

You might also like