What you take in computer science, and when you take it, depends upon your background, your interests, and on how many such courses you plan to take. Those who merely want a brief introduction to computing may take our introductory classes at any time during their college career. Those who wish an introduction which will provide them with more powerful tools in designing and implementing computer programs should combine CSCI 134 with CSCI 136. Together these give a firm grounding and provide important skills in computing. A student wishing to pursue more in-depth study of computer science is advised either to major or take the equivalent of a minor in computer science.
More information on all of our offerings can be found in the Department/Program Curriculum.
Williams does not officially recognize minors. Nevertheless the faculty in computer science believes that there are substantial educational advantages for students in taking a coherent package of courses in a discipline outside of their major. Since many students have shown interest in obtaining a solid background in computer science without pursuing the major, we have drawn up a set of guidelines for an unofficial “minor” in computer science. We recommend that such students take the following set of courses:
- CSCI 134: Introduction to Computer Science
- CSCI 136: Data Structures and Advanced Programming
- Two of the four core courses in Computer Science:
- Math 200: Discrete Mathematics
- Either
- One elective chosen from computer science courses numbered 300 and above, or
- Two computationally-oriented courses in other departments selected in consultation with the Computer Science Department.
The two introductory courses and the two core courses chosen from the four offered by the department provide a solid introduction to a significant amount of material in computer science, while the mathematics course provides the mathematical tools and maturity necessary to gain a solid understanding of the computer science material. The last elective allows a student to specialize in an area of computer science of special interest. The department is happy to write letters attesting to students’ abilities and background in computer science.