Top Banner
Welcome to COSC 1302 Introduction to Computer Science
51

Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

Apr 10, 2018

Download

Documents

truongkien
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

Welcome to COSC 1302

Introduction to Computer Science

Page 2: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

(Syllabus)

Page 3: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

Chapter 1

The Big Picture

Page 4: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

1.1 Computing Systems

43

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

Page 5: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

Layers of a Computing System

54

Page 6: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

Abstraction

65

Abstraction = mental model that removes

complex details

Page 7: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

Internal View(lots of details)

7

Page 8: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

Abstract View(few details)

8

Page 9: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

Abstraction

95

Abstraction is a key concept.

It will reappear throughout this class (and

the rest of your life!) Make sure you grok it!

Grok - Wikipedia

Page 10: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

QUIZ

105

Explain the abstractions we normally apply when

using the following systems:

DVD player

Registering for classes on DuckTrax

Walking

In each case, explain what is the internal view

and what is the abstract view.

Page 11: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

1.2 History of computing

11

Page 12: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

Early History of Computing

126

Abacus (about 1600 BC, or even 2700-2300 BC) = early device

to record numeric values and perform addition and subtraction

manually

Blaise Pascal 1642

The Pascaline = mechanical device to add and subtract

automatically.

Gottfried Leibniz 1672

The Stepped Reckoner = mechanical device to add, subtract,

divide & multiply.

Leibniz anticipated many of the hardware and software concepts

developed later by Babbage & Lovelace. He invented binary

notation!

Joseph Jacquard 1801

The Jacquard Loom. He invented punched cards!

Page 13: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

Early History of Computing

137

Charles Babbage

• 1822: Difference Engine

• 1837-71: Analytical Engine

Ada Lovelace, the "Enchantress of numbers"

• 1843: Invented the loop (to calculate Bernoulli

numbers).

• She’s considered the first programmer!

William Gibson & Bruce Sterling: The Difference Engine

Doron Swade: The Difference Engine, Cogwheel Brain

Page 14: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

Early History of Computing

147

Herman Hollerith

• Tabulating machine used for 1890 U.S. Census.

• This is the official birthday of the data processing industry.

• The term Super Computing was first used by the New

York World newspaper in 1931 to refer to a large custom-

built tabulator that IBM made for Columbia University [Source: Wikipedia: Tabulating_machine]

Page 15: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

What to do for next class?(a.k.a. Individual work)

• Read pages 2-11 of our text and write in your notebook three facts not mentioned in class.

• Answer end-of-chapter Exercises 1-7, and 9 in the notebook.

• Answer end-of-chapter Thought Question 1 in the notebook:

Identify 5 abstractions in our school environment. For each,

indicate some of the details hidden by the abstraction, and how

the abstraction helps manage complexity.

15

Page 16: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

QUIZ

165

1. True or False? Computer software is the collection of

programs that provide the instructions that a computer

carries out.

2. True or False? An abstraction is a mental model that

removes or hides complex details.

3. True or False? The abacus was the world's first

electronic digital computer.

4. True or False? Ada Augusta, Countess of Lovelace, is

credited with being the first programmer.

Page 17: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

QUIZ

175

• What is hardware?

• What is software?

What is an abstraction and why do we need

abstractions in CS?

What is the internal/physical view ?

What is the external/abstract view?

Page 18: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

185

Match each inventor with his/her invention(s):

Pascal …’s Loom

Leibniz Programming Loop

Jacquard Punched Cards

Babbage Difference Engine

Lovelace Stepped Reckoner (+-*/)

Binary Code

Mechanical + and –

Analytical Engine

Page 19: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

Alan Turing and WWII computers

197

Bletchley Park• German Enigma machine and British Bombe computers

• German Lorentz machine and British Colossus

computers (Mark I, Mark II) – first electronic, digital,

programmable computers

Alan Turing1936: Turing Machine, Artificial Intelligence Testing (the

Turing test)

Neil Stephenson: Cryptonomicon

