Introduction to computers and programming RIZWAN REHMAN Assistant Professor Centre For Computer...

30
Introduction to computers and programming RIZWAN REHMAN Assistant Professor Centre For Computer Studies

Transcript of Introduction to computers and programming RIZWAN REHMAN Assistant Professor Centre For Computer...

Page 1: Introduction to computers and programming RIZWAN REHMAN Assistant Professor Centre For Computer Studies.

Introduction to computers and programming

RIZWAN REHMANAssistant Professor

Centre For Computer Studies

Page 2: Introduction to computers and programming RIZWAN REHMAN Assistant Professor Centre For Computer Studies.

Course contents (First Two Units)

Unit 1. A Model of a Computer System - Block diagram , Machine Language, High level language, Compiler, interpreter, I/O devices. Unit 2. Problem Analysis, Flow charts, Decision tables, Pseudo codes and Algorithms. 

Page 3: Introduction to computers and programming RIZWAN REHMAN Assistant Professor Centre For Computer Studies.

Course Text Book Dromey, G. : How to solve it by computer,

PHI ( EEE). 1985.

David Griffiths :Head First C , Shroff/O'Reilly; First edition (18 May 2012)

T Jeyapoovan: Programming with C, Vikas Publication.

Page 4: Introduction to computers and programming RIZWAN REHMAN Assistant Professor Centre For Computer Studies.

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

Page 5: Introduction to computers and programming RIZWAN REHMAN Assistant Professor Centre For Computer Studies.

Computer Organization Six logical units in every computer:

Input unit Obtains information from input devices (keyboard, mouse)

Output unit Outputs information (to screen, to printer, to control other

devices) Memory unit

Rapid access, low capacity, stores input information Arithmetic and logic unit (ALU)

Performs arithmetic calculations and logic decisions Central processing unit (CPU)

Supervises and coordinates the various components of the computer

Secondary storage unit Cheap, long-term, high-capacity storage Stores inactive programs

Page 6: Introduction to computers and programming RIZWAN REHMAN Assistant Professor Centre For Computer Studies.

Computer Architecture

Page 7: Introduction to computers and programming RIZWAN REHMAN Assistant Professor Centre For Computer Studies.

A Computer Consists of a central processing unit (CPU) consists of

an arithmetic/logic unit (ALU) where math and logic operations are performed,

a control unit which directs most operations by providing timing and control signals,

and registers that provide short-term data storage and management facilities.

a memory unit that stores instructions and data, and input (e.g. keyboard, mouse, microphone, disk drive, etc.)

and output (e.g. monitor, status indicator lights, speakers, disk drive, etc.) units that are used to transmit data into and out of the computer.

Page 8: Introduction to computers and programming RIZWAN REHMAN Assistant Professor Centre For Computer Studies.

ALU A : The type of operation that the ALU

needs to perform is determined by signals from the control unit .

B: The data can come either from the input unit, or

C: from the memory unit. D: Results of the operation can either be

transferred back to the memory unit or E: directly to the output unit .

Page 9: Introduction to computers and programming RIZWAN REHMAN Assistant Professor Centre For Computer Studies.

The memory unit - or random access memory (RAM) - stores instructions and/or data. Memory is divided into an array of "boxes" each containing

a byte of information. A byte consists of 8 bits. A bit (binary digit) is either 0 (OFF) or 1 (ON). The memory unit also serves as a storage for intermediate and

final results of arithmetic operations. F : Control signal (a read or a write operation). G : A location in memory H : Input to memory data lines when the control signal J is

enabled. I : Memory to the output unit when the control signal L is

enabled.

Page 10: Introduction to computers and programming RIZWAN REHMAN Assistant Professor Centre For Computer Studies.

Control Unit contains logic and timing circuits that generate the

appropriate signals necessary to execute each instruction in a program.

It fetches an instruction from memory by sending an address (G) and

a read command (F) to the memory unit. The instruction word(s) stored at the memory location

specified by the address is then transferred to the control unit (K).

After decoding this instruction, the control unit transmits the appropriate signals to the other units in order to execute the specified operation.

This sequence of fetch and execute is repeated by the

control unit until the computer is either powered off or reset.

Page 11: Introduction to computers and programming RIZWAN REHMAN Assistant Professor Centre For Computer Studies.

Common Softwares Operating System Compilers Assemblers Interpreters

Page 12: Introduction to computers and programming RIZWAN REHMAN Assistant Professor Centre For Computer Studies.

What Is an Operating System? An interface between the hardware and the

user. Provides an easy and efficient use of the

system resources.

Page 13: Introduction to computers and programming RIZWAN REHMAN Assistant Professor Centre For Computer Studies.

Evolution of Operating Systems Single_user Batch processing

Do only one job or task at a time Early Operating systems

Manage transitions between jobs (minimizing transition time between jobs)

Increased throughput Amount of work computers process

Multiprogramming Computer resources are shared by many jobs or tasks

(users still waited a long time for their output) Timesharing (access computers via terminals)

Computer runs a small portion of one user’s job then moves on to service the next user

Page 14: Introduction to computers and programming RIZWAN REHMAN Assistant Professor Centre For Computer Studies.

Programming Language : Definition A vocabulary and set of grammatical rules for

instructing a computer to perform specific tasks.

