CS101: COMPUTER PROGRAMMING Lecture 1: Introduction to Computer and Programming.

29
CS101: COMPUTER PROGRAMMING Lecture 1: Introduction to Computer and Programming

Transcript of CS101: COMPUTER PROGRAMMING Lecture 1: Introduction to Computer and Programming.

Page 1: CS101: COMPUTER PROGRAMMING Lecture 1: Introduction to Computer and Programming.

CS101: COMPUTER PROGRAMMINGLecture 1: Introduction to Computer and Programming

Page 2: CS101: COMPUTER PROGRAMMING Lecture 1: Introduction to Computer and Programming.

Objectives

In this Lecture you will learn about: Overview of PC components The different types of language

Natural Language Formal Language Functional / Imperative Language Programming Languages

C as an imperative language C program at a glance

Page 3: CS101: COMPUTER PROGRAMMING Lecture 1: Introduction to Computer and Programming.

Overview of PC Components

Section 1

Page 4: CS101: COMPUTER PROGRAMMING Lecture 1: Introduction to Computer and Programming.

Computer Hardware Components

Components of a PC

Page 5: CS101: COMPUTER PROGRAMMING Lecture 1: Introduction to Computer and Programming.

Input / Output Devices

Input Devices Accepts information from the user

and transforms it to digital codes that the computer can process

Example: keyboard, mouse, scanner Output Devices

An interface by which the computer conveys the output to the user

Example: monitor, printer

Page 6: CS101: COMPUTER PROGRAMMING Lecture 1: Introduction to Computer and Programming.

Main Memory

A semiconductor device which stores the information necessary for a program to run.

2 types ROM (Read Only Memory)

Contains information that is necessary for the computer to boot up

The information stays there permanently even when the computer is turned off.

RAM (Random Access Memory) Contains instruction or data needed for a program

to run Got erased when the computer is turned off.

Page 7: CS101: COMPUTER PROGRAMMING Lecture 1: Introduction to Computer and Programming.

Central Processing Unit (CPU) Does most of the work in executing a program The CPU inside a PC is usually the

microprocessor 3 main parts:

Control Unit Fetch instructions from main memory and put them in

the instruction register ALU (Arithmetic Logic Unit)

Execute arithmetic operations Registers

Temporarily store instructions or data fetched from memory

Page 8: CS101: COMPUTER PROGRAMMING Lecture 1: Introduction to Computer and Programming.

Storage Devices

A magnetic device used to store a large amount of information.

Store the software components or data needed for the computer to execute its tasks.

Could be “read only” or “writable”. Example: Hard drive, CD ROM, floppy

disks

Page 9: CS101: COMPUTER PROGRAMMING Lecture 1: Introduction to Computer and Programming.

Network Devices

Connect a computer to the other computers.

Enable the users to access data or execute programs remotely.

Example: modem, Ethernet card

Page 10: CS101: COMPUTER PROGRAMMING Lecture 1: Introduction to Computer and Programming.

The different types of language

Section 2

Page 11: CS101: COMPUTER PROGRAMMING Lecture 1: Introduction to Computer and Programming.

Natural language

Our everyday-language; spoken and written Not 100% needed to understand: Depends on circumstances; the context:

“Do you like one ?” doesn't make sense on its own. It needs a situation around it:

someone holding a bouquet of flowers: you might take one

someone pointing to an expensive car: your opinion is asked

someone 'offers' you an oily cloth to sneeze: you don't take it

Page 12: CS101: COMPUTER PROGRAMMING Lecture 1: Introduction to Computer and Programming.

Semantics and Syntax

Semantics – the meaning of the language within a given context

Syntax - Syntax are the rules to join wordstogether in forming a correct expression or phrase.

In natural languages it is often possible to assemble a sentence in more than one correct ways.

Page 13: CS101: COMPUTER PROGRAMMING Lecture 1: Introduction to Computer and Programming.

Formal Language

Language with limited, defined, words Each concatenation of words ('phrase') has a

single, clearly defined meaning no (miss-)interpretation possible

Sometimes called “Context Free Language” To 'talk' to a computer; to instruct a

computer; our commands must be 100% clear and correct.

Often there is only a single, correct syntax.

Page 14: CS101: COMPUTER PROGRAMMING Lecture 1: Introduction to Computer and Programming.

Functional / Imperative Language Functional Language:

Tell what to do, but not how:sum [1...10]

Imperative Language: Tell what to do, but mainly how:

“Take number 1 and add the next number to it; then add the next number to the sum; and so on; until you have reached 10 as number to be added. Then print the sum of all numbers”

Page 15: CS101: COMPUTER PROGRAMMING Lecture 1: Introduction to Computer and Programming.

What is Programming?

Programming is instructing a computer to do something for you with the help of a programming language

The two roles of a programming language: Technical: It instructs the computer to perform

tasks. Conceptual: It is a framework within which we

organize our ideas about things and processes. In programming, we deal with two kind of things:

