100% found this document useful (1 vote)
135 views

Foundations of Computer Science: Cengage Learning

This document provides an introduction to the foundations of computer science. It discusses the Turing model, which described a universal computational device, and the Von Neumann model, which established that programs and data should both be stored in computer memory. The document then outlines the three main components of a computer as hardware, data, and software. It provides a brief history of computers from mechanical machines to modern electronic computers. The document concludes by discussing some social and ethical issues related to computers and providing an outline of the course.

Uploaded by

namchautucongtu
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
135 views

Foundations of Computer Science: Cengage Learning

This document provides an introduction to the foundations of computer science. It discusses the Turing model, which described a universal computational device, and the Von Neumann model, which established that programs and data should both be stored in computer memory. The document then outlines the three main components of a computer as hardware, data, and software. It provides a brief history of computers from mechanical machines to modern electronic computers. The document concludes by discussing some social and ethical issues related to computers and providing an outline of the course.

Uploaded by

namchautucongtu
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 34

1

Introduction

1.1
Foundations of Computer Science Cengage Learning
Outline

Turing model
Von Neumann model
Three components of a computer: hardware, data, and
software
Hardware
Data
Software
Social and Ethical issues related to the use of computers
Short history of computers

1.2
1-1 TURING MODEL

•The idea of a universal computational device: first


described by Alan Turing in 1937

•All computation could be performed by a special kind


of a machine, now called a Turing machine.

•Based on the actions that people perform when


involved in computation.

1.3
Data processors
•Before discussing the Turing model, let us define a
computer as a data processor.

•A computer acts as a black box that accepts input data,


processes the data, and creates output data (Figure 1.1).

•Although this model can define the functionality of a


computer today, it is too general.

Figure 1.1 A single purpose computing machine


1.4
Programmable data processors
•The Turing model is a better model for a general-purpose
computer.
•An extra element: the program.
•Program: a set of instructions that tells the computer what
to do with data.

Figure 1.2 A computer based on the Turing model

1.5
Figure 1.3 The same program, different data
1.6
Figure 1.4 The same data, different programs
1.7
The universal Turing machine
•Universal Turing machine: a machine that can do any
computation if the appropriate program is provided.

•The first description of a modern computer.

•It can be proved that a very powerful computer and a


universal Turing machine can compute the same thing.

•We need only provide the data and the program—the


description of how to do the computation—to either
machine.
•A universal Turing machine is capable of computing
anything that is computable.
1.8
1-2 VON NEUMANN MODEL

•Computers built on the Turing universal machine store


data in their memory.

•Around 1944–1945, John von Neumann proposed


that, since program and data are logically the same,
programs should also be stored in the memory of a
computer.

1.9
Four subsystems
memory, arithmetic logic unit, control unit, and
input/output

Figure 1.5 The von Neumann model


1.10
The stored program concept
•The program must be stored in memory.
•Totally different architecture
•Early computers: data was stored in memory; the programs
for was implemented by manipulating switches or by
changing the wiring system.

•The memory of modern computers hosts both a program


and its corresponding data.
•This implies that both the data and programs should have
the same format
•Binary format—a sequence of 0s and 1s.

1.11
Sequential execution of instructions
•A program in the von Neumann model: finite number of
instructions.
•Control unit: fetches one instruction from memory,
decodes it, then executes it.
•The instructions are executed one after another.

•An instruction may request the control unit to jump.

1.12
1-3 COMPUTER COMPONENTS

We can think of a computer as being made up of three


components: computer hardware, data, and computer
software.

1.13
Computer hardware
Four components: memory, input/output subsystems,
control, ALU.

Data
The von Neumann model: computer-> a data processing
machine that accepts the input data, processes it, and
outputs the result.

1.14
Computer software
•The main feature of the Turing or von Neumann models:
the concept of the program.

•Early computers did not store the program in the memory,


they did use the concept of programs.

•Programming: changing the wiring systems or turning a set


of switches on or off.

•Programming was therefore a task done by an operator


or engineer before the actual data processing began.

1.15
Figure 1.6 Program and data in memory

1.16
Figure 1.7 A program made of instructions

1.17
1-4 HISTORY

The history of computing and computers.

This history is divided into three periods.

1.18
Mechanical machines (before 1930)
Computing machines were invented that bear little
resemblance to the modern computer.

 In the 17th century, Blaise Pascal, a French mathematician and