Page 15: Introduction to computers and programming RIZWAN REHMAN Assistant Professor Centre For Computer Studies.

Evolution of Programming languages

First Generation : Machine languages Strings of numbers giving machine specific instructions Example:

+1300042774+1400593419+1200274027

Second Generation : Assembly languages English-like abbreviations representing elementary

computer operations (translated via assemblers) Example:

LOAD BASEPAYADD OVERPAYSTORE GROSSPAY

Third Generation : High-level languages Codes similar to everyday English Use mathematical notations (translated via compilers) Example: grossPay = basePay + overTimePay

Page 16: Introduction to computers and programming RIZWAN REHMAN Assistant Professor Centre For Computer Studies.

PL hierarchy

Page 17: Introduction to computers and programming RIZWAN REHMAN Assistant Professor Centre For Computer Studies.

What does the computer understand? Computer only understands machine

language instructions.

Page 18: Introduction to computers and programming RIZWAN REHMAN Assistant Professor Centre For Computer Studies.

Assembler Instructions written in assembly language

must be translated to machine language instructions : Assembler does this

One to one translation : One AL instruction is mapped to one ML instruction.

AL instructions are CPU specific.

Page 19: Introduction to computers and programming RIZWAN REHMAN Assistant Professor Centre For Computer Studies.

Compiler Instructions written in high-level language

also must be translated to machine language instructions : Compiler does this

Generally one to many translation : One HL instruction is mapped to many ML instruction.

HL instructions are not CPU specific but compiler is.

Page 20: Introduction to computers and programming RIZWAN REHMAN Assistant Professor Centre For Computer Studies.

Translation from HLL to ML

Page 21: Introduction to computers and programming RIZWAN REHMAN Assistant Professor Centre For Computer Studies.

Interpreter An interpreter translates high-level instructions

into an intermediate form, which it then executes. In contrast, a compiler translates high-level instructions directly into machine language.

Compiled programs generally run faster than interpreted programs.

The advantage of an interpreter, however, is that it does not need to go through the compilation stage during which machine instructions are generated. This process can be time-consuming if the program is long. The interpreter, on the other hand, can immediately execute high-level programs. For this reason, interpreters are sometimes used during the development of a program, when a programmer wants to add small sections at a time and test them quickly.

Page 22: Introduction to computers and programming RIZWAN REHMAN Assistant Professor Centre For Computer Studies.

Structured Programming

Structured programming Disciplined approach to writing programs Clear, easy to test and debug and easy to

modify Structured programming is hard and

takes time to master

Page 23: Introduction to computers and programming RIZWAN REHMAN Assistant Professor Centre For Computer Studies.

Structured Programming contd.. A technique for organizing and coding

computer programs in which a hierarchy of modules is used, each having a single entry and a single exit point, and in which control is passed downward through the structure without unconditional branches to higher levels of the structure.

Three types of control flow are used: sequential, test, and iteration

Page 24: Introduction to computers and programming RIZWAN REHMAN Assistant Professor Centre For Computer Studies.

Structured programming Only the following code structures are used

to write programs: 1.Sequence of sequentially executed

statements. 2.Conditional execution of statements (i.e.,

"if" statements). 3.Looping. 4.Structured SubRoutine calls (e.g., 'gosub'

but not 'goto').

Page 25: Introduction to computers and programming RIZWAN REHMAN Assistant Professor Centre For Computer Studies.

Structure Programming contd..In particular, the following language usage is

forbidden: "GoTo" statements. "break" or "continue" out of the middle of

loops. Multiple exit points to a

function/procedure/subroutine (i.e., multiple "return" statements).

Multiple entry points to a function/procedure/subroutine.

Page 26: Introduction to computers and programming RIZWAN REHMAN Assistant Professor Centre For Computer Studies.

Structured Programming contd.. Structured Programming is generally a non-

issue when doing ModularProgramming or ObjectOrientedProgramming as it's assumed that individual methods are structured.

Page 27: Introduction to computers and programming RIZWAN REHMAN Assistant Professor Centre For Computer Studies.

Structured VS unstructured Languages Structured languages, such as Pascal, Ada and

dBASE, force the programmer to write a structured program.

Unstructured languages such as FORTRAN, COBOL and BASIC require discipline on the part of the programmer to write a structured program.

Page 28: Introduction to computers and programming RIZWAN REHMAN Assistant Professor Centre For Computer Studies.

Structured VS unstructured Languages Unstructured languages define control flow largely in terms

of a GOTO command that transfers execution to a label in code. Structured programming languages provide constructs (often called "if-then-else", "switch", "unless", "while", "until", and "for") for creating a variety of loops and conditional branches of execution, although they may also provide a GOTO to reduce excessive nesting of cascades of "if" structures, especially for handling exceptional conditions.

Strictly speaking, in a structured programming language, any code structure should have only one entry point and one point of exit; many languages such as C allow multiple paths to a structure's exit (such as "continue", "break", and "return"), which can bring both advantages and disadvantages in readability.

Page 29: Introduction to computers and programming RIZWAN REHMAN Assistant Professor Centre For Computer Studies.

The 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 More understandable, better organized, and

easier to maintain than procedural programming

Page 30: Introduction to computers and programming RIZWAN REHMAN Assistant Professor Centre For Computer Studies.

THANK YOU