About CS24: Problem Solving with Computers-II

Image Credit: VisuAlgo 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!

Photo credit: Visualgo https://visualgo.net/

  • Instructor: Diba Mirza
    • Office hours: Thursdays 2p - 4p, HFH 1155
  • TAs: Ally Chu, Brenna Scholte, Daniel Lopez, Kali Hale, Sarah Hyatt
  • ULAs: Cindy Zhao, Nikhil Kapasi, Olivia Chen
  • Lectures: TR 12:30p - 1:45p, BUCHN 1940
  • Sections: F: 2p, 3p, 4p, 5p, and 6p in Phelps 3525

Mock Interviews

Instructions are available in the related assignment on Canvas: https://ucsb.instructure.com/courses/25665/assignments/358212 Book your Mock interview no later than Tuesday May 20 using the booking pages linked below.

Resources

Lectures

lecture date link description Reading
2025-04-01 lect01 Week 1: Course introduction, CS16 review (slides) (annotated slides)
2025-04-03 lect02 Week 1: Running time analysis (slides) (annotated slides) OP: 1.3, Dasgupta: 0.1 - 0.3
2025-04-08 lect03 Week 2: Abstract Data Types and operator overloading (slides) (annotated slides) 2.1 - 2.5, 3.1
2025-04-10 lect04 Week 2: Linked list ADT and rule of three (slides) (annotated slides) 4.3 - 4.4, 5.1, 5.3
2025-04-15 lect05 Week 3: Efficient search with Binary Search Trees (slides) (annotated slides) 12.1, 10.1 - 10.3
2025-04-17 lect06 Week 3: Tree traversals (slides) (annotated slides) 10.4, 10.5
2025-04-22 lect07 Week 4: Iterators (slides) (annotated slides) 3.1 - 3.3
2025-04-24 lect08 Week 4: Space complexity, best/worst case analysis  (slides) (annotated slides) 1.2
2025-04-29 lect09 Week 5: Stacks  (slides) (annotated slides) 7.1 - 7.4
2025-05-01 lect10 Week 5: Queues, Breadth First Traversal, and Complete Binary Trees  (slides) (annotated slides) 8.1 - 8.4
2025-05-06 lect11 Week 6: Binary Heaps and Priority Queues (slides) (annotated slides) 11.1 - 11.2
2025-05-08 e01 Midterm Exam: 12:30p - 1:45p
2025-05-15 lect12 Week 7: Hashtables: from theory to practice (slides) (annotated slides) Prof. Suri's CS 130A handout
2025-05-20 lect13 Week 8: Graph representation with applications to Neural Networks (slides) (annotated slides) 15.1 - 15.2
2025-05-22 lect14 Week 8: Graph search: Breadth and Depth first traversal (slides) (annotated slides) 15.3- 15.4
2025-05-26 Memorial Day Holiday - No office hours
2025-05-27 lect15 Week 9: (PA03) DFS based backpropagation (slides) (annotated slides) Required videos in pa03 tutorial
2025-05-29 lect16 Week 9: Mergesort: Divide and Conquer (slides) (annotated slides) 13.1 - 13.2
2025-06-03 lect17 Week 10: Priority Queue Review + Complexity Analysis of BFS and DFS (slides) (annotated slides)
2025-06-05 lect18 Week 10: Final Practice (slides) (annotated slides)
2025-06-09 e02 Final Exam Instructions and Study Tips

Lab Assignments

num ready? description assigned due
lab00 true Getting started with Github (optional lab)
lab01 true LeetCode 3-Sum + Empirical Runtime Analysis Mon 03/31 09:00AM Fri 04/11 11:59PM
lab02 true Implementing a linked list- OOP style Fri 04/04 09:00AM Fri 04/18 11:59PM
lab03 true Binary Search Tree Fri 04/18 09:00AM Fri 04/25 11:59PM
lab04 true Complexity Analysis - Part 1 Fri 04/25 09:00AM Fri 05/02 11:59PM
lab05 true Implementing a min-heap Fri 05/09 09:00AM Fri 05/23 11:59PM
lab06 true Complexity Analysis - Part 2 Fri 05/30 09:00AM Fri 06/06 11:59PM

Programming Projects

num ready? description assigned due
pa01 true Card game using Binary Search Trees Fri 04/25 09:00AM Fri 05/16 11:59PM
pa02 true Application of data structures to a movie dataset Fri 05/09 09:00AM Fri 05/23 11:59PM
pa03-tutorial true A Gentle Introduction to Graphs and Neural Networks
pa03 true Application of graphs to machine learning Fri 05/23 09:00AM Fri 06/06 11:59PM

Leetcode Practice Problems

num ready? description assigned due
lp01 true Leetcode practice with linked lists Mon 03/31 09:00AM Fri 05/30 11:59AM
lp02 true Leetcode practice with binary search trees Thu 04/17 09:00AM Fri 05/30 11:59AM
lp03 true Leetcode practice with stacks and queues Thu 04/24 09:00AM Fri 05/30 11:59AM
lp04 true Leetcode practice with priority queues and hashtables Tue 05/06 09:00AM Fri 05/30 11:59AM
lp05 true Leetcode practice with graph search - bfs and dfs Tue 05/20 09:00AM Fri 05/30 11:59AM

Office hours

CC BY-NC-SA 2.0, Diba Mirza, Feb 2025.