Foundations of Computer Science, CSCI 2200, RPI, Spring 2020

As a computer scientist, your goal will be to choose or design, then implement, efficient algorithms that accomplish the goals for which they were designed, with certainty. The aim of FOCS is to give you the tools necessary to establish certainty about your algorithms: that they do what they claim to.

As such, this course introduces the fundamental mathematics used in computer science for the purpose of ensuring such certainty: discrete mathematics and the theory of computation. Discrete mathematics is the study of objects that can be counted (vague, I know)—including proofs, sums and recurrences, graphs, counting, and probability—this toolbox is essential for showing algorithms do as we claim. The theory of computation helps delineate what kinds of problems can even be hoped to be solved, and how efficiently.


Lead Instructor: Alex Gittens (gittea at rpi dot edu)

Lectures: Tue/Fri 10am-11:50am; Darrin 308

Office Hours: Tue/Fri 12pm-1pm, or by appointment; Lally 316


Additional staff (email for appointments):

Uzma Mushtaque, Instructor (mushtu)

Shianne Hulbert, Course Coordinator (hulbes)


TAs (email for appointments):

Shaunak Basu (basus6), Abhishek Gupta (guptaa10), Anish Sethi (sethia), Yufei Wu (wuy31), Shuting Yang (yangs21)


Undergraduate mentors:

Patrick Berne (bernep), Zixiang Zhou (zhouz9), Haoyu He (heh3), Brandon Klein (kleinb2), Myron Rios (riosm2), Roman Silen (silenr), Huanchen Sun (sunh8), Christine Tang (tangc6), Mingzhen (Tommy) Zhao (zhaom4), Xiangjian Zhao (zhaox8)


Help Hours:
Mon: 6-8pm, Yufei Wu, AE 127
Tue: 2-4pm, Anish Sethi, AE 118
Wed: 5-7pm, Shaunak Basu, AE 118
Thurs: 10-12pm, Shuting Yang, AE 118
Fri: 4-6pm, Abhishek Gupta, Carnegie 205
Sun: 2-6pm, AE 127 (UG-mentors)

Questions: Piazza

Course Details


Email List: The class email list is extracted directly from SIS. If you are not registered, you will not be on the email list.

Announcements: Announcements which are made in class may not be repeated via email. It is the student's responsibility to be aware of and understand all announcements made in class.