Williams College Computer Science Department

Computer Science

Williams College

Major Requirements

These requirements ensure that a computer science student has a solid foundation in computer science and supporting mathematics, and has explored some of the more advanced areas of computer science.

Required Courses in Computer Science

INTRODUCTORY COURSES  
CORE COURSES  
ELECTIVES  
Two or more electives chosen from the 300 or 400 level courses in computer science. At least one of these must be a course designated as a   project course. Currently, are considered project courses. Computer Science 432, Operating Systems, and Computer Science 434, Compiler Design, play special roles as electives. Both address central issues in computer science and each requires the student to complete a major term software project. As a reflection of their importance, we strongly encourage each major to complete one of these courses. It is recommended, but not required, that one Winter Study Project offered by the Department for majors be taken during the junior or senior year.

Required Courses in Mathematics

The mathematics requirements are essential for a firm understanding of computer science, and serve as important prerequisites for Computer Science 256 (Algorithms), Computer Science 361 (Theory of Computation), and Computer Science 371 ( Computer Graphics). All students should be aware that Math 251 has Math 103 (Introduction to Calculus), as a prerequisite, although many students place out of Math 103 on the basis of sufficient prior study of calculus in high school. See the Mathematics Department for details. We strongly urge students to take Math 251 before or at the same time as Computer Science 136, because of the rich interaction of subject matter between the courses.

To be eligible for admission to the major, a student must have completed Computer Science 134 and Computer Science 136, as well as Math 251, by the end of the sophomore year. The second math course should be completed by the end of the junior year. While any 200-level or higher math course suffices, you should be aware that Math 211 is a prerequisite for Computer Science 371, Computer Graphics. Students are urged to have completed 2 of the 4 core courses ( Computer Science 237, Computer Science 256, Computer Science 334, and Computer Science 361) by the end of the sophomore year and at least 3 out of the 4 core courses by the end of the junior year.

With the advance permission of the Department, two mathematics courses numbered 240 or above may be substituted for one computer science elective. We are willing to consider other variations in the required courses, adapting the requirements to the special needs and interests of the individual student. Any such requests should be discussed with the Department well in advance.

The Computer Science Colloquium

The department sponsors a weekly Computer Science Colloquium intended for all majors. Attendance at the colloquium is required for all senior majors and highly recommended for all others. The colloquia consist of talks on areas of computer science not normally covered in our curriculum. In particular, many of the speakers will be discussing their recent research in computer science. The speakers include Williams faculty, faculty from other institutions, computer scientists from industry, and current Williams computer science majors talking on their own work or other areas of interest to them. Every year additional sessions focus on such topics as computer ethics, computer-related jobs, and computer science graduate schools.

Go up to About the Computer Science Major
Go forward to Patterns of Course Elections