You are on page 1of 54

CSC099

Foundation
Computing II

Chapter 1

Introduction to Computer
and Programming
Teh FaradillaAbdul Rahman
Language PUSAT ASASI
UiTM Dengkil
2 October 21, 2019

Learning Outcomes :
 Overview of computer and its application
 Computer components
 Evolution of Programming Languages
 To describe the function of programming
languages.
 To explore existing programming languages.
 Introduction to C Programming
 The Programming Process using C
programming
3

Introduction
 Computer – an electronic devices consist of
hardware and software and perform tasks and
produce the output

 Computer – is a device that can perform


computation and logical decisions billion times
faster than human being can.

 Programming Language – language for


computer consist of a vocabulary and a set of
rules that can be understood by the computer
4

Categories of Computers
 Individuals
 Desktop : PC, iMac
 Personal Digital Assistant (PDA)
 Laptop

 Organizations
 Supercomputers
 Mainframes
 Servers
 Minicomputers
5

Computer Components
Computer

Hardware Software
• Any part of the computer • The set of computer
that can be physically touch programs that enables the
• Input and Output devices hardware to perform
different tasks.
• Application
• System
6

Computer Software

Software

System Software Application Software


• Operating systems (OS) • Microsoft Office
• System utilities • Adobe Photoshop
7

Computer Hardware

Zamri Abu Bakar CSC099 Sem 2 2012/2013


8

Central Processing Unit (CPU)


 The‘heart’ of a computer
 Comprised of 2 parts:-
 Control Unit
 Coordinate all the computer
instructions
 Machine cycle – Fetch, Decode,
Execute, Store
 Arithmetic & Logic Unit (ALU)
 To perform mathematical
operations
9

Main Memory (RAM)


 Volatile
Coding Schemes
10

 Each printable and non-printable character is


represented by unique number in memory.
 Encoding – method to encode character to unique
number

 ASCII (American Standard Code for Information


Interchange)
 7 bits equals one character; 128 characters; used by
minicomputers and personal computers.
 EBCDIC (Extended Binary Coded Decimal Interchange
Code)
 8 bits equals one character; 256 characters; used by
mainframe computers and IBM.
 Unicode
 16 bits (2 bytes ) equals one character; 65536
characters; used for foreign language symbols.
11
12 October 21, 2019

What is Programming Language?


 A set of rules, words and symbols are used to
write a computer program – telling a
computer what to do.
 The source codes (program) are compiled and the
executable files (*.exe) are produced.

program1
Error free

Compiled Executable
Programmer file (*.exe)
writes program & debug
Understanding
Software Programming
 Some tasks are complex
 Requires creative thought
 Requires human touch
 Some tasks are candidates for automation
 Works with electronic information
 Repetitive
 Follows a series of clear steps

13
The Importance of Programming
 A career in programming offers
 Plentiful jobs
 Strong salaries
 Telecommuting is often easy to arrange
 Computer programs exist for many tasks
 Programming necessary when no existing
software for task

14
15

The Importance of Programming


Add
features
that
support
personal
needs

Successfully Create
complete miniprograms
projects (macros)
Basic
knowledge of
programming

Create
Add custom
custom commands
applications
16

Type of programming languages


 Low-level: Written mainly in binary or machine
code (0’s/1’s) .
 High-level: closer to human language
17 October 21, 2019

Generation of Programming
language
 Machine language
 Assembly language
 High Level language

program  machine language

Compiler
machine language  program
Computers understand
People understand
binary(11011)
‘program’
18

History of Programming Languages

Computer
language
evolution

The only language understood by a computer is machine language

Machine Language Assembly Language

COBOL BASIC Fortran Smalltalk Ada

Visual Basic C and C++ Pascal Java


19 October 21, 2019

Machine Language
 Binary number codes understood by a specific CPU.
 Lowest level of language
 Represent data and program instructions as 1s and 0s
 The only language that computer directly understand
 (Do not require translator)
 Not convenient to read and use.
 First generation language
 Machine - dependent
Example:
To calculate wages = rates * hours in machine
language:
100100 010001 //Load
100110 010010 //Multiply
100010 010011 //Store
20 October 21, 2019

Assembly Language
 Second generation language
 Developed to replace 1s and 0s use in machine
language.
 Use mnemonic codes : abbreviations that easy to
remember
 Requires a translator to translate the assembly program
into machine language ( assembler).
 Difficult to learn
 Machine-dependent

ADD for Addition


MULT for Multiply
21

Assembly Language
 Low level language.
 Unique to particular computer.
 Use mnemonics symbols. E.g. “MULT” –Multiply
 Easier to understand.
 A program is written in source code (text file) and
translated into machine language by an assembler.
22 October 21, 2019

Comparison
 A Machine-language Program Fragment and Its
Assembly-Language Equivalent
Memory Address Machine-Language Assembly-Language
Instructions Instructions

00000000 00000000 CLA

00000001 00010101 ADD A

00000010 00010110 ADD B

00000011 00110101 STA A


23

Many Languages for Many Projects


 Programming languages have been
developed to balance conflicting goals
24 October 21, 2019

High-Level Programming Language

 Made easy for programmer to develop and


maintain program
 Machine- independent (can run on may
different types of computers)
 Have 3 categories : third, fourth and fifth
generation
 Written in series of English-like words
 Must be translated to machine code first
(Use translator)
25

High-Level Programming Language


 Portable to many different computers.
 Easier to read, write, and maintain than machine
and assembly languages.
 Instruction are coded; programmers use this to
write programs.
 Example : COBOL (Business), FORTRAN (Scientific),
