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

Important links

Course staff

Instructors Teaching Assistants Course Assistants
Timothy Chan (tmc)  
Ruta Mehta (rutameht)  
Pooja Kulkarni (poojark2)
Rucha Kulkarni (ruchark2)
Vasileios Livanos (livanos3)
Aditya Shankar Narayanan (aditya9)  
Iris Sun (mingxis2)
Ching-Hua Yu (cyu17)
Zhiqian Zhou (zhiqian5)
Shiliang Zuo (szuo3)
Karan Abrol (kabrol2)
Yuheng Chang (yuhengc2)
Hongxuan Chen (hc10)
Jiali Chen (jialic2)
Shovik Guha (shovikg2)
Yipeng Han (yipengh3)
Nathan Ju (nju2)
Alok V Kamatar (alokvk2)  
Vinay Krishna (vinayk3)
Jiayuan Li (jiayuan8)
Licheng Luo (ll6)
Yitao Meng (yitaom2)
Karthik Murthy (kmurthy3)
Benjamin Pankow (bpankow2)
Rishabh Rajagopalan (rishabh2)  
Dipro Ray (dipror2)
Charan Sankaran (charans2)
Fan Shi (fanshi2)
Alfred Song (xs22)
John Wang (jzw2)
Eric Wang (wcwang2)
Zecheng Wu (zecheng3)

Meeting time/place

There are two lectures per week, and two lab (discussion) sessions per week. The students are strongly encouraged to attend all sessions of their assigned lab sections.

AL1 Lecture TR 11:00am-12:15pm   ECE 1002   Ruta Mehta
AYA Discussion   TR 12:30-1:20pm SC 1105 Vasilis Livanos
AYB Discussion TR 1:30-2:20pm SC 1105 Vasilis Livanos
AYC Discussion WF 2:00-2:50pm SC 1105 Aditya Shankar Narayanan
AYD Discussion TR 2:30-3:20pm SC 1105 Zhiqian Zhou
AYE Discussion TR 3:30-4:20pm SC 1105 Ching-Hua Yu
AYF Discussion TR 4:30-5:20pm SC 1105 Ching-Hua Yu
AYG Discussion TR 5:30-6:20pm SC 1105 Shiliang Zuo
AYH Discussion TR 6:30-7:20pm SC 1105 Iris Sun
AYJ Discussion WF 10:00-10:50am SC 1105 Rucha Kulkarni
AYK Discussion WF 11:00-11:50am SC 1105 Pooja Kulkarni

Office hours

All office hours except the Wednesday ones will be in the open area on the 3rd floor of Siebel (outside of 3240). Wednesday office hours will be in Siebel 0216. (Occasional changes will be announced on piazza.)

Monday Tuesday Wednesday Thursday Friday
Pooja: 1-2pm
Rucha: 2-3pm
Zhiqian: 1-2pm
Vasilis: 3-4pm
Shiliang: 4:30-5:30pm
Ching-Hua: 5:30-6:30pm
Aditya: 12:30-1:30pm (Siebel 0216)
Ruta: 3:30-4:30pm (Siebel 0216)
Timothy: 4:30-5:30 pm (Siebel 0216)
none Iris: 2-3pm  


All homeworks are due Thursday at 10:00am. We will post each week's homework at least 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 old 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. Slides 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.