Chapter 1 -- An Introduction to Computing Some definitions

Chapter 1 -- An Introduction to Computing
Some definitions:
-- Hardware – physical devices that make up the machine
What are some examples?
-- Software – collection of programs that provide the instructions that are executed by the computer
What are some examples?
-- Computing System – hardware, software and data that interact to solve a problem
-- Data – unprocessed facts vs. information – data that has been processed into something
Useful – to support decision-making
Consider the college application process, what is the difference between data and information?
What type of data did you supply on your college application what type of information do you
Suppose was generated by the admissions in using that data?
Layers of a Computing System
-- information here should probably be labeled data representation – how is data represented on a
computer? – in binary form
-- hardware – physical devices – gates and circuits
-- programming – creating the instructions that the computer will execute – purpose? – to solve
problems! -- can be done in a variety of languages
-- operating system – manages the computer’s resources – very important in understanding computer
-- applications – how the user takes advantage of computer’s abilities – the application is the problem
that was solved – many subareas (information systems, artificial intelligence, simulation, games)
-- communications – computers connected by networks to share information and resources
Another important term in computing – Abstraction – concept or idea not associated with any
particular instance – mental model that removes all complex details – use abstractions all the time in
daily life – pick any machine – describe the “abstraction”
Abstractions are used extensively in computer science – hardware, hardware design, software and
software design…
History of Computing
Hardware and some famous people
-- Abacus - An early device to record numeric values
-- Blaise Pascal - Mechanical device to add, subtract, divide & multiply
-- Joseph Jacquard - Jacquard’s Loom, the punched card
-- Charles Babbage - Analytical Engine
-- Ada Lovelace - First Programmer, the loop
-- Alan Turing - Turing Machine, Artificial Intelligence Testing (youtube video)
-- Harvard Mark I, ENIAC, UNIVAC I - Early computers launch new era in mathematics, physics,
engineering and economics
Generations were used to categorize hardware (and software) based on the technology being used…
First Generation Hardware (1951-1959)
-- 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
*** All input/output/storage
devices now known collectively
as Peripheral devices
Second Generation Hardware (1959-1965)
-- Transistor - Replaced vacuum tube, fast, small, durable, cheap
-- Magnetic Cores - Replaced magnetic drums, information
*** this was kind of a
available instantly
boring generation
-- Magnetic Disks - Replaced magnetic tape, data can be accessed directly
Third Generation Hardware (1965-1971)
-- Integrated Circuits - Replaced circuit boards,
smaller, cheaper, faster, more reliable
-- Transistors - Now used for memory construction
*** introduced to Moore’s Law
which says, “Number of circuits
placed on single integrated
circuit doubles each year”!!
-- Terminal - An input/output device with a keyboard and screen
Fourth Generation Hardware (1971-?)
-- Large-scale Integration - Great advances in chip technology
*** Moore’s Law NOW states that, “Computers
-- PCs, the Commercial Market, Workstations - Personal Computers
and Workstations emerge - New companies emerge: Apple, Sun, Dell …
will either double in power at the same price or
halve in cost for the same power every 18
-- Laptops, Tablet Computers, and Smart Phones - Everyone has
his/her own portable computer
Parallel Computing and Networking
-- Parallel Computing - Computers rely on interconnected central processing
and/or memory units that increase processing speed (SIMD vs MIMD)
-- Networking - Ethernet connects small computers to share resources - File
servers connect PCs in the late 1980s
-- ARPANET and LANs  Internet (original diagram Arpanet)
First Generation Software (1951-1959)
-- 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
Third Generation Software (1965-1971)
-- Systems Software - Utility programs like loaders and
linkers - Language translators (assemblers/compilers) Operating systems, which decides which programs to run
and when – time-sharing allowed better use of machines
-- Separation between Users and Hardware - Computer
programmers write programs to be used by general public
(i.e., nonprogrammers)
Fourth Generation Software (1971-1989)
-- Structured Programming – Pascal, C++
-- New Application Software for Users – Spreadsheets, Word processors, Database management systems
Fifth Generation Software (1990- present)
-- Microsoft - Windows operating system and
other Microsoft application programs dominate
the market
-- Object-Oriented Design - Based on a hierarchy
of data objects (i.e. Java)
-- World Wide Web - Allows easy global
communication through the Internet
-- New Users - Today’s user needs no computer
Computing as a Discipline - top 10 reasons for majoring in Computer Science
-- Four Necessary Skills
• Algorithmic Thinking
Homework #1
• Representation
• Programming
pg. 30-31 – #41, 46, 54, 56,58
• Design
Examples of Systems Areas
• Algorithms and Data Structures
• Programming Languages
• Architecture
• Operating Systems
• Software Engineering
• Human-Computer Communication
Also provide a 1-sentence definition of each
Examples of Systems Areas and each
Examples of Applications Areas
Examples of Application Areas
• Numerical and Symbolic Computation
• Databases and Information Retrieval
• Intelligent Systems
• Graphics and Visual Computing
• Net-Centric Computing
• Computational Science