Computer Science Curriculum

View the course schedules, including the current semester.

We offer a variety of introductory classes for students with different interests and preparation. The class that exposes students to the heart of the discipline and is a gateway to all advanced classes is CS111: Computer Programming and Problem Solving, which introduces students to Python programming and more importantly, the big ideas that run through the rest of the curriculum.

Students seeking a broader exposure to the fundamental concepts of computer science may be interested in CS115: Computing for The Socio-Techno Web.

Students who want a good command of tools necessary to use computers in scientific and other quantitative work should consider CS112: Computation in the Sciences, which introduces the MATLAB programming language.

None of CS111CS112 or CS115 has any prerequisites, but all assume a basic familiarity with using computers as tools. You should consult our guide for Choosing an Introductory CS Course for more information (and feel free to talk to a faculty member about your options!).

Intermediate courses cover data structures, which are the foundation of algorithms, and machine organization, which is the key to understanding how computers work.

Advanced courses explore the topics that form the core of Computer Science: algorithms, computer architecture, programming languages, compiler design, artificial intelligence, computer vision, operating systems, parallel systems, databases, networks, security, multimedia, computer graphics, and computer science theory.