Caltech Logo

Computation, Computers, and Programs

2002-2003
An introduction to fundamental
concepts in computer science

Computer Science Department
California Institute of Technology

Course Description

This course focuses on the fundamental underpinnings of computer science. Topics include abstract models of computation, the limits of computation, analysis of algorithms, formal languages, automata theory, graph theory, logic, combinatorics, numeric and symbolic computation, and program translation and semantics. Practical examples are drawn from diverse areas such as computational geometry, numerical analysis, computational logic, and compiler design. Course work is both theoretical and practical, with assignments involving both proofs and programs. Students will learn to program in languages such as ML, Lisp, Prolog, and Java.

Recommended Background

Students should have taken a course in calculus, acquired an in-depth knowledge of at least one programming language, preferably C++, Java, ML, or Lisp, and have some familiarity with data structures and basic set theory.

General Course Information

Class is held from 8:30 to 10:00 on Tuesdays and Thursdays in room 74 of the Jorgensen building.

Fall, 2002

Winter, 2003

Spring, 2003