CS/ECE 374 A (Spring 2022):
Introduction to Algorithms & Models of Computation

Important links

Course staff

Instructors Teaching Assistants Course Assistants PrairieLearn Developers
Timothy Chan (tmc)
Ruta Mehta (rutameht)
Stav Ashur (stava2)
Daniel Christl (christl3)
Qizheng He (qizheng6)
James Hulett (jhulett2)
Rhea Jain (rheaj3)
Rucha Kulkarni (ruchark2)
Vasileios Livanos (livanos3)
Eliot Robson (erobson2) (head TA)
David Zheng (dwzheng2)
Adit Agarwal (adita3)
Jonathan Chang (yuhengc2)
Anakin Dey (anakind2)
Aniket Gargya (agargya2)
Xinyi He (xinyihe4)
Daniel Huang (dthuang3)
Michael Jiang (minhaoj2)
Jeremy Livshots (jel7)
Laney Moy (elenam3)
Tomoko Sakurayama (tomokos2)
Kary Wang (jiahuiw4)
Noah Watson (nwatson3)
Ananya Yammanuru (ananyay2)
Angela Zhao (alz3)
Lou Zeh (zeh3)
Eliot Robson
Eric Jin
Sam Ruggerio
Jason Xia
Andrew Yin

Meeting time/place/zoom links

There are two lectures per week, and two lab/discussion sessions per week. The first week of lectures and labs was entirely online via zoom. Afterwards (from Jan 25 onward), we will have lectures given in-person in ECE Building 1002 and live-streamed on zoom (see below for the zoom link). For the labs, two sections will be online (see below for the zoom links) and the rest are in-person in Siebel 1105.

Lectures will be recorded and made available on the "CS/ECE 374 A Spring 2022" channel in mediaspace to registered students. Some of the lab recordings can be found on the "CS/ECE 374 A Labs Spring 2022" channel in mediaspace.

AL1 Lecture TR 11:00am-12:15pm ECE 1002 Ruta Mehta zoom link
AYA Discussion WF 9:00am-9:50am online Stav Ashur zoom link
AYB Discussion WF 10:00am-10:50am SC 1105 Rhea Jain  
AYD Discussion WF 11:00am-11:50am SC 1105 Vasilis Livanos / Rucha Kulkarni zoom link
AYE Discussion WF 12:00pm-12:50pm SC 1105 David Zheng  
AYF Discussion WF 1:00pm-1:50pm SC 1105 James Hulett  
AYC Discussion WF 2:00pm-2:50pm SC 1105 James Hulett  
AYG Discussion WF 3:00pm-3:50pm SC 1105 Eliot Robson  
AYH Discussion WF 4:00pm-4:50pm online Qizheng He zoom link
AYJ Discussion WF 5:00pm-5:50pm SC 1105 Daniel Christl  

Office hours

Office hours will be held entirely online, using zoom (this is the zoom link for all office hours), Discord (invite link), and Queue@illinois.edu.

Monday Tuesday Wednesday Thursday Friday
Stav: 1:00-2:00
Daniel: 4:00-5:00
Eliot: 3:00-4:00
Qizheng: 4:00-5:00
James: 10:00-11:00
Rhea: 11:00-12:00
Ruta: 2:30-3:30
Timothy: 3:30-4:30
Ruta: 1:00-2:00 (**) David: 2:00-3:00

New (**): starting after spring break, Ruta will hold "conceptual" office hours on Thursdays 1:00-2:00 (these are for questions about lectures and/or notes and other references, but not about HWs).

Note: We will have the following office hours before the final exam: Ruta on Tue (5/10) at 10-11am and Wed (5/11) at 2:20-3:30pm; and Timothy on Wed (5/11) at 3:30-4:30pm.


All guided problem sets ("GPS") on PrairieLearn are due Tuesdays at 10:00am. All written homeworks are due Thursdays at 10:00am. We will post each week's homework about one week before the due date; we will post solutions here within a couple of days after the due date. Please read the homework policies and academic integrity page!

Here are some selected past HW problems with solutions that you may find useful (both as extra practice problems, and as examples on how to write solutions):

Midterm 1

Midterm 2

Final exam

About this course

CS/ECE 374 covers fundamental tools and techniques from theoretical computer science, including design and analysis of algorithms, formal languages and automata, computability, and complexity. Specific topics include regular and context-free languages, finite-state automata, recursive algorithms (including divide and conquer, backtracking, dynamic programming, and greedy algorithms), fundamental graph algorithms (including depth- and breadth-first search, topological sorting, minimum spanning trees, and shortest paths), undecidability, and NP-completeness.

Prerequisites: We assume that students have mastered the material taught in CS 173 (discrete mathematics, especially induction) and CS 225 (basic algorithms and data structures); see stuff you already know.

There is no required textbook, but Jeff Erickson's book is highly recommended. Notes/scribbles can be found in the lecture schedule page. Here are some other useful resources (also see here for more):

Website generously borrowed from those of previous semesters.