ics 102 computer programming university of hail college of computer science & engineering...

45
ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

Upload: simon-newton

Post on 22-Dec-2015

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

ICS 102 Computer Programming

University of HailCollege of Computer Science & Engineering

Computer Science and Software Engineering Department

Page 2: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

Chapter1 : Introduction

ICS 102 Computer Programming

Page 3: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

ICS102: Computer Programming 3

Components of a Personal Computer

Questions : - what are the input devices ?- what are the output devices ?

Page 4: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

4

A motherboard, provides the electrical connections by which the other components of the system communicate and hosts the central processing unit as well as other subsystems and devices.

Motherboard

Page 5: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

ICS102: Computer Programming 5

Motherboard example : Acer E360

Page 6: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

ICS102: Computer Programming 6

CPU (Central Processing Unit)

The Central Processing Unit (CPU) or processor is the portion of a computer system that carries out the instructions of a computer program and is the primary element carrying out the computer's functions.

In an addition operation, the arithmetic logic unit (ALU) will be connected to a set of inputs and a set of outputs. The inputs provide the numbers to be added, and the outputs will contain the final sum.

Example: (3 + 2) = 5

3

2

5

Page 7: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

ICS102: Computer Programming 7

CPU memory

◦ Registers

◦ Cache

Main memory (RAM):

◦ Data has to be in main memory so that CPU can access it

◦ Volatile: lost when program exits; computer shuts off

Hard Disk, CD, etc.

◦ This is where you keep the data for long-term storage

Memory

Memory refers to computer components, devices, and recording media that hold digital data used for computing for some interval of time.

There are mainly three types of memory :

Page 8: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

ICS102: Computer Programming 8

Main Memory …

10021003

1004

1005

CellAddress

Memory is divided intoMany memory locations (cells)

Each memory cell has a numeric address, which uniquely identifies it

Each cell contains a datavalue, e.g. 22

Page 9: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

ICS102: Computer Programming 9

Main Memory…

Page 10: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

ICS102: Computer Programming 10

The word “Hello.” stored in 6 memory cells

Main Memory…

Page 11: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

Memory units : Bits and Bytes

Bit -- most basic unit of memory

◦ 1 or 0, on or off

1 Byte = 8 bits

In a computer, data values are stored as a sequence of bits

ICS102: Computer Programming 11

2

7

1004

1005

00000010

00000111

1004

1005

Page 12: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

ICS102: Computer Programming 12

Program / CPU / Memory InteractionExample:

◦ Input read a number from keyboard◦ Add 1 to it◦ Output it on screen

KeyboardRAM

11 CPU

RAM

2 Monitor1 2 2

Page 13: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

1-13

Software

Software is the programs and data that a computer uses. Both programs and data are saved in computer memory in the same way.

Page 14: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

1-14

Computer Software

Types of software

Software

Page 15: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

1-15

Software

Application Programs Systems Programs

Word processors Game programs Spreadsheets Data base systems Graphics programs Web browsers

Operating system.

Networking system. Programming

language software. Web site server. Device drivers.

Page 16: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

What is programming?

Page 17: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

ICS102: Computer Programming 17

What is a program?

A (software) program is a list of instructions intended to a computer

A program has inputs and outputs

Each instruction tells the computer to do something (an action, a calculation, a comparison)

Page 18: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

ICS102: Computer Programming 18

Program ExecutionA program tells the CPU how to manipulate

and/or move information

Programming is about processing information

◦ Take some input,

◦ manipulate it in some way, and

◦ produce a particular output

ManipulationInputs Outputs

Program

Page 19: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

ICS102: Computer Programming 19

Example 1 : Recipe for Scrambled Eggs

Ingredients (Inputs) : two eggs, tablespoon of oil, salt

Instructions (program):

◦ Add oil to pan

◦ Heat pan on stove

◦ Crack eggs into pan

◦ Add salt

◦ Mix until light and flakey

Output: scrambled eggs

Page 20: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

ICS102: Computer Programming 20

Example 2 : Currency Exchange

Input:◦ Amount◦ Source Currency◦ Desired Currency

Instructions◦ Look up in table current exchange rate

for the selected currencies◦ Calculate result as amount * exchange

rate• Output: result

Task : convert an amount of money in some currency (e.g. US Dollars) to another one (e.g. Saudi Riyals).

Page 21: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

ICS102: Computer Programming 21

Programming language

A programming language is the language used to write programs

A programming language employs a set of rules that dictate how the words and symbols can be put together to form valid program statements

A programming language has a syntax and semantics

In this course we focus on Java programming language.

Page 22: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

ICS102: Computer Programming 22

Java• Java is a programming language

originally developed by James Gosling at

Sun Microsystems

• It was first released in 1995.

• The language derives much of its syntax

from C and C++.

• But has a simpler object model and fewer

low-level facilities than C and C++.

Page 23: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

Programming Language Hierarchy

H ard w are

M ach in e L an g u ag e

A ssem b ly L an u ag e

H ig h -L eve l L an g u ag e (H L L )

Page 24: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

