Computer Science DSC 4AI What is Computer Science? The discipline that seeks to build a scientific foundation for a variety of topics including: • • • • computer device design computer programming information processing algorithmic solutions to problems Areas of Overlap • • • • • • Mathematics Physics Biology Chemistry Psychology Sociology • • • • • • Geography Art Music Medicine Communication Business History - 1940s • Von Neumann – modern digital computer design – first modern computer (ENIAC) • Theoretical C.S. – Turing • definition of generic computer • Turing test for AI – Church • what problems can and can’t be solved History - 1950s • Computer design – increased power and size • Languages – Assembler, Fortran • AI – language translation problem – Lisp • Applications – Cobol History - 1960s • Hardware design – solid state and ICs more reliability, power – I/O devices • Operating Systems – multi-tasking • Languages – software engineering vs. programming as art • Applications – DBMS History - 1970s • Hardware design – IC PC – supercomputers – telecommunications / networks • Languages – struggle with design / structured methods – Ada • Application – Fifth Generation Project History - 1980s • Theoretical C.S. revisited – parallel and distributed processing • Hardware design – continues rapid advance multimedia • Languages – wide adoption of OOP (started in 1967) • Application – embedded systems – client-server History - 1990s • Hardware design – ever increasing power – driven by gaming • Languages – hacking • Applications – Internet Topics - Hardware • Data Manipulation – stored program concept – other architectures • Data Representation – integer, characters, decimals, fractions, images, sound Topics - Hardware • Communication – – – – CRC and error correcting codes data compression & information theory computer/peripheral client-server architecture Topics - Software • OS – architecture – competition among processes – networks and protocols • Algorithms – representation – efficiency – correctness Topics - Software • Languages – – – – parallel computing declarative programming functional programming logic programming • Engineering – techniques & design disciplines – UML Topics - AI • • • • • • • • Fuzzy logic reasoning control systems heuristics neural nets cellular automata self-replicating computers vision & pattern recognition Topics - Theory of Computation • • • • • • • Finite state machines Turing machine & halting problem computable functions noncomputable functions complexity measurement problem classification complexity & chaos Topics - Thermodynamics of Computing • reversible computation • Quantum computation Resources • The Art & Craft of Computing; Ceri, Mandriolli, Sbattella • Computer Science, An Overview; Brookshear • Feynman Lectures on Computation; Feynman • The Turing Omnibus, Dewdney Resources • Islands of Truth, Peterson • The Pattern on the Stone, simple ideas that make computers work; Hillis • Mind Children, the future of Robot and Human Intelligence; Moravec • The Emperor’s New Mind, concerning computers, minds and the laws of physics; Penrose Resources • Dreams of Reason, The Computer and the Rise of the Sciences of Complexity; Pagels • Chaos, Making a new Science; Gleick