introduction to computers and programming 01204111 – computer programming

Post on 12-Jan-2016

275 Views

Category:

Documents

5 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Introduction to Introduction to ComputersComputers

and Programmingand Programming01204111 – Computer

Programming

2

What is a What is a computer?computer?

•A computer is a machine that Follows instructions (software) in memory

Reads input data Stores and processes data Produce outputs

3

DevelopmentDevelopment•Abacus•Analytical Engine•1 Generation (1940-1956): Vacuum

Tubes•2 Generation (1956-1963):

Transisters•3 Generation (1964-1971):

Integrated Circuits•4 Generation (1971-Present):

Microprocessors, VLSI/ULSI

4

Types of Types of computerscomputers

•Desktop computers•Notebook computers•Mobile computers

(Personal Digital Assistants, PDA)

•Mainframes•Super computers

MicrocomputersMicrocomputers

5

HardwareHardware•Input devices•Output devices•Central Processing Unit (CPU)•Main memory•Storage

6

Computer Computer ProgrammingProgramming

•To program a computer is to write instructions so that the computer can complete the required task.

•These instructions must be specific and unambiguous. To do so, you have to think carefully and describe your idea into instructions in the language that the machine can understand.

7

Basic StepsBasic Steps

Problem analysis

Program design

Implementation

Testing

8

Programming Programming languageslanguages

•Programming languages Low-level languages. e.g., machine languages, assembly language

High-level language. e.g., C, Pascal, Java, C#, Python

9

Low-level Low-level languageslanguages

• Instructions depend on the specific architecture of the machines E.g., x86, ARM, AVR architectures

•Each instruction correspond to specific cycle of execution

•A program written for a specific architecture cannot be executed in another architecture.

10

Low-level Low-level languageslanguages

• Machine languages Ready to be executed Usually written as

binary or hexadecimal numbers

• Assembly language Encoded machine

languages Each instruction

corresponds to one machine instruction.

SUBSUB R3, #2, R6R3, #2, R6SUBSUB R3, #2, R6R3, #2, R6

00011000 0110101100011000 0110101100011001 1111110000011001 1111110010011000 1110000010011000 11100000

00011000 0110101100011000 0110101100011001 1111110000011001 1111110010011000 1110000010011000 11100000

18 6B 19 FC 98 E018 6B 19 FC 98 E018 6B 19 FC 98 E018 6B 19 FC 98 E0

รหั�สฐานสอง

รหั�สฐานสบหัก

01 011 110 0000001001 011 110 0000001001 011 110 0000001001 011 110 00000010

11

High-level High-level languageslanguages

•Read more naturally•Are usually independent of

the underlying architecture. -> More portable

•Each statement may correspond to many machine instructions

SUM := A * 2 + ALPHA/3;PRINTLN(SUM);

SUM := A * 2 + ALPHA/3;PRINTLN(SUM);

12

Example of high-Example of high-level languageslevel languages

• Procedural Fortran Cobol Basic C Pascal

• Functional Lisp

• Object-oriented C++ Java C# VB

• Logic Prolog

Program Program ExecutionExecution

•A computer does not "understand" high-level languages.

•To execute program in these languages, you need either: An interpreter A compiler

13

14

InterpretersInterpreters•An interpreter reads

each high-level language instruction and executes that instruction, one by one.

อนเทอร�พร�เตอร�อนเทอร�พร�เตอร�

อนพ�ทอนพ�ท

เอาท�พ�ท

prog.bas

ซอร�สโค้�ดซอร�สโค้�ด

15

CompilersCompilers•A compiler reads the

whole program and translate it into machine readable instructions.ค้อมไพเลอร�ค้อมไพเลอร�

อนพ�ทอนพ�ท

เอาท�พ�ท

prog.c

ซอร�สโค้�ดซอร�สโค้�ดprog.exe

รหั�สภาษาเค้ร��องรหั�สภาษาเค้ร��อง

16

Languages used Languages used in this coursein this course

•Python An interpretative language Can be used on many computing systems (e.g., on MS Windows, Unix, and even some mobile phones).

•C# A compilation language More restrictive syntax Very good for developing GUI applications

17

PythonPython•Is a multi-paradigm

programming language Procedural Functional Object-oriented

•Is an interpretative language•Easy to get started•Very rich standard library

18

InstallationInstallation•Download Python 3.1 at

http://www.python.org/ftp/python/3.1.2/python-3.1.2.msi

•After the installation, you can try calling the Python Shell from the Start Menu.

19

Thinking CornersThinking Corners•Try to guess what the

following program is doing.

print("Welcome")

g = input("Guess the number: ")

guess = int(g)

if guess == 5:

print("You win!")

else:

print("You lose!")

print("Game over!")

print("Welcome")

g = input("Guess the number: ")

guess = int(g)

if guess == 5:

print("You win!")

else:

print("You lose!")

print("Game over!")

1:

2:

3:

4:

5:

6:

7:

8:

1:

2:

3:

