Brief Description of Concentration
Computer science is a dynamic, versatile field, full of open problems and opportunities for creative invention. The concentration in computer science is designed to teach students skills that they will use immediately and also ideas they will exploit in the future in ways we cannot even imagine today.
The Computer Science concentration has many learning objectives including:
- Present ideas clearly and forcefully, both orally and in writing.
- Solve problems cooperatively and in an ethically principled way.
- Apply their strengths to areas of known weakness and discomfort.
- Work productively, responsibly, and effectively within a group.
- Adapt to changes in the technological landscape.
- A complete list of technical objectives can be found in the Handbook.
More information available on our First-Year Exploration page.
- CS 50: Introduction to Computer Science I (fall). Open to all, no prerequisites. Best to take this course freshman year, though it is possible to take it as a sophomore 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). An optional spring term course to prepare students for courses in theoretical computer science such as CS 121 and 124.
- 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 either Multi-Variable Calculus to the level of Mathematics 21a or equivalent, or Probability to the level of Statistics 110 or equivalent. Students should follow Mathematics placement advice in judging where to start in the Mathematics sequence.