Data - representing 'objects' we want to manipulate

Procedures -'descriptions' or 'rules' that define how to manipulate data.

Page 16: CS101: COMPUTER PROGRAMMING Lecture 1: Introduction to Computer and Programming.

Programming Language

Formal Language used to communicate to a computer.

A programming language contains instructions for the computer to perform a specific action or a specific task: 'Calculate the sum of the numbers from 1 to

10‘ 'Print “I like programming”‘ 'Output the current time'

Page 17: CS101: COMPUTER PROGRAMMING Lecture 1: Introduction to Computer and Programming.

Programming Language

Can be classified into as a special-purpose and general-purpose programming languages.

Special-purpose : is design for a particular type of application Structured Query Language (SQL)

General-purpose : can be used to obtain solutions for many types of problems Machine Languages Assembly Languages High-Level Languages

Page 18: CS101: COMPUTER PROGRAMMING Lecture 1: Introduction to Computer and Programming.

Machine Language

The only language that the processor actually 'understands‘

Consists of binary codes: 0 and 1 Example: 00010101

11010001 01001100

Each of the lines above corresponds to a specific task to be done by the processor.

Programming in machine code is difficult and slow since it is difficult to memorize all the instructions.

Mistakes can happen very easily. Processor and Architecture dependent

Page 19: CS101: COMPUTER PROGRAMMING Lecture 1: Introduction to Computer and Programming.

Assembly Language

Enables machine code to be represented in words and numbers.

Example of a program in assembler language:LOAD A, 9999

LOAD B, 8282

SUB B

MOV C, A

LOAD C, #0002

DIV A, C

STORE A, 7002

Easier to understand and memorize (called Mnemonics), compared to machine code but still quite difficult to use.

Processor and Architecture dependent

Page 20: CS101: COMPUTER PROGRAMMING Lecture 1: Introduction to Computer and Programming.

High-Level Language

Use more English words. They try to resemble English sentences. Therefore, it is easier to program in these languages.

The programming structure is problem oriented - does not need to know how the computer actually executes the instructions.

Processor independent - the same code can be run on different processors.

Examples: Basic, Fortran, Pascal, Cobol, C, C++, Java

A high level language needs to be analyzed by the compiler and then compiled into machine code so that it can be executed by the processor.

Page 21: CS101: COMPUTER PROGRAMMING Lecture 1: Introduction to Computer and Programming.

C Programming Language

Why 'C' ? Because based on 'B'; developed at Bell

Laboratories Developed by Dennis Ritchie at Bell Laboratories

in the 1960s In cooperation with Ken Thomson it was used for

Unix systems The C Language was only vaguely defined, not

standardized, so that almost everyone had his own perception of it, to such an extend that an urgent need for a standard code was creeping up

Page 22: CS101: COMPUTER PROGRAMMING Lecture 1: Introduction to Computer and Programming.

C Programming Language

In 1983, the American National Standards Institute (ANSI) set up X3J11, a Technical Committee to draft a proposal for the ANSI standard, which was approved in 1989 and referred to as the ANSI/ISO 9899 : 1990 or simply the ANSI C, which is now the global standard for C.

This standard was updated in 1999; but there is no compiler yet

Page 23: CS101: COMPUTER PROGRAMMING Lecture 1: Introduction to Computer and Programming.

C as An Imperative Language

Section 3

Page 24: CS101: COMPUTER PROGRAMMING Lecture 1: Introduction to Computer and Programming.

C – An Imperative Language

C is a highly imperative language We must tell it exactly how to do what; the means and functions to use; which libraries to use; when to add a new line; when an instruction is finished; in short: everything and anything…

Hint: Observe the syntax in the next slide

Page 25: CS101: COMPUTER PROGRAMMING Lecture 1: Introduction to Computer and Programming.

C Program at a Glance

Section 4

Page 26: CS101: COMPUTER PROGRAMMING Lecture 1: Introduction to Computer and Programming.

A Simple Program in C

#include <stdio.h>

int main(){

printf("I like programming in C.\n");return 0;

}

Page 27: CS101: COMPUTER PROGRAMMING Lecture 1: Introduction to Computer and Programming.

A Simple Program in C - explanation

#include <stdio.h>

int main()

{

printf("I like programming in C.\n");

return 0;

}

standard Library, input-output, header-file

Begin of program

End of statement

End of Segment

Start of Segment

Function for printing text

Insert a new line

Page 28: CS101: COMPUTER PROGRAMMING Lecture 1: Introduction to Computer and Programming.

C Output

I like programming in C.

Page 29: CS101: COMPUTER PROGRAMMING Lecture 1: Introduction to Computer and Programming.

Summary

We have looked at some underlying hardware

We have seen some different types of languages; the relevance of semantics and syntax.

We have observed the detail necessary in an imperative language to instruct a computer properly.

Finally, we examined the syntax to print a line of text to the screen of our computer.