Skip to content


humorous comic about how it is difficult to solve real-world problems with algorithms 
  • Class. M/W 8:30-9:45 am in Old Chem 116
  • Instructor. Brandon Fain
  • Graduate Teaching Assistant. Xinyu Tian (mail:
  • Discussion. We will use the Ed platform for discussion and questions.
  • Readings. There are no required texts to purchase. Links or pdfs of suggested readings will be available on Sakai.


This is a course on the design and implementation of modern algorithmic systems that deal with hard problems and big data in the real world. Examples include matching, web search, recommendations, face recognition, language models, and more. We are interested in the technical and social complexities of algorithmic systems. We will explore these topics in lecture, readings, and student-driven research projects in real-world algorithmic systems.

Course Objectives

Upon completion of this course, you will be able to

  • Analyze the technical components of algorithms underpinning real-world algorithmic systems,
  • Evaluate and the social implications and limitations of real-world algorithmic systems, and
  • Conduct collaborative research in computer science, algorithms, and society.

Prior Background

Students should have programming, algorithms, and data structures experience at least at the level of CS 201, and have prior experience in college-level mathematics, for example, at the level of CS 230 or equivalent. Experience of algorithm design and analysis at the level of CS 330 is helpful but not required, and there will be minimal overlap in content between the courses.