Computer Science

Brief Description of Concentration

students working togetherComputer science is about tools and technology, and also about understanding and engaging with the world. From swarms of insects to elementary particles, rational agents in a market, and neurons in a brain, the computational viewpoint has proven a fruitful way to understand natural, social, and engineered systems. Correspondingly, the Computer Science concentration has strong ties not just to engineering, but also economics, law, biology, physics, statistics, mathematics, linguistics, and more. Because information technology affects every aspect of society, graduates with computer science degrees have access to a large variety of careers, including engineering, teaching, medicine, law, basic science, finance, and management.  

Learning Objectives

The Computer Science concentration has the following learning outcomes for our graduates: students will design and code correct solutions to problems; design and reason about algorithms; and develop and analyze the ways computation interacts with other systems. 

Gateway Courses

More information available on our First-Year Exploration page.

  • CS 32: CS 32: Computational Thinking and Problem Solving (spring). Open to all, no prerequisites. Best to take this course first year. This course is appropriate for students who could not take CS 50 in the Fall term or who want a different introduction to Computer Science.
  • CS 50: Introduction to Computer Science I (fall and spring). The spring offering has limited enrollment. Open to all, no prerequisites. Best to take this course first year, though it is possible to take it in sophomore fall and still complete any of the concentration tracks. 
  • CS 51: Introduction to Computer Science II (spring). Abstraction and design in computation, usually taken after CS 50.
  • CS 61: Systems Programming and Machine Organization (fall). For those who have the prerequisite C programming experience.
  • CS 20: Discrete Mathematics for Computer Science (spring). A spring term course to prepare students for courses in theoretical computer science such as CS 120, CS 121, and 124.
  • CS 120: Introduction to Algorithms and Their Limitations (fall). For those who have the prerequisite background in formal mathematics. 
  • CS 121: Introduction to the Theory of Computation (fall). For those who have the prerequisite background in formal mathematics.
  • Computer Science ordinarily requires mathematics as follows: Linear Algebra to the level of Mathematics 21b or equivalent; and Probability to the level of Statistics 110 or equivalent. Students should follow Mathematics placement advice in judging where to start in the Mathematics sequence.