"On Computable Numbers, with an

Application to the Entscheidungsproblem"

(decision problem)

Page 20: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

Rejewski was the first who broke an Enigma code, and designed

the first “Bombe”

Page 21: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

Colossus Mark I

217

Page 22: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

Computers after WWIILate 40s and 50s

227

John von Neumann1945: Stored-program computer, a.k.a. the von Neumann

architecture

ENIAC, EDVAC, UNIVAC I

Univac I was delivered to the US Bureau of the Census

At the end of WWII, these early computers launched a new era in mathematics, physics, engineering and economics!

Page 23: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

A (very) brief history of the hardware

Page 24: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

First Generation Hardware (1951-1959)

248

Vacuum TubesLarge, not very reliable,

generate a lot of heat

Magnetic Drum

Memory device that rotated under a read/write

head

Card Readers Magnetic Tape Drives

Sequential auxiliary storage devices

Page 25: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

Second Generation Hardware (1959-1965)

259

TransistorReplaced vacuum tube, fast, small,

durable, cheap

Magnetic Cores

Replaced magnetic drums, information

available instantly

Magnetic Disks

Replaced magnetic tape, data can be accessed

directly

Page 26: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

Third Generation Hardware (1965-1971)

2610

Integrated Circuits (ICs)Replaced circuit boards, smaller

cheaper, faster, more reliable

Transistors

Now used for memory construction

Terminal

An input/output device with a keyboard and

screen

Page 27: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

Fourth Generation Hardware (1971-2001)

2711

Large- and Very Large Scale Integration (LSI, VLSI)

Great advances in chip technology

PCs, the Commercial Market, Workstations

Personal Computers and Workstations emerge

New companies emerge: Apple, Sun, Dell …

Laptops

Everyone has his/her own portable computer

Page 28: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

Fourth Generation Hardware (1971-2001)

2811

Intel released the world’s first integrated

CPU – the 4004 – in 1971.

Image source: https://en.wikipedia.org/wiki/Intel_4004

• 2300 transistors

• Each transistor was 10 mm

(microns) across.

• 17 4-bit data registers (one accumulator

+ 16 “scratch-pad”)

• Instructions were already

represented on 8 bits.

Not in text

Page 29: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

Fourth Generation Hardware (1971-2001)

2911

Next year, the Intel 8008 was released.

Image source: https://en.wikipedia.org/wiki/Intel_8008

• 3500 transistors

• Each transistor was still 10 mm

(microns) across.

• 9 8-bit data registers (two accumulators + 7

“scratch-pad”)

• Instructions still represented on 8 bits.

Not in text

Page 30: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

Fifth Generation Hardware (2001-today)

3011

Multi-core processors

IBM Power4, released in

2001, had 2 cores in the

same chip.• 174 million transistors

• Each transistor was 0.18 mm

(microns) across.

Not in text

Page 31: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

QUIZ

Connect each generation of computer hardware with its defining technology:

1st Gen. ICs (SSI, MSI)

2nd Gen. Multi-core processors

3rd Gen. LSI, VLSI

4th Gen. Vacuum tubes

5th Gen. Transistors

31

Page 32: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

Beyond the isolated computer

3212

Parallel ComputingComputers rely on interconnected central processing

and/or memory units that increase processing speed

Computer Networks• WAN technology started in 1969 with the ARPANET

• LAN technology started in 1973 with the Ethernet

WANs and LANs Internet

Wide-Area

Network

Local-Area

Network

Page 33: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

A (very) brief history of the software

Page 34: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

First Generation Software (1951-1959)

3413

a.k.a.

low-level

languages

(Ch.6)

Machine LanguagesComputer programs written in binary (1s and

0s)

Assembly Languages and AssemblersPrograms written using mnemonics, which

were translated into machine language

Page 35: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

Second Generation Software (1959-1965)

3514

High-level Languages

English-like statements (print, for, while, if …

then … else, etc.) made programming easier

