Introduction to Computer Science Fall 2004, 劉震昌 Ref: Computer Science: an overview J. Glenn...

Preview:

Citation preview

Introduction to Computer Science

Fall 2004, 劉震昌

Ref: Computer Science: an overviewJ. Glenn Brookshear

Outline Concept of computers

Computer software: algorithm Computer hardware: algorithmic machine Turing Machine

5 major components of computers

Computers ?

Hardware

Software

SoftwarePackage(Executable)

SourceProgram

#include <stdio.h>main(){…}

compile

Computers are machines to execute Algorithm

Hierarchy of computer

Program languageEx. C, Java,…

Readable by human

Machine language(instruction set)

Ex. Executable fileReadable by machine

Computer hardware

Computer software: Algorithm 演算法

Computers are machines to execute Algorithm

Fundamental concept of CS Definition of algorithm (1): a set of steps

that defines how a task is performed Definition of algorithm (2): an ordered

set of unambiguous, executable steps that defines a terminating activity

Albert

Baker

Algorithm: example Sorting( 排序 ): sort the cards from top to d

own in alphabetical order

Charlie

Algorithm: sort (cont.)Albert

BakerCharlie

input

Albert

BakerCharlie

AfterStep 1

Charlie

BakerAlbert

AfterStep 2

Charlie

AlbertBaker

AfterStep 3

Write an algorithm: sort

Input: 3 cards in arbitrary order1. Compare the names on the first and second cards. Exchange them if they are out of order.2. Compare the names on the second and third cards. Exchange them if they are out of order.3. Compare the names on the first and second cards. Exchange them if they are out of order.

Output: 3 cards in alphabetical order

Properties of algorithms

Goal: find a single set of directions that describe how any problem could be solved

Algorithm = Programs within computers

The intelligence required to perform the task is encoded in the algorithm

Mini break NCNU webmail system http://webmail.ncnu.edu.tw/

The web-based email system 計算中心 FAQ http://

www.cc.ncnu.edu.tw/net/ccfaq/FAQ.htm Send an email to me with subject : Lab

2 學號

How to devise an algorithm?

1945 Polya, “How to solve it” Phase 1: Understand the problem Phase 2: Devise a plan for solving the probl

em Phase 3: Carry out the plan Phase 4: Evaluate the solution for accurac

y and for its potential as a tools for solving other problems

HW#1.1

1. Write an algorithm to sort 4 cards2. Write an algorithm to sort 5 cardsGive an example for each of your

algorithm.

Write your homework in a well-formed document (.txt, .doc), and send it to me via email.

Computers hardware? Concept of algorithm appeared first Computers are designed to implement algorith

ms Computers (計算機 ,電腦 ) are not smart thems

elves…

+

Development of Algorithmic Machines

Algorithmic machines: machines that perform algorithm tasks

Abacus(算盤 ): ancient Greek and Roman

Blaise Pascal(1623-1662), France

Development of Algorithmic Machines (cont.)

Charles Babbage(1792-1871), England

Herman Hollerith

解多項式

打孔機

1st generation computer 1940

ENIAC

真空管

2nd generation computer 1959

電晶體

3rd generation computer 1965

IC ( 積體電路 )

4th generation computer 1971

VLSI ( 超大積體電路 )

Turing machines

The abstract model of general-purpose algorithmic machines

1936 by Alan M. Turing You will learn more in the class of automa

ta and formal language 自動機與形式語言

Turing machines (cont.)

Controlunit

tape

read/write head

… …

symbols

state of the machines

Components of a Turing machine

A specific Turing machine A Turing machine for incrementing a vlaue

Example:

state=START

1

state=ADD

2

3

state=CARRY

4

state=NO CARRY

state=NO CARRY

5

HW#1.2 Apply the above Turing machine to the

following tape:

Design a Turing machine that decrements the value on the tape if it is greater than 0 or leaves the value unaltered if it is 0.

state=START

11 01

Turing machines (cont.)

Prototype of today’s computer Control unit -> CPU States -> registers Tape cells -> memory Symbols -> 0 and 1

The power of Turing machine If a problem cannot be solved by a Turing

machine, then it cannot be solved by any algorithmic system

John von Neumann machine

In early computing machines, the programs were built as part of the machine

Store-program concept Program, just like data, can be coded and

stored in main memory Control unit extracts the program from

memory, decodes the instructions, and executes them

Some data(bit patterns) were interpreted as instructions -> machine language

Outline Concept of computers

Computer software: algorithm Computer hardware: algorithmic machine Turing Machine

5 major components of computers

Computer hardware

Centralprocessing

unitmemory

Inputdevices

Outputdevices

Auxiliarymemory

Peripherals 週邊

Bus: for data transmission

CPU (central processing unit)

Carry out the instructions in the program

CPU

ALU Controlunit

registers

ALU: arithmetic/logic unit

CPU – control unit

Instruction fetch

Instruction decoding

Instruction execution

Memory read/writetime

Instruction cycle

Memory Main memory

RAM(random access memory) Fast Volatile 揮發

Auxiliary memory Secondary storage Slower Permanent Ex. Hard Disk, CD-ROM

I/O devices Input devices

Keyboard, mouse, … Output devices

Display, printer, …

Overview of computer systems

Hardwaremachines

MS WindowsUnixLinux

Operationsystem

shelldesktop dosUser

Interface

applications

machinelanguage

assemblylanguage

High-levellanguage

compiler

assembler

software

Purpose of this class

Hardwaremachines

MS WindowsUnixLinux

Operationsystem

shelldesktop dosUser

Interface

applications

machinelanguage

High-levellanguage

compiler

software

assemblylanguage

assembler

Recommended