BASIC, Pascal, C, C++, C#, Java etc.
 Compiler/interpreter: translates a program (code)
written in a high-level language into machine
language
26

Some Well-Known High-Level


Programming Languages
27

Visual Basic
28

Visual Basic
 Advantages of Visual Basic
– Prototyping is form of rapid
application development (RAD)
– Developers create prototype then
generate system documents
– RAD is alternative to waterfall
approach
– Used to build Windows applications
29

C and C++
Provides higher-level
programming features

Allows direct manipulation


of system memory and CPU
registers

Code runs fast and uses


small amount of memory

Basic components are


common to many
languages
30

Java
 Programmers use various languages when information
needs to be collected from networked computers
– Java is an object-oriented language
• Is a good choice for these applications
• Popular because it uses a large set of existing
classes
• Classes exist for many graphical objects
• Can run on many CPUs and with many operating
systems
31

Java
Compile once and run on many platforms
32

Objective C
 Mostpopular language for writing Mac OS X
applications
33

JavaScript and VBScript


Scripting languages
– Allows decisions and calculations
– Adds interactivity to web pages
34

ASP, JSP, and PHP


 How interactive web pages are built
– Several languages adapt the HTML
page to user’s selections
• Active Server Pages (ASP)
• JavaServer Pages (JSP)
• PHP (Hypertext Preprocessor)
– User supplies information that is
translated into a request using
database query language
35

ASP, JSP, and PHP


 Interactive web pages
36

Programming Languages
37

Building Mobile Applications


Special languages and supporting tools help speed
development of applications for mobile devices like
smart phones and tablets

Specific features include GPS capability, software


keyboards, and touch-sensitive screens

User interface must take smaller screen size into


account
38

Mobile Applications
Xcode 4
39

Mobile Applications
 Tools for building apps for Android devices
– Android software development kit (SDK)
is required
– Uses well-known IDEs with special plug-ins

 Build iOS apps (iPhone, iPad)


• Objective C language
40

Mobile Applications
Corona and Magmito support
several different devices and save
time for simple applications

For specific features and ultimate


performance, custom
programming is still required.
41

Natural Language
o Like our natural language (such as Malay, English,
French, or Chinese)
o Its use is still quite limited.
o Tools that allow end users to create or customize
computer programs with natural language.
o For example “make me an app that suggests new
careers paths to me based on people with similar
skills and experiences who have successfully
improved their salary and quality of life with a new
career.” (John Spacey, 2016)
42

Examples :
To calculate the salary = rates X hours
• Machine language
100100 010001 //Load
100110 010010 //Multiply
100010 010011 //Store

• Assembly language
LOAD rate
MULT hour
STOR salary

• High-level language – C Programming


salary = rate * hours;
43 October 21, 2019

Language Translator
Program need to translate because computer only
understand machine language
 Assembler
 Used in assembly language for translate the
language to machine language
 Interpreter
 Translates one program code statement at a time.
 Immediately displays feedback when it finds error.
 Compiler
 Translating the source code from its original language
into machine code.
 Converts the entire source program into machine
language at one time
44

C Language
 Is a structured programming language
 High level language
 Is a case sensitive language
 Developed by Dennis Rithcie (1972)
 ANSI define a standard on C (1983), which
was followed by ISO (1990)
 Designed for writing system software
45

Example of a C Program
46

Program Development

• A computer understands a program only if the


program is coded in its machine language.
• Thus, programming language need to be
converted to machine language (executable file)
47

High Level Program to Executable


Code
1. Programmer create and edit text file containing
the program (source code) with a text editor and
save it into file (source file)
2. Run
1. preprocessor to process the preprocessor directives
(begin with #).
2. compiler to:
• Check that the program obeys the rules
• Translate into machine language (object
code)
3. linker to connect hardware-specific code to machine
instructions, producing an executable code.
3. Loader : Loads executable file into main memory
4. Execution : Execute the program
48

High Level
Language to
Machine
Language
(Executable file)

Programmer

Code

Code

Executable Code
49

Flow of Information During Program


Execution
50

Integrated Development
Environments (IDEs)
 An integrated development environment, or IDE,
combine all the tools needed to write, compile, and
debug a program into a single software
application.
 Examples are Code Blocks, Microsoft Visual C,
Borland C Builder, CodeWarrior, BloodShed
DevC++, etc.
51

Code Blocks IDEs


52

Exercise
A _____________ translates high-level
language program into ___________.
 A(n) _______ provides access to system
programs for editing and compiling.
 A C program is saved on disk as a(n) ______
file.
 The _______ find syntax error in the _________.
 In high-level or assembly language, you can
reference data using ____________ rather
than memory cell address.
 _____________ is composed for units such as
disk, flash memory, CDs or DVDs.
53 October 21, 2019

References
 Technology in Action, 10th Edition, Pearson, Alan
Evans, Kendall Martin and Mary Anne Poatsy.
Chapter 10.
 C How to Program, 7th Edition, Pearson, Paul
Deitel and Harvey Deitel
 C Programming a Q & A Approach, Mc Graw
Hill, H.H. Tan, T.B. D’Orazio, S.H.Or and Marian
M.Y.Choy
 C Program Design for Engineers, 2nd Edition,
Addison Wesley Jeri R. Hanly and Eliot B.
Koffman
54

Self Exercises:
1. What is computer language?
2. Briefly explain what are the different types of
computer language?
3. What Is a Computer Language Translator?
4. What is the very first computer programming
language in history?
5. How many types of computer language?
6. State the differences between Machine Language
and Assembly Language. Give an example of
instructions for each language.
7. What is IDEs?

You might also like