Chapter 1

Introduction to Computer Science

By the end of this chapter, you will be able to recount the defintion of computer science, history of computer, and the diffrent generations of computers.

Misconceptions about CS

The below "definitions" are false

CS is the study of computers

This definition is incomplete as cs has many branches

CS is the study of how to write computer programs

CS is not only the writing of computer programs but also the methods, services it provides and the results that it produces

CS is the study of the uses and application of computers and software

CS also includes specifying, designing, building, and testing programs


Definition of Computer Science

Inorder to understand Computer Science, we must first understand Algroithms

Algorithm: a well ordered collection of unambiguous/clear and effectively computable operations that reach a result in a finite period of time

Thus, Computer Science is a study that works in:

I. Studying the behavior of algorithms to determine if they are correct and efficient (formal and mathematical properties)

II. Designing and building computer systems that are able to execute algorithms (hardware realizations)

III. Identifying important problems and designing correct and efficient software packages to solve problems (applications)

IV. Designing programming languages and translating algorithms into these languages so they can be executed by the hardware (linguistic realization)


History of CS

Early History

Greeks → Geometry & Logic

Babylonians/Egyptians → numerical methods to calculate square roots, multiplication tables, and trigonometric tables

Used by early sailors

Indians → base 10 numbering system and the concept of zero

Persians → algorithmic problem solving

Al-Jabra → Algebra & Algorithms

Napier → Logarithms

Issac Newton → calculus


Early Machines

Pascal → one for the first mechanical calculators (addition and subtraction)

Leibnitz → constructed a mechanical calculator that could also perform multiplication and division

These two calculators did not have memory where info can be stores in machine readable form

These two calculators were not programmable such that instructions could be provided in advance

Jacquard → first “computing device to have both two features in the form of a mechanical loom

Utilized punch cards

Hollerith → first programmable multi-purpose machine for US census

Utilized punch cards and also had memory

Hollerith later founded IBM

Babbage → “first programmable mechanical calculator”

Created the DIfference Engine and designed the Analytical Engine

Ada Lovelace helped design the Analytical Engine

Regarded as “first computer programmer”

Mark I → first electro-mechyanical computer using gears and relays

First computing device to use base 2 binary numbering system

Considered one of the first working general purpose computers

ENIAC → first fully electronic general purpose programmable computers

Building sized and contained 18000 vacuum tubes

ABC system (Atanasoff-Berry Computer) → first electronic computer

Colossus → computer created by Alan Turing that cracked the German Enigma code

Turing realized programs could be made by data thus any info can be stored as data




Von Neumann

Designed the stored program computer model

Computers back then were programmed externally through wires, connectors, and plugboards

Memory unit only stored data, not instructions

Every time a new problem needed to be solved, the computer had to be rewired

Instead of external programming Von Neumann proposed instructions of the computer to be encoded as binary values and stored in the memory unit with data

To solve new problems, users only have to create a new program or rewrite the sequence of instructions


Computer Generations

Schneider, G. Michael, and Judith L. Gersting. Invitation to Computer Science. Cengage Learning, 2019