What's New in Fall 2019

Important Major Requirement Changes

We now have a more flexible “Systems” requirement in our BS and BA requirements. Instead of the requirement to take COMPSCI 310 (Introduction to Operating Systems), you may choose one from a list of designated systems courses (including COMPSCI 310 itself). Check the updated BS / BA requirements for details.


COMPSCI 310 (Introduction to Operating Systems) will be offered in Fall 2019.

But reflecting the major requirement change above, there is currently no plan to offer 310 in Spring 2020. If you are a senior interested in 310, please plan accordingly. Going forward, COMPSCI 310 will still be offered every year, though not necessarily every semester.


New! CompSci IDMs and Concentrations

We have added new IDM’s, and Concentrations and have updated our website. You can see the new pages for


New! COMPSCI 290.1/590 Graph-Matrix Computations & Data Analysis

Synopsis pending.


New! COMPSCI 290.2 Algorithms in the Real World

This is a new course on the design and implementation of modern algorithms that deal with hard problems and big data. The course is project-driven, with several mini-projects as well as a larger student-driven and more open-ended course project, all of which will involve implementing unique algorithmic insights. Emphasis will be placed on algorithmic ideas that have had substantial impact in the real world. Possible topics include non-convex optimization for machine learning, online algorithms for ad auctions, streaming algorithms for sampling, cryptography and cryptocurrency, spectral algorithms for graph exploration, and AI algorithms for playing games like Go or Poker. There are no exams, and all mini-projects and the course project will have applied and hands-on components.

You should have already completed COMPSCI 201 and COMPSCI 230 (or equivalent). There will be minimal overlap with COMPSCI 330 in content and structure, so you can take the course before or after COMPSCI 330.


New! COMPSCI 102 Interdisciplinary Computing

COMPSCI 102 is a version of COMPSCI 101 that explores the concepts from 101 in the context of natural science, social science, engineering and the humanities. There is a required lab associated with COMPSCI 102.

Course Description:
Introduction to the practices and principles of computer science and programming and their impact on and potential to change the world motivated by problems drawn from natural science, social science, engineering, and humanities. Programming using Python, appropriate libraries, and APIs to process, analyze and visualize data. Design, implementation, and analysis emphasizing abstraction, encapsulation, and problem decomposition.

Not open to students who have taken COMPSCI 101. No previous programming experience required.


Upper-level Electives offered for Fall 2019:

  • 260 Computational Genomics (Hartemink)
  • 290.1 Graph-Matrix Comp & Data Analysis (Sun)
  • 290.2 Algorithms in the Real World (Fain)
  • 308 Advanced Software Design and Implementation (Duvall)
  • 310 Intro to Operating Systems (Chase)
  • 316 Intro to Database Systems (J. Yang)
  • 350 Digital Systems (Board)
  • 356 Computer Network Architecture (Gorlatova)
  • 371 Elements of Machine Learning (Tomasi)
  • 408 Delivering Software (Duvall)
  • 590.1 Graph-Matrix Computation & Data Analysis (X. Sun)
  • 590.2 High Res Cryo-Em Image Analysis (Bartesaghi)
  • 590.3 Linear and Integer Programming (Conitzer)
  • 590.4 Distributed Computing & Blockchains (Nayak)

Previous course bulletins: