CS 101: An Introduction to Computer Science for Everyone

From US National Library of Medicine (CS 101 poster: small/large)








Instructor: Haoqi Zhang
Lectures: Monday and Wednesday, 3-3:50, Pancoe Building, Abbot Auditorium.

Office Hours:

  • Haoqi: Monday, 4-5pm, Ford 2-325 (or by appointment).
  • Darrell: Monday 10-11am, Ford 3-333 (or by appointment).
  • Chandra: Tuesday, 2-3pm, Ford 3-211 (or by appointment).

Teaching Assistants:

  • Chandra Sekhar Bhagavatula. email
  • Darrell Hoy. email

Sections: on Friday at

  • 1PM, Tech LG62 (Chandra)
  • 2PM, Tech LG62 (Chandra)
  • 3PM, Tech LG68 (Chandra)
  • 1PM, Tech L168 (Darrell)
  • 2PM, Tech L170 (Darrell)
  • 3PM, Tech L170 (Darrell)

Online Discussion: on piazza

Course Description

Computation is ubiquitous: DNA contains biological programs and is a part of all lifeforms, the human brain is a powerful computer, and the digital computer has revolutionized most aspects of our society. The primary goal of this course is to explore the whats, whys, and hows of computer science.

CS 101, a conversation (video, click to watch)

The topics covered include the theory of computation (what computers can compute), algorithms for efficient computation (what to tell a computer to compute), programming languages (how to tell a computer what to compute), artificial intelligence (how your computer can do things your brain does), computational biology (how DNA-based biological systems are like programs), computer systems (e.g., how computers work together in networks like the Internet), computer vision and graphics (how computers can gather and convey useful visual information) and human computer interaction (easy, natural ways to get what you need and want from computers).

In this course, students will learn what the computer science major is all about. Coursework will be reading and writing about computer science topics and their impact in the world. There will be no computer programming in this course.

This course is a Core course in the Computer Science Curriculum and also satisfies the Weinberg Area III (Social and Behavioral Sciences) Distribution. The target audience of this course is freshmen and sophomores; advanced students can satisfy the computer science major's 101 requirement by instead taking an additional breadth course.

CS 101 Instructors

Guest Instructors

This course surveys many topics in computer science and lectures will be given by Northwestern professors who research and teach advanced courses in these topics. Instructors include Prof. Haoqi Zhang, Prof. Jason Hartline, Prof. Fabian Bustamante, Prof. Bryan Pardo, Prof. Nicole Immorlica, Prof. Mike Horn, Prof. Ronen Gradwohl, Prof. Robby Findler, Prof. Ollie Cossairt, and Prof. Ian Horswill.

Reading and Media

Reading and media viewing assignments (see: weekly schedule) will be taken from popular press and computer science journals. Sources include: The Atlantic, The Economist, WIRED, Communications of the ACM (CACM), TED Talks, XRDS: the ACM student magazine, The Huffington Post, The New York Times, and Scientific American. Reading materials can be downloaded individually from their respective sources.

Attendance, Participation, and Grading

Attendance of and participation in lectures and discussion sections is mandatory.

  • Students should complete reading assignments and submit their answers to the discussion question before each class.
  • Students should contribute to classroom discussions by asking and answering questions and (when asked) providing discussion of lecture topics and reading assignments.
  • Students should participate in discussion sections by being involved in activities during the discussion section and in out-of-section followup work.
  • Students should participate in online discussion on piazza. Possible online contributions include relating assigned reading and lecture material to current events, culture, and articles in popular media and discussion thereof.

Grades will be weighted as follows: 40% assignments, 20% participation, 20% Midterm, and 20% final (subject to change).