The highs and lows of programming languages ...

High-Level Language (HLL)

◦closest to natural language

◦words, numbers, and math symbols

◦not directly understood by hardware

◦Java, C/C++, COBOL, FORTRAN, BASIC, Lisp, Ada, etc.

Machine Language (lowest level)◦natural language

for hardware◦just 0s and 1s◦directly

understood by hardware

Page 25: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

Assembly Language (middle level)a more or less human readable

version of machine languagewords, abbreviations, letters and

numbers easily translated from human readable

to machine executable code

Page 26: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

Getting from Source to Machine Code“Compiler”

a program that translates HLL source code to machine (object, or executable) code.

“Assembler”a program that translates assembly source

code to machine (object, or executable) code.

Page 27: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

Compilers vs. Assemblers vs. InterpretersCompilers and Assemblers

◦ translation is a separate user step◦ translation is “off-line,” i.e. not at run time

Interpreters ◦ interpretation (from source to object code) is not a

separate user step◦ translation is “on-line,” i.e. at run time

Compiler,

Assembler, or

Interpreter

SourceCode

ObjectCode

Page 28: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

Java Program Translation

Intermediate Code:“Byte Code”◦ similar to assembly

code,but hardware independent

Interpreter translates from generic byte code to hardware-specific machine code

Java Program Data for Java Program

Java Compiler

Byte-CodeProgram

Byte-Code Interpreter

Machine-LanguageInstructions

Computer Executionof Machine-Language Instructions

Output of Java Program

JavaVirtualMachine

Page 29: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

Byte-Code and the Java Virtual Machine

The Java compiler translates Java

programs into byte-code, a machine

language called the Java Virtual

Machine

◦ Once compiled to byte-code, a Java program

can be used on any computer, making it

very portable

1-29

Page 30: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

ICS102: Computer Programming 30

Portability of Java

Classical model:

Java model:

Page 31: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

Program terminology

Code: A program or a part of a program

Source code (or source program): A

program written in a high-level language

such as Java

◦ The input to the compiler program

Object code: The translated low-level

program

◦ The output from the compiler program, e.g.,

Java byte-code

1-31

Page 32: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

32

Portability of Java

Write once, run anywhere: Because applications written in the Java programming language are compiled into machine-independent bytecodes, they run consistently on any Java platform.

Page 33: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

33

A Java Program

A Java program consists of one or more classes

A Java class consists of one or more methods

A Java method consists of one or more statements

A Java Program

Javaclasses

JavaMethods

Page 34: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

34

A Java Program

A Java program resides in one or more files.

The file name of a Java program has extension .java.

One of the classes of a Java program is called the driver class.

The name of the driver class must be the same as the name of its Java file. (Java is case sensitive. So EX1 is different from ex1.)

The driver class must contain a method called main. The execution of Java program starts from the main method of the driver class.

Page 35: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

35

Example of a Java Program

Page 36: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

36

Example of a Java Program

Class nameMain method

Instruction

Class body

Page 37: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

ICS102: Computer Programming 37

Example of a Java ProgramAlso notice:

Curly braces } {

Page 38: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

38

Example of a Java ProgramAlso notice:

Parentheses ( )

Curly braces } {

Page 39: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

39

Example of a Java ProgramAlso notice:

Parentheses ( )

Curly braces } { Square brackets] [

Page 40: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

ICS102: Computer Programming 40

Example of a Java ProgramAlso notice:

A pair of braces } { define a block

Page 41: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

Compiling and running a program

Type in your program

Save the program

◦ Store all your files in one directory for now

◦ Give the program the same name as the class

Compile the program

◦ this produces a .class file

◦ Translates the program into something the computer can understand and execute (Java bytecode)

Run the program

Observe the result and adjust the program if necessary

ICS102: Computer Programming 41

Page 42: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

Edit

ICS102: Computer Programming 42

Text Editor

Public class/*

firstProg.java

Public class firstPtog/* This program is an …*/

public static void main… /* Program statements g … System.out.print(“Wel … }}

Page 43: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

ICS102: Computer Programming 43

Compile - With Errors

firstProg.java

Public class firstPtog/* This program is an Arit*/

public static void main /* Program statements g System.print(“Welcome }}

Compiler

Errors and Warnings-------------------Error : The method print(String) is undefined forType System

Page 44: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

ICS102: Computer Programming 44

Compile - Success

firstProg.java

Public class firstPtog/* This program is an Arit*/

public static void main /* Program statements System.out.print(“Welcome”); }}

Compiler

firstPtog.class

00101101000101110110110100010111011101010001011101110101101000101110111010110100010111011101011010001011101110101101000101110111000101110111010110100010111011100101110111010110100010111011100101110111010110100010111011100101110111010110100010111011100101110111010110100010111011100101110

Page 45: ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department

Run Program

ICS102: Computer Programming 45

Welcome to the ArithmThe date is Monday SepWhat is your name?FredWell Fred, after a dayThe cube appears to beYou find a Green door,The door closes behindThere is a feel of mat

firstProg

Fred

1