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.
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
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)
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
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
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
Schneider, G. Michael, and Judith L. Gersting. Invitation to Computer Science. Cengage Learning, 2019