Major Requirements – 72 Total Credits

Core Courses – 54 Credits

  • MATH 111: Introduction to Calculus
  • CS 111: Introduction to Computer Science
  • CS 201: Data Structures
    OR CS 200: Data Structures with Problem Solving
  • CS 202: Mathematics of Computer Science
    OR MATH 236: Mathematical Structures
  • CS 208: Introduction to Computer Systems
  • CS 251: Programming Languages: Design and Implementation
  • CS 252: Algorithms
  • CS 254: Computability and Complexity
  • CS 257: Software Design

Elective Course – Required 6 credits

Courses numbered 200 or above (excluding independent study, senior seminar and comps). Occasionally courses outside the CS department may count towards this requirements; a list is maintained on the CS Department website of any such courses. If more than one junior seminar course is taken, the second junior seminar course may count towards the elective requirement.

  • ARTS 220*: Art, Interactivity, and Microcontrollers (*=Junior Seminar)
  • CS 220: Art, Interactivity, and Microcontrollers (not offered 2025-26)
  • CS 220*: Art, Interactivity, and Microcontrollers (*=Junior Seminar)
  • CS 301: History of Computing in England Program: History of Computing
  • CS 302: (De)constructing Everyday Technologies (not offered 2025-26)
  • CS 302*: The Why Behind Everyday Technologies (*=Junior Seminar)
  • CS 304: Social Computing (not offered 2025-26)
  • CS 311: Computer Graphics (not offered 2025-26)
  • CS 314: Data Visualization (not offered 2025-26)
  • CS 314*: Data Visualization (*=Junior Seminar)
  • CS 320: Machine Learning
  • CS 320*: Machine Learning (*=Junior Seminar) (not offered 2025-26)
  • CS 321: Making Decisions with Artificial Intelligence (not offered 2025-26)
  • CS 322: Natural Language Processing
  • CS 327*: Introduction to Robotics (*=Junior Seminar)
  • CS 330: Introduction to Real-Time Systems (not offered 2025-26)
  • CS 331: Computer Networks (not offered 2025-26)
  • CS 331*: Computer Networks (*=Junior Seminar)
  • CS 332: Operating Systems (not offered 2025-26)
  • CS 332*: Operating Systems (*=Junior Seminar) (not offered 2025-26)
  • CS 334: Database Systems
  • CS 338: Computer Security
  • CS 341: History of Computing in England Program: Cryptography
  • CS 344: Human-Computer Interaction
  • CS 347: Advanced Software Design (not offered 2025-26)
  • CS 347*: Advanced Software Design (*=Junior Seminar) (not offered 2025-26)
  • CS 348: Parallel and Distributed Computing (not offered 2025-26)
  • CS 361: Artificial Life and Digital Evolution (not offered 2025-26)
  • CS 361*: Artificial Life and Digital Evolution (*=Junior Seminar) (not offered 2025-26)
  • CS 362: Computational Biology
  • CS 364: Computational Modeling and Simulation of Natural Systems (not offered 2025-26)
  • DGAH 220: Creative Coding and Generative AI (not offered 2025-26)
  • DGAH 302: (De)constructing Everyday Technologies (not offered 2025-26)
  • ECON 285: Computational Economics (not offered 2025-26)
  • MATH 271: Optimization
  • PHYS 343: Electronics and Lab

Junior Seminar Course – Required 6 credits

A junior seminar course that emphasizes technical communication. Seminars are offered on a variety of topics, changing from year to year. Each seminar may emphasize a slightly different facet of technical communication, including but not limited to technical writing, oral presentation, and/or writing of design documents, and all will provide opportunities for students to get individualized feedback to improve their communication skills. Ideally, you should complete this seminar course in your junior year, helping you to prepare for comps. Junior Seminar courses are marked with an asterisk (*) at the end of the course number.

  • ARTS 220*: Art, Interactivity, and Microcontrollers (*=Junior Seminar)
  • CS 220*: Art, Interactivity, and Microcontrollers (*=Junior Seminar)
  • CS 302*: The Why Behind Everyday Technologies (*=Junior Seminar)
  • CS 314*: Data Visualization (*=Junior Seminar)
  • CS 320*: Machine Learning (*=Junior Seminar) (not offered 2025-26)
  • CS 327*: Introduction to Robotics (*=Junior Seminar)
  • CS 331*: Computer Networks (*=Junior Seminar)
  • CS 332*: Operating Systems (*=Junior Seminar) (not offered 2025-26)
  • CS 347*: Advanced Software Design (*=Junior Seminar) (not offered 2025-26)
  • CS 361*: Artificial Life and Digital Evolution (*=Junior Seminar) (not offered 2025-26)

Senior Capstone Seminar and Integrative Exercise – Required 6 credits

Majors must complete a capstone experience (CS 399: Senior Seminar and CS 400: Integrative Exercise) during the senior year. The student will participate on a small team of students working on a faculty-specified project.

Additional Departmental Notes

Potential majors should take Computer Science 111, Mathematics 111, and at least one of Computer Science 200, 201 and 202 by the end of the sophomore year.

Although only one mathematics course is required for the CS major, we encourage our students to take mathematics and statistics courses beyond Mathematics 111. Students contemplating graduate study should consider taking the full Calculus sequence plus Statistics 120 and Mathematics 232, and additional computer science electives. Those interested in computer engineering should consider taking physics courses through Electricity & Magnetism and Electronics.

Under certain circumstances, the CS department offers exceptions to the stipulated academic requirements. More information can be found at Computer Science Department Exceptions and Clarifications.