MCS-170 The Nature of Computer Science
Fall 2006
Lecture 12
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.
- 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