350 likes | 377 Views
Introduction to Computers and Programming. 01204111 – Computer Programming. What is a computer?. A computer is a machine that Follows instructions (software) in memory Reads input data Stores and processes data Produce outputs. Development. Abacus Analytical Engine
E N D
Introduction to Computersand Programming 01204111 – Computer Programming
What is a computer? • A computer is a machine that • Follows instructions (software) in memory • Reads input data • Stores and processes data • Produce outputs
Development • 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
Types of computers • Desktop computers • Notebook computers • Mobile computers(Personal Digital Assistants, PDA) • Mainframes • Super computers Microcomputers
Hardware • Input devices • Output devices • Central Processing Unit (CPU) • Main memory • Storage
Computer Programming • 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.
Basic Steps Problem analysis Program design Implementation Testing
Programming languages • Programming languages • Low-level languages. e.g., machine languages, assembly language • High-level language. e.g., C, Pascal, Java, C#, Python
Low-level languages • 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.
Low-level languages 00011000 01101011 00011001 11111100 10011000 11100000 • 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. รหัสฐานสอง 18 6B 19 FC 98 E0 รหัสฐานสิบหก SUB R3, #2, R6 01 011 110 00000010
High-level languages • 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);
Procedural Fortran Cobol Basic C Pascal Functional Lisp Object-oriented C++ Java C# VB Logic Prolog Example of high-level languages
Program Execution • A computer does not "understand" high-level languages. • To execute program in these languages, you need either: • An interpreter • A compiler
อินพุท prog.bas ซอร์สโค้ด เอาท์พุท Interpreters • An interpreter reads each high-level language instruction and executes that instruction, one by one. อินเทอร์พรีเตอร์
อินพุท prog.c prog.exe ซอร์สโค้ด รหัสภาษาเครื่อง เอาท์พุท Compilers • A compiler reads the whole program and translate it into machine readable instructions. คอมไพเลอร์
Languages used in 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
Python • Is a multi-paradigm programming language • Procedural • Functional • Object-oriented • Is an interpretative language • Easy to get started • Very rich standard library
Installation • 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.
Thinking Corners • Try to guess what the following program is doing. 1: 2: 3: 4: 5: 6: 7: 8: print("Welcome") g = input("Guess the number: ") guess = int(g) if guess == 5: print("You win!") else: print("You lose!") print("Game over!")
Natural languages • A program is not that different from human natural language 1: 2: 3: 4: 5: 6: 7: 8: Display "Welcome" Let g be input("Guess the number: ") Let guess beint(g) if guess equals5: Display "You win!" else: Display "You lose!" Display "Game over!"
Interaction with Python A "prompt" that shows that the system is ready to take commands
Try this • Try these commands (Don't type>>>) and observe the output >>> print(1) >>> print(3*8) >>> print("Hello") >>> input() >>> exit()
Combining instructions into programs • 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
input prog.py program output Traditional program development cycle Editor Python The development process gets much simplified with the use of IDE's.We shall talk about a particular IDE on the next few slides.
How to run your program • 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.
Wing 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.
Turtle-style graphics • 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 typingfrom turtle import *
What can a turtle do? • Moves forward/backward • Turns left or right • Takes a pen with it
Basic turtle control • t = Turtle() – Create a turtle, call itt • t.forward(d) - tellt to walkd steps • t.backward(d) - tellt to walk backwardsd for steps • t.right(a) - tellt to turn right foradegree • t.left(a) - tellt to turn left foradegree • t.penup() – tellt to lift the pen up from the canvas • t.pendown() - tellt to put the pen back to the canvas
Tell the turtle to draw a square • In English: Walk for100steps Turn right90degree Walk for100steps Turn right90degree Walk for100steps Turn right90degree Walk for100steps Turn right90degree
Tell the turtle to draw a square • In Python: 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)
Teach the turtle • You can define new commands using def 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.
Repetitive instructions • 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()
Thinking Corner • Write a program that tells the turtle to draw a equilateral triangle whose sides are 200-step long, on the canvas.
Software required for the first half • Python3.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