1 Core Ingredients of Computing A “universal” machine Programmability Binary Code (everything stored as “0” or “1”) Program and Data are interchangeable Electronic Components
2 200 BC - todayAbacus- ~1670Leibniz’ “Rechenmaschine” Fixed calculations +, -, *, /, sqrt ~1750Jacquard’s LoomPunch Tape 1820Babbage’s “Difference Engine” Fixed Table Calculation 1838Babbage’s “Analytical Engine” Program & Data separate 1841Ada Byron, Lady Lovelace First program (Bernoulli- Numbers) Early Computing History in a Nutshell
3 Leibniz’s Step Reckoner Gottfried von Leibniz 1670 Add, subtract, multiply, divide, square roots
4 Jacquard’s punch card Joseph Marie Jacquard 1804 punch cards used to operate loom
5 Babbage’s analytical engine Charles Babbage ( ) Design for the analytical engine Programmable, but mechanical. Data+Program separate
6 The World’s First Programmer Lady Ada Augusta Byron, Countess of Lovelace ( ) ( )
7 200 BC - todayAbacus- ~1670Leibniz’ “Rechenmaschine” Fixed calculations ~1750Jacquard’s LoomPunch Tape 1820Babbage’s “Difference Engine” Fixed Table Calculation 1838Babbage’s “Analytical Engine” Program & Data separate 1841Ada Byron, Lady Lovelace First program (Bernoulli- Numbers) Early Computing History in a Nutshell First universal programmable machine
8 1886HollerithPunch Cards 1936Zuse Z1Relais Zuse Z3/Z4“Plankalkül” 1944Mark IPartly mechanic 1943ColossusNot universal 1946EniacProgrammable with Re-wiring 1949Manchester Universal Computer Cathode-Ray Tube Memory The Ancestors Binary code universal Integration: fully electronic binary Programmable universal electronic
9 Hollerith’s Tabulating Machine Herman Hollerith ( ) Invented a punched card device to help analyse the 1890 US census data Founded “Tabulating Machine Company” – Tabulating Machine Company merges with others to form IBM Binary but not really programmable
10 Konrad Zuse 1936: Z1 first binary computer using Erector Set parts, keyboard and lights for output (relay memory) 1938: Z2 – using punched tape and relays Z1 Z3:fully binary, fully programmable, but partly mechanical
11 Colossus 1943 British Colossus – (1,500 vacuum tubes) –Decipher enigma coded messages at 5,000 chars/sec –At peak, 10 machines ran 24 hours a day in Bletchley Park A German enigma coding machine Fully electronic, but not universally programmable
12 Harvard Mark Aiken at Harvard/IBM “Mark 1” – first electromechanical digital computer (electromagnetic relays – magnets open and close metal switches) (recreation of Analytical Engine) –8 ft tall, 50 ft long, 1 million parts –323 decimal-digit additions per sec –storage for digit numbers. Universal, fully programmable But partly mechanical
13 ENIAC (1946) 18,000 tubes, 1500 sq ft Programmed by wire plugs into panels –5,000 decimal-digit additions/sec –20 10-decimal digit “accumulators” Von Neumann and ENIAC Fully electronic, programmable But extensive-wiring required
14 Experminental MUC (1949) 1941 Von Neumann proposes EDVAC – Electronic Discrete Variable Computer Computer should –Use binary –Have stored programs –Be function-oriented Team Members from Bletchley Park and EDVAC/ENIAC Collaborate Add CRT display memory First fully electronic universal computer
15 Transistor Base Collector Emitter “semi-conductor” Binary digit or “bit”: 0 off 1 on “Water Transistor ”
16 Transistor (cont) Base Collector Emitter off : 0
17 Transistor Base Collector Emitter on : 1
18 Transistor Base Collector Emitter Modern-day “chips” (about 3 x 3 mm in size) can contain millions of transistors
19 Gates Gate: a group of transistors Gates are switches that distinguish between two electrical voltages: –Current is low => 0 –Current is high => 1 Types: AND Gate OR Gate NOT Gate
20 AB A AND B A B A B Example: AND Gate
21 Gates and Boolean Algebra AB AND Gate A AND B A OR B OR Gate
22 Gates and Boolean Algebra (cont) A 0 1 NOT A NOT Gate
23 Gates and Boolean Algebra (cont) A = A sequence of bits at a time: B = A AND B = Most PCs do 32 bits at a time (“32-bit machines”), others as many as 128 bits at a time
24 Gates are the basic building blocks of computers 0 or 1
25 Hardware Components of a Typical Computer Peripheral Devices Central Processing Unit (CPU) Memory "Buses" allow components to pass data to each other
26 Hardware Components of a Typical Computer -- CPU Central Processing Unit (CPU) performs the basic operations consists of two parts: –Arithmetic / Logic Unit (ALU) - data manipulation –Control Unit - coordinate machine’s activities Memory Peripheral Devices Central Processing Unit (CPU)
27 Hardware Components of a Typical Computer -- Memory Main Memory holds programs and data stores bits in fixed-sized chunks: “word” (8, 16, 32, or 64 bits) each word is stored in a cell, which has a unique address the cells can be accessed in any order => random-access memory or “RAM” Peripheral Devices Central Processing Unit (CPU) Memory
28 Bits, Bytes, Kilo-, Mega-, Giga-, … A bit: 0 or 1 A word: chunk of bits (8, 16, 32 or 64 bits) a byte = 8 bits a kilobyte = 2 10 bytes = 1024 bytes a megabyte = 1024 KB = 2 20 bytes = 1,048,576 bytes a gigabyte = 1024 MB = 2 30 bytes a terabyte = 1024 GB = 2 40 bytes
29 Hardware Components of a Typical Computer -- Peripherals Peripheral Devices Central Processing Unit (CPU) Memor y Peripheral devices – communicate with the outside world store data long term
30 Hardware Components of a Typical Computer – Peripheral Devices that Communicate with the Outside World Peripheral Devices Central Processing Unit (CPU) Memor y Input/Output (I/O) –Input: keyboard, mouse, microphone, scanner, sensors (camera, infra-red), punch-cards –Output: video, printer, audio speakers, etc Communication –modem, ethernet card
31 Hardware Components of a Typical Computer – Peripheral Devices that Store Data Long Term Secondary (mass) storage Stores information for long periods of time as files Examples: hard drive, floppy disk, tape, CD-ROM (Compact Disk Read-Only Memory)
32 Family Tree of Programming Languages