4:

5:

6:

7:

8:

20

Natural languagesNatural languages•A program is not that

different from human natural language

Display "Welcome"

Let g be input("Guess the number: ")

Let guess be int(g)

if guess equals 5:

Display "You win!"

else:

Display "You lose!"

Display "Game over!"

Display "Welcome"

Let g be input("Guess the number: ")

Let guess be int(g)

if guess equals 5:

Display "You win!"

else:

Display "You lose!"

Display "Game over!"

1:

2:

3:

4:

5:

6:

7:

8:

1:

2:

3:

4:

5:

6:

7:

8:

21

Interaction with Interaction with PythonPythonA

"prompt" that

shows that the

system is ready to

take command

s

22

Try thisTry this•Try these commands (Don't

type >>>) and observe the output

>>> print(1)>>> print(3*8)>>> print("Hello")>>> input()>>> exit()

>>> print(1)>>> print(3*8)>>> print("Hello")>>> input()>>> exit()

23

Combining Combining instructions into instructions into

programsprograms• We can combine many instructions into a single program for ease of usage later on. Each instruction are executed in

order from top to bottom. We call this sequence of

instructions "a program".• You can use any editing

software to create this program file, e.g., Notepad.

• Python programs's names end with .py ,e.g., first.py

24

Traditional program Traditional program development cycledevelopment cycle

PythonPython

inputinput

output

prog.py

programprogramEditorEditor

The development process gets much

simplified with the use of IDE's.

We shall talk about a particular IDE on the next few slides.

The development process gets much

simplified with the use of IDE's.

We shall talk about a particular IDE on the next few slides.

25

How to run your How to run your programprogram

•You can double-click at the .py file. The Python interpreter will start to execute your program.

•Notes: After the program finishes, the window will be closed immediately. By adding a command "input()", you can keep the window opened.

26

Wing IDE 101Wing IDE 101•In this course, we will

develop programs in an Integrated Development Environment (IDE) It has a build-in editor Can execute programs insidethe system

It comes with a debuggingtool.

27

Turtle-style Turtle-style graphicsgraphics

•We shall learn basic ideas of programming by telling and teaching turtles to draw.

•From the Python Shell we can start using the Turtle graphics system by typing from turtle import *

28

What can a turtle What can a turtle do?do?

•Moves forward/backward•Turns left or right•Takes a pen with it

29

Basic turtle Basic turtle controlcontrol

• t = Turtle() – Create a turtle, call it t• t.forward(d) - tell t to walk d steps• t.backward(d) - tell t to walk backwards d for

steps• t.right(a) - tell t to turn right for a

degree• t.left(a) - tell t to turn left for a degree• t.penup() – tell t to lift the pen up from the

canvas• t.pendown() - tell t to put the pen back to the

canvas

Tell the turtle to Tell the turtle to draw a squaredraw a square

•In English:

30

Walk for 100 stepsTurn right 90 degreeWalk for 100 stepsTurn right 90 degreeWalk for 100 stepsTurn right 90 degreeWalk for 100 stepsTurn right 90 degree

Walk for 100 stepsTurn right 90 degreeWalk for 100 stepsTurn right 90 degreeWalk for 100 stepsTurn right 90 degreeWalk for 100 stepsTurn right 90 degree

Tell the turtle to Tell the turtle to draw a squaredraw a square

•In Python:

31

from turtle import *

t = Turtle()t.forward(100)t.right(90)t.forward(100)t.right(90)t.forward(100)t.right(90)t.forward(100)

from turtle import *

t = Turtle()t.forward(100)t.right(90)t.forward(100)t.right(90)t.forward(100)t.right(90)t.forward(100)

32

Teach the turtleTeach the turtle•You can define new

commands using deffrom turtle import *

t = Turtle()

def square(): t.forward(100) t.right(90) t.forward(100) t.right(90) t.forward(100) t.right(90) t.forward(100) t.right(90)

square()

from turtle import *

t = Turtle()

def square(): t.forward(100) t.right(90) t.forward(100) t.right(90) t.forward(100) t.right(90) t.forward(100) t.right(90)

square()

Make sure the

indentation is aligned

.

33

Repetitive Repetitive instructionsinstructions

•The instructions are very repetitive.

•High-level languages have ways to reduce this instruction repetition and duplication To reduce program complexity and increase readability.

from turtle import *t = Turtle()def square(): for x in range(4): t.forward(100) t.right(90)square()

from turtle import *t = Turtle()def square(): for x in range(4): t.forward(100) t.right(90)square()

34

Thinking CornerThinking Corner•Write a program that tells the

turtle to draw a equilateral triangle whose sides are 200-step long, on the canvas.

35

Software required Software required for the first halffor the first half

•Python 3.1.2 http://python.org/ftp/python/3.1.2 -/python 3.1.2.msi

•Wing IDE 101 An integrated development environment for Python

http://wingware.com/pub/wingide-101/3.2.5/wingide-101-3.2.5-1.exe

top related