An introduction to the fundamental
concepts of computer science
Course Description Recommended Background General Course Information These are the books for the course, although neither is required. The material for the course
will come mainly from the lectures and notes that are prepared for you. However, you may find
the following books to be useful occasionally, particularly during cs20a and part of cs20b.
This course will focus on the fundamental underpinnings of computer science.
Topics will 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 will be drawn from diverse areas such as
computational geometry, numerical analysis, computational logic, and compiler
design. Course work will be both theoretical and practical, with assignments
involving both proofs and programs. Students will learn to program in languages
such as Lisp, Prolog, and Java.
Students should have taken a course in calculus, acquired an in-depth knowledge of at least
one programming language, preferably C++, Java, or Lisp, and have some familiarity with
data structures and basic set theory.
Class will be held from 9:00 to 10:30 on Tuesdays and 8:30 to 10:00 on Thursdays
in room 74 of the Jorgensen building.
For the syllabus, see the pages associated with each of the three terms
(click on the ABC icons below or at the top of this page, or on any
of the subpages in this site).
by H. Lewis and C. Papadimitriou.
by Paul Graham.
The following buttons appear on many of the main pages.
You can also click on them here, or at the top of this page.
News: Archive of cs20 news.
Check this page often for hints
and/or corrections on homeworks,
and other important announcements.
Homework: Lists all homeworks
and official due dates. All cs20
homeworks can be downloaded from this page
in multiple formats.
Tools:Functions and program fragments that will help you
with the programming assignments.
References: Links to many more pages
with tutorials and other information.
In addition, supplementary notes
are posted here.
People: Office hours and locations
for instructor and teaching asistants.
Also lists current cs20 students and people
of historical interest.
Policies: Information on grades,
collaboration, computer accounts, and
submitting homework. Read this!
A-Plus: Examples of exceptional
student submissions. These submissions
demonstrate good programming techniques.
Course Notes: Lecture notes
for the course which are intended to
supplement your own lecture notes.
Last modified Thursday, 04-Jan-2001 08:22:12 PST by firstname.lastname@example.org
General Course Information
These are the books for the course, although neither is required. The material for the course will come mainly from the lectures and notes that are prepared for you. However, you may find the following books to be useful occasionally, particularly during cs20a and part of cs20b.