Overview
- Computer Science as a Discipline
History of Hardware
- History of the Programming Languages
- Java Capabilities
Computer Science as a Discipline
- Programming
- Theory
- Theory of Computation
- Algorithms
- Programming Languages
- Machine Learning and AI
- Neural Nets
- Genetic Algorithms
- Natural Language Processing
- Expert Systems
- Hardware
- Basic Electronics
- Computer Architecture
- Networking
- System Software
- Operating Systems
- Compilers
- Networking
- Software Applications
- Database Systems
- Virtual Reality
- Graphics
- User Interfaces
- etc, etc, etc .....
Join the Association
of Computing Machinery (ACM) !
Hardware Components
- External Components:
- System Unit
- Motherboard, Disks,
Network Connection, Power
Supply
- Monitor
- Keyboard
- Mouse
- Motherboard
- CPU (ALU, control units, registers, See
Fritz
Ruehr's simulator), memory
(cache, RAM, ROM), bus(es), graphics cards, ....
- Disks
- Floppy Disk, Hard Disk, CD ROM, DVD, Zip Disks, etc

Memory Hierarchy

History of Hardware
- 1642 Mechanical Adder
- Blaise Pascal, Used gears, could add and subtract
- 1670's - Mechanical Calculator
- Gottfried Wilhelm Leibniz, Could add, subtract, multiply and divide
- 1801 - Jaquard's Loom
- Joseph-Marie Jacquard metal punched cards, First "stored program"
program device
- 1822 - Difference Engine
- 183? Analytic Engine
- 1890 - Census
Tabulator
- Herman Hollerith invented modern punched card for use in machine to
help tabulate census. Formed tabulating company that became IBM in 1924.
- 1942 - First Electronic computer
- John Atanasoft at Iowa State University
- 1944 Mark I
- Howard Aiken (supported by IBM). Electromechanical computer. First realization
of Babbage's Analytic Engine.
- 1946 ENIAC (Electronic Numerical Integrator and Computer)
- J.P. Eckert and J.W. Mauchly at U. of Penn. Used18000 vacuum tubes.
Programmed by rewiring circuits. 1000 x faster than Mark I

ENIAC, a general purpose computer, designed and built by Eckert
and Mauchly and
completed in 1946.
- 1951 - UNIVAC (Universal Automatic Computer) Eckert & Mauchly First
commercially available general purpose computer
See IEEE pages for more historical information
Computer Generations
- First - used vacuum tubes - UNIVAC
- second - used transistors - IBM 7090
- third - used integrated circuits - silicon
- fourth - used VLSI
- next generation - biological? neural based ?? quantum??
History of the Programming Languages
- 1940's - Rewire Circuits
- Early 1950's - Machine Language: zeros and ones
- 1950's - Assembly Language
- Symbolic Version of Machine Language, Not Portable. Translated by Assembler
- Late 1950's - FORTRAN,
- Backus at IBM
- FORMula TRANSlator
- First High-Level Programming Language
- First Compiler
- 1960's - Simula
- Elements of Object-Oriented Languages
- 1970's
- Pascal, N. Wirth, Teaching Language
- C
- Language for Systems Programming.
- Small and Fairly Portable.
- Used to Implement Unix on PDP-11.
- Thompson and Ritchie at Bell Labs.
- Small Talk
- Fully Object-Oriented
- Interpreted and Slow
- Xerox Park
- 1980's, C++
- Stroustrup at Bell Labs
- Evolved from C
- Large, Complex but Fairly Portable
- Java Programming Language
- Sun Microsystems 1995
- Evolved from C++ and SmallTalk
- Object-Oriented
- Completely Portable
Java Capabilities
- Simple, Small, Powerful, General Purpose
- Rich Set of Libraries
- Safe
- Object-Oriented
- Multi-Threaded
- Applets and applications
- Network Enabled
- Built-In Windowing System
- Truly Portable, Architecture Neutral
next lecture