ECS 36C: Data Structures, Algorithms, and Programming

Prof. Porquet-Lupine, UC Davis


Hi all, my name is Joël Porquet-Lupine. I am currently an Assistant Professor of Teaching at UC Davis.

ECS 36C is a course that I really enjoy teaching as it represents such a crucial experience in the students’ learning experience. It is the course that ends the introductory series and enables students to start taking most of the upper-division courses.

I gave this course a few times now, and have probably spent a few hundreds of hours working on my slides, especially for all the figures! And because of the pandemic, I also had to record lecture videos in spring of 2020.

This means that all the “lecturing” part of this course is now available digitally, which I am happy to release entirely via this website under a CC BY-NC-SA 4.0 license.

I hope that anyone who is interested in learning about data structures and algorithms will find this course material useful!

Course outline


ECS 36C is a 10-week course, but when accounting for holidays and/or exams, there are about 9 weeks worth of lecture time.

The lecture material is broken up into multiple parts:


There is an hourly discussion per week, which is organized as a very hands-on experience around the concepts discussed during lectures.