Seungkyu Lee - khu.ac.krcvlab.khu.ac.kr/CELecture2.pdf · Seungkyu Lee Assistant Professor, Dept....

Preview:

Citation preview

[CSE10100] Introduction to Computer

Engineering (컴퓨터공학 개론)

Chapter 1

Seungkyu Lee

Assistant Professor, Dept. of Computer Engineering

Kyung Hee University

2

2

Computing systems are dynamic!

What is the difference between hardware

and software?

Computing Systems

3

3

Hardware The physical elements of a

computing system (printer, circuit boards,

wires, keyboard…)

Software The programs that provide the

instructions for a computer to execute

Computing Systems

4

4

Layers of a Computing System

5

5

Abstraction A mental model that removes

complex details

This is a key concept. Abstraction will

reappear throughout the text – be sure you

understand it!

Abstraction

6

Internal View

7

Abstract View

8

6

Abacus

Blaise Pascal

Mechanical device to add,

subtract, divide & multiply

Joseph Jacquard

Jacquard’s Loom,

the punched card to select

Color/design of a cloth

Charles Babbage

Analytical Engine has memory

Early History of Computing

9

7

Ada Lovelace

First Programmer

Alan Turing

Turing Machine, Artificial Intelligence Testing

Harvard Mark I, ENIAC, UNIVAC I Early computers launch new era in mathematics, physics, engineering and economics

Early History of Computing

10

8

Vacuum Tubes

Large, not very reliable, generated a lot of heat

Magnetic Drum

Memory device that rotated under a read/write

head

Card Readers Magnetic Tape Drives

Sequential auxiliary storage devices

First Generation Hardware (1951-1959)

11

9

Transistor

Replaced vacuum tube, fast, small,

durable, cheap

Magnetic Cores

Replaced magnetic drums, information available

instantly

Magnetic Disks

Replaced magnetic tape, data can be accessed

directly

Second Generation Hardware (1959-1965)

12

10

Integrated Circuits

Replaced circuit boards, smaller, cheaper, faster,

more reliable

Transistors

Now used for memory construction

Terminal

An input/output device with a keyboard and

screen

Third Generation Hardware (1965-1971)

13

Large-scale Integration

Great advances in chip technology

PCs, the Commercial Market, Workstations

Personal Computers and Workstations emerge

New companies emerge: Apple, Sun, Dell …

Laptops, Tablet Computers, and Smart

Phones

Everyone has his/her own portable computer

Fourth Generation Hardware (1971-?)

14

1

2

Parallel Computing

Computers rely on interconnected central processing

and/or memory units that increase processing speed

Networking

Ethernet connects small computers to share

resources

File servers connect PCs in the late 1980s

ARPANET and LANs Internet

Parallel Computing and Networking

15

1

3

Machine Language

Computer programs written in binary (1s and 0s)

Assembly Languages and Translators

Programs written using mnemonics, which were

translated into machine language

Programmer Changes

Programmers divide into two groups: application

programmers and systems programmers

First Generation Software (1951-1959)

Why We Need High-Level Language

• Machine language: A binary-based language that a machine can understand

– Not human friendly

– Hardware dependent

Why We Need High-Level Language

• Assembly language: a one–to–one correspondence from a binary machine instruction to a more human-friendly mnemonics.

– Still quite hard for human programmers to develop big, structured program.

– Still hardware dependent

18

Assembly/Machine

Systems programmers

write the assembler

(translator)

Applications programmers

use assembly language to

solve problems

19

1

4

High-level Languages

English-like statements made programming

easier:

Fortran, COBOL, Lisp

Second Generation Software (1959-1965)

Systems

programmers

write translators for

high-level languages

Application

programmers

use high-level

languages to

solve problems

Why We Need High-Level Language

• High level language

– Getting away from hardware one code can be used for many different computers

– Strong abstraction from the details of the computer higher programming efficiency

– Natural language element easier to understand

The only language understood by a

computer is machine language.

Note:

22

1

5

Third Generation Software (1965-1971)

Systems Software

Utility programs

Language translators

Operating system, which decides which programs to run and when

Separation between Users and Hardware

Computer programmers write programs to be used by general public (i.e., nonprogrammers)

23

1

6

Third Generation Software (1965-1971)

24

1

7

Structured Programming

Pascal

C++

New Application Software for Users

Spreadsheets

Word processors

Database management systems

Fourth Generation Software (1971-1989)

25

1

8

Microsoft

Windows operating system and other Microsoft application

programs dominate the market

http://www.youtube.com/watch?v=Z_Ae7J6AVGA

Object-Oriented Design

Based on a hierarchy of data objects (i.e. Java)

World Wide Web

Allows easy global communication through the Internet

HTML, Mosaic

New Users

Today’s user needs no computer knowledge

Fifth Generation Software (1990- present)

26

Programmer / User

Applications Programmer

(uses tools)

User with No

Computer Background

Systems Programmer

(builds tools)

Domain-Specific Programs

Computing as a Tool

27

2

1

Computing as a Discipline

What can be (efficiently) automated?

Four Necessary Skills • Algorithmic Thinking

• Representation

• Programming

• Design

28

Is Computer Science a mathematical,

scientific, or engineering discipline?

2

2

What do you think?

Computing as a Discipline

29

2

3

Examples of Systems Areas

• Algorithms and Data Structures

• Programming Languages

• Architecture

• Operating Systems

• Software Engineering

• Human-Computer Communication

30

2

4

Examples of Application Areas

• Numerical and Symbolic Computation

• Databases and Information Retrieval

• Intelligent Systems

• Graphics and Visual Computing

• Net-Centric Computing

• Computational Science

Recommended