About CS24: Problem Solving with Computers-II

Welcome to CS24! The goal of this class is to solve problems efficiently using data structures and algorithms. You’ll learn about abstract data types e.g. stacks, queues, priority_queues, sets, and maps; the concrete data structures used to implement them, e.g. vectors, and binary trees; and how to reason about the complexity of the operations performed on the data structures. Another goal is to become proficient with coding in C++ and using the C++ Standard Template Library (STL) to succeed in technical coding interviews and future classes!

Data Structures Visualization from VisuAlgo

Interactive data structure visualizations from VisuAlgo


Instructor: Diba Mirza     Office Hours: WR: 1p - 2p, HFH 2119
Lectures: MW 11:00a - 12:15p, BUCHN 1910    

Sections: R: 11a - noon , noon - 1p, 1p - 2p , 2p - 3p, 3p - 4p in Phelps 3525   Link to section slides  


Teaching Assistants (TAs) Sarah Canto Hyatt, Yupeng Su, Zhuoer Shen, Towhidul Islam  

Learning Assistants (LAs): Nikhil Kapasi, Olivia Chen, Kyle Manternach, Ritam Saha, Samuel Zhang, Jackson Cao  


Lectures

Lecture schedule with dates, materials, and readings
Lecture Date Link Description Reading
lect01 CS16 Review: Abstract Data Types (Linked List) (slides) (annotated slides) (handout) Savitch: 2.1 - 2.5, 3.1
lect02 C++ Operator Overloading and Rule of three (slides) (annotated slides) (handout) Savitch: 4.3 - 4.4, 5.1, 5.3
lect03 Running time analysis (slides) (annotated slides) (handout) OP: 1.3, Dasgupta: 0.1 - 0.3
lect04 Efficient search with Binary Search Trees(QUIZ 1) (slides) (annotated slides) Savitch: 12.1, 10.1 - 10.3
No lecture - Martin Luther King Day
lect05 BST operations and Tree traversals (slides) (annotated slides) (handout) Savitch: 10.4, 10.5
lect06 Iterators (slides) (annotated slides) (handout) Savitch: 3.1 - 3.3
lect07 BST and Big O review (QUIZ 2) (slides) (annotated slides) (handout) Savitch: 1.2
lect08 Stacks (slides) (annotated slides) (handout) Savitch: 7.1 - 7.4
lect09 Queues, Breadth First Traversal, and Complete Binary Trees (slides) (annotated slides) (handout) Savitch: 8.1 - 8.4
lect10 Binary Heaps and Priority Queues (slides) (annotated slides) (handout) Savitch: 11.1 - 11.2
lect11 Hashtables (slides) (annotated slides) Prof. Suri's CS 130A handout
Presidents Day Holiday - No Class
lect12 Priority Queue and Hashtable Practice (QUIZ 3) (slides)
lect13 Graph representation with applications to Neural Networks (slides) (handout) Savitch: 15.1 - 15.2
lect14 Graph search: Breadth first traversal (Quiz 4) (slides) Savitch: 15.3
lect15 Graph Search: Depth first traversal Savitch: 15.4
lect16 Mergesort: Divide and Conquer Savitch: 13.1 - 13.2
lect17 Final Review
final Final Exam Instructions and Study Tips

Lab Assignments

num ready? description assigned due
lab00 true Getting started with Github (optional lab)
lab01 true Implementing a linked list- OOP style Mon 01/05 09:00AM Fri 01/16 11:59PM
lab02 true Complexity Analysis - Part 1 Fri 01/16 09:00AM Fri 01/23 11:59PM
lab03 true Binary Search Tree Wed 01/14 09:00AM Fri 01/30 11:59PM
lab04 true Implementing a min-heap Fri 02/13 09:00AM Fri 02/27 11:59PM
lab05 false Complexity Analysis - Part 2 Fri 02/27 09:00AM Wed 03/11 11:59PM

Programming Projects

num ready? description assigned due
pa01 true Card game using Binary Search Trees Mon 01/26 09:00AM Fri 02/13 11:59PM
pa02 true Application of data structures to a movie dataset Mon 02/09 09:00AM Fri 02/27 11:59PM
pa03-tutorial true A Gentle Introduction to Graphs and Neural Networks
pa03 false Application of graphs to machine learning Wed 02/25 09:00AM Fri 03/13 11:59PM

Leetcode Practice Problems

LeetCode practice problem sets with due dates and descriptions
num ready? description assigned due
lp01 true Leetcode practice with linked lists Mon 01/05 09:00AM Fri 01/16 11:59PM
lp02 true Leetcode practice with binary search trees Wed 01/14 09:00AM Fri 01/30 11:59PM
lp03 true Leetcode practice with stacks and queues Mon 02/02 09:00AM Fri 02/13 11:59PM
lp04 true Leetcode practice with priority queues and hashtables Mon 02/16 09:00AM Fri 02/27 11:59PM
lp05 false Leetcode practice with graph search - bfs and dfs Fri 02/27 09:00AM Fri 03/13 11:59PM

Office Hours


CC BY-NC-SA 2.0, Diba Mirza, Winter 2026.