philosopher, invented Pascaline.

 In the late 17th century, a German mathematician called Gottfried


Leibnitz invented what is known as Leibnitz’ Wheel.

The first machine that used the idea of storage and programming
was the Jacquard loom, invented by Joseph-Marie Jacquard at the
beginning of the 19th century.

1.19
 In 1823, Charles Babbage invented the Difference Engine. Later,
he invented a machine called the Analytical Engine that parallels
the idea of modern computers.
 In 1890, Herman Hollerith, working at the US Census Bureau,
designed and built a programmer machine that could automatically
read, tally, and sort data stored on punched cards.

1.20
The birth of electronic computers (1930–1950)
1930~1950: the pioneers of the electronic computer
industry.

Early electronic computers


•Did not store the program in memory
•Were programmed externally.
•Five computers were prominent during these years:
 ABC
 Z1
 Mark I.
 Colossus
 ENIAC
1.21
Computers based on the von Neumann model
EDVAC :The first computer based on von Neumann’s ideas
made in 1950 at the University of Pennsylvania.

A similar computer called EDSAC was built by Maurice


Wilkes at Cambridge University in England.

1.22
Computer generations (1950–present)
~1950: more or less follow the von Neumann model.
•Faster, smaller, and cheaper, but the principle is almost the
same.
•Historians divide this period into generations with some
major change in hardware or software (but not in the
model).

First generation
(1950–1959) the emergence of commercial computers.

1.23
Second generation
•(1959–1965) used transistors instead of vacuum tubes.

•Two high-level programming languages, FORTRAN and


COBOL invented.

Third generation
•integrated circuit: reduced the cost and size of computers.
•Minicomputers appeared on the market.
•Canned programs, popularly known as software packages,
became available.
•from 1965 to 1975.

1.24
Fourth generation
•(1975–1985) : the appearance of microcomputers.
•The first desktop calculator, the Altair 8800, became
available in 1975.
•Emergence of computer networks.

Fifth generation
•1985~: laptop and palmtop computers
•improvements in secondary storage media (CD-ROM,
DVD and etc.)
•Multimedia, virtual reality.

1.25
1-5 SOCIAL AND ETHICAL ISSUES

Computer science has created some peripheral issues, the


most prevalent of which can be categorized as social and
ethical issues.

1.26
Social issues
Computers have created some arguments.

Dependency
Computers have created a kind of dependency, which makes
people’s lives more difficult.

Social justice
Using computers at home is a luxury benefit that not all
people can afford.
The cost of a computer, peripheral devices, and a monthly
charge for Internet access is an extra burden on low-income
people.
1.27
Digital divide
Electronically connected / not connected

1.28
Ethical issues

Privacy
•Communication between two parties is done electronically.

•Private is necessary.

•Network security may create this type of privacy, but it


needs effort and costs a lot.

1.29
Copyright
•who owns data?
•The Internet: share.
•Electronic copyright.

Computer crime
•New types of crime
•Hackers: access many computers in the world and have
stolen a lot of money.
•Virus: sent through the Internet and damage the
information stored in computers.
•Anti-virus programs: big price.

1.30
1-6 COMPUTER SCIENCE AS A DISCIPLINE

•With the invention of computers, a new discipline has


evolved: computer science.
•Now divided into several areas:
•systems areas
•applications areas.

1.31
1-7 OUTLINE OF THE COURSE

After this introductory chapter, the book is divided into


five parts.

Part I: Data representation and operation


•Chapter 2: number systems
•Chapter 3: how data is stored inside the computer.
•Chapter 4: primitive operations on bits.

1.32
Part II: Computer hardware
•Chapter 5: computer hardware
•Chapter 6: computer networks and internetworks
(internets).

Part III: Computer software


•Chapter 7: operating systems
•Chapter 8: algorithm
•Chapter 9: programming languages
•Chapter 10: software engineering.

1.33
Part IV: Data organization and abstraction
•Chapter 11: data structures
•Chapter 12: abstract data types
•Chapter 13: file structures
•Chapter 14: databases.

Part V: Advanced topics


•Chapter 15: data compression
•Chapter 16: security
•Chapter 17: theory of computation
•Chapter 18: artificial intelligence

1.34

You might also like