0% found this document useful (0 votes)
7 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
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 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
We take content rights seriously. If you suspect this is your content, claim it here.
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