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