# Fall 2006

## 1. Computer Science as a Discipline

• Biology - Study of life in all of its various forms
• Chemistry - Study of chemical elements and their interactions
• Physics - Study of matter
• Computer Science - Study of Computers? Not Quite!
• Computer Science is the study of Computation which includes:
• computer hardware
• design and implementation of algorithms
• analysis of complexity of algorithms (order of growth)
• A science is characterized by the use of the Scientific Method
• Form a Hypothesis
• Design an Experiment to Test Hypothesis
• Carry out the Experiment
• Analyze Results - Do they support Hypothesis?
• Algorithm Creation is an example of this method in Computer Science
• Hypothesis = Problem to be Solved
• What sets CS apart is the subject of study, subject is mainly artificial - do programs exist?
• Linked to some disciplines that are concrete - engineering, psychology
• Linked to some that are quite abstract - mathematics, philosophy

## 2. Computer Science Themes

• As we said above, Computer Science is the study of Computation which includes:
• computer hardware
• design and implementation of algorithms
• analysis of complexity of algorithms (order of growth)
• Thus, Computer Science encompasses hardware, software and theory
• Hardware - CPU, Memroy, IO (Chapter 6, Chapter 14)
• Software - Programs that execute on a computer (JavaScript programs)
• Theory - Analysis of algorithms and general models of computation
• Turing Machine:  Simple theoretical model of a computer
• Tape of cells of infinite length
• Read-write head which can move left and right across the tape
• Machine can store a finite number of "states"
• Example - (Overhead)
• Universality: The Turing Machine (TM) is incredibly simple, yet is the most powerful computing model known to computer scientists. It has been proven that a TM is capable of performing any computation that a modern computer can, given enough time.
• Halting Problem
• Given a program and an input to the program, can we write another program to determine if the given program will eventually stop.
• Turing showed that it is impossible to create a program to test for the stopping (halting) of another program
• Church-Turing Thesis
• Anything that can be computed can be computed by a Turing machine.

## 3. Fields of Study Within Computer Science

• Algorithms and Data Structures
• Public Key Encription, Users have Public Private Keys
• RSA Encryption (Overhead)
• Quantum Encryption
• Architecture
• Physical Nature of Computer
• Parallel Processing
• Speed and Density of chips
• Wireless
• Quantum Computers
• Operating Systems and Networks
• MacOSX, Windows, Linux, ??
• WAN, LAN, Wireless
• Ubiquitous Networks
• Software Engineering
• In Building large-scale software need tools for coordination
• Systems for control of Revision (CVS)
• Systems for describing functionality of software (UML)
• Artificial Intelligence, Robotics
• Turing Test
• A human judge engages in a natural language conversation with two other parties, one a human and the other a machine; if the judge cannot reliably tell which is which, then the machine is said to pass the test. It is assumed that both the human and the machine try to appear human. In order to keep the test setting simple and universal (to explicitly test the linguistic capability of some machine), the conversation is usually limited to a text-only channel.
• Complex Systems
• Vision
• Programming Languages
• Design of more "natural" languages
• Database Systems
• Search and Retrieval
• Search Engines
• Security vs Privacy
• Computer Graphics
• Virtual Reality
• CG in video, gaming
• Realism
• Human-Computer Interaction
• Direct Neural Interface
• Natural Language Interface
• Computational Science
• Scientific Simulation - Molecular Modelling, Weather Forecasting
• MIS - Management and Information Science
• Corporate Management Systems
• BioInformatics
• Human Genome Project
• Virtual Human