• Examples: Fortran, COBOL, Lisp

Page 36: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

Third Generation Software (1965-1971)

Systems Software

Operating system (OS), which decides:

• Which programs to run and when

• What resources to allocate to each program

• What utility programs to call (e.g. loaders, linkers)

Programs are created to be used by nonprogrammers, e.g. SPSS.

3615

Page 37: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

Fourth Generation Software (1971-1989)

3717

New high-level languages for structured

programming

Pascal, C, C++, …

Lots of New Applications for Users

• Spreadsheets

• Word processors

• Database management systems (DBMS)

Page 38: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

Fifth Generation Software (1990- present)

3818

Object-Oriented ProgrammingBased on a hierarchy of data objects (e.g. Java, Python)

World Wide Web• Allows easy global communication through the Internet

• Single-handedly invented by a physicist, along with the

HTML and the first browser!!

Microsoft and the OFFICE SUITE

Page 39: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

Sixth Generation Software (?) (2000- present)

3918

Component-Oriented Programming• Aims to enhance code reusability (80% of software

development is maintenance of old code!)

• The component model specifies how interfaces should

be defined and the elements that should be included in

an interface definition.

Examples of component models:

• Enterprise JavaBeans (EJB)

• Component Object Model (COM)

• .NET

• Common Object Request Broker Architecture (CORBA)

Page 40: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

QUIZ

Connect each generation of computer software with its defining technology:

1st Gen. OOP

2nd Gen. Structured progr.

3rd Gen. Systems software (OS)

4th Gen. Component-oriented progr.

5th Gen. Machine and assembly progr.

6th Gen. High-level programs40

Page 41: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

4116

Software has its own “Onion diagram”. Remember abstractions!

Page 42: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

SKIP:• Computing as a Discipline• Computing as a Tool• Areas of Computer Science

Page 43: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

Who am I?

43

Read Ada’s bio on pp.13-14

Page 44: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

Ethical Issues

What is “The Tenth Strand”?

• Read pp.27-28 in our text.

• For more info, follow link on our webpage!

44

Page 45: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

Chapter review questions

• Describe the layers of a computer system

• Describe the concept of abstraction and its relationship to computing

• Describe the history of computer hardware and software (only the material covered)

• Why is Ada Lovelace important to CS?

• Explain the “tenth strand”

4525

Page 46: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

Individual workTo do by next class, before starting to work

on homework:

• Read the entire Chapter 1

• Read Ada Lovelace’s bio

• Read Ethical Issues: The Tenth Strand

• Give brief answers to the chapter review questions

• Answer end-of-chapter questions 1 – 38 in your notebook

46

Page 47: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

HomeworkDue next Wed, Sep 6:

• End-of-chapter ex. 50 – 59

• End-of-chapter thought question 3 (paragraph-length answer required)

The latest homework assigned is always available on the course webpage: www.agapie.net

47

Page 48: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

Quizzes for printing

Page 49: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

495

Match each inventor with his/her invention(s):

Pascal …’s Loom

Leibniz Programming Loop

Jacquard Punched Cards

Babbage Difference Engine

Lovelace Stepped Reckoner (+-*/)

Binary Code

Mechanical + and –

Analytical Engine

Page 50: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

QUIZ

Connect each generation of computer hardware with its defining technology:

1st Gen. ICs (SSI, MSI)

2nd Gen. Multi-core processors

3rd Gen. LSI, VLSI

4th Gen. Vacuum tubes

5th Gen. Transistors

50

Page 51: Welcome to COSC 1302 Introduction to Computer Science · Early History of Computing 12 6 Abacus (about 1600 BC, or even 2700-2300 BC) = early device to record numeric values and perform

QUIZ

Connect each generation of computer software with its defining technology:

1st Gen. OOP

2nd Gen. Structured progr.

3rd Gen. Systems software (OS)

4th Gen. Component-oriented progr.

5th Gen. Machine and assembly progr.

6th Gen. High-level programs51