Some of these slides are based on material from the ACM Computing Curricula 2005
Science? ◦ Do computer scientists do experiments? (hypothesis, test, evaluate) Art? ◦ Are there creative elements in computer science? Engineering? ◦ Do computer scientists build things? Math? ◦ Abstraction? A combination of some or all of these? Something else?
Theory? Practice? Infrastructure? Configuration? Development? Management?
Systems? Applications? People? Hardware? Software?
Talk to clients and each other Build systems (hardware and software) Research possible approaches, tools Gather requirements for a system Analyze requirements Develop test cases for a system Design solution systems Design interfaces Implement solution systems Integrate systems Maintain systems (bug fixes, enhancements)
Association of Computing Machinery (ACM) has defined several versions of Computing Curricula CC 2005 lists 5 sub-areas of computing: ◦ Computer Science ◦ Computer Engineering ◦ Information Systems ◦ Information Technology ◦ Software Engineering rric_vols/CC2005-March06Final.pdf rric_vols/CC2005-March06Final.pdf
From CC 2005
When was the computer invented?
Depends on what you mean by “computer”…
Bones, other objects for counting – B.C. Abacus (counting and calculating) – 3 rd century A.D. John Napier’s logarithmic tables, slide rule – 1600’s Blaise Pascal’s machine (addition) – 1640’s Gottfried Leibniz’s mechanical calculator – 1673 Joseph Jacquard’s loom (punched metal cards) Charles Babbage ◦ Difference Engine (specialized) designed – 1820’s ◦ Analytical Engine (generalized) designed – 1830’s
“Mill” – processor “Store” – memory Also, concepts of: ◦ Input and output ◦ Generalized program execution “We may say most aptly that the Analytical Engine weaves algebraical patterns just as the Jacquard-loom weaves flowers and leaves” – Ada, Countess of Lovelace
Herman Hollerith, statistical tabulator for the U.S. Census Bureau, using paper punch cards for data – 1890 ◦ Later created company named International Business Machines Corporation Quiet period until 1940’s Mark 1 – mathematical computer with electro-mechanical relays, 1943 John von Neumann – computer design with input, output, memory, control, and arithmetic/logic unit, 1945 ENIAC, built by J. Presper Eckert and John Mauchly – first large-scale electronic (vacuum tubes) digital computer, 1946 First transistor – John Bardeen, William Shockley, and Walter Brattain, 1947 UNIVAC, first commercial computer, sold in 1951
1940s and early 1950’s – 1 st Generation (vacuum tubes, very large systems, programming in machine language) – 2 nd Generation (transistors, large systems, assembly language) – 3 rd generation (integrated circuits, high level languages (e.g. FORTRAN, C) 1971 – present – 4 th generation (microprocessors, new high level languages (e.g. C++, Java, C#) plus 4GL’s (e.g. Structured Query Language for database systems)