Introduction to Computation

Fall 2007
California Institute of Technology


Caltech Catalog Description

CS 1 is an introduction to the automated processing of information, including computer programming. This course gives students the conceptual background necessary to understand and construct programs (i.e., specify computations, understand evaluation models, use and understand major constructs, including functions and procedures, scoping and environments, data storage, side-effects, conditionals, recursion and looping, and higher-order functions). CS 1 introduces key issues that arise in computation (e.g., universality, computability, complexity, representation, abstraction management). This course puts the components of computer science in context, serving as an overview for students specializing in computational disciplines and alerting all students to important subtleties that may arise when applying computation in their studies, research, and work. At the end of this course, students should be able to read and write (synthesize, analyze, understand) small programs (100 lines) and have the intellectual framework necessary to rapidly assimilate new computer languages as the need arises. All Caltech undergraduates are encouraged to take this course.


Text: Structure and Interpretation of Computer Programs, Abelson and Sussman

CS1 is not a course in C or C++ (we will use the Scheme dialect of LISP for pedagogy), but mastery of the ideas in CS1 will make it easy to pick up any particular computer language rapidly. Caltech also offers a self-paced Computer Language Shop (CS11) for students to gain additional skill in any particular computer language once they understand the basic ideas behind computer programs as developed in CS1.