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) well enough to succeed in technical coding interviews and future classes!

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

  • Instructor: Diba Mirza, office hours Thursdays noon - 1:30p, HFH 1155
  • TAs: Joseph Ng, Nawel Alioua, Shinda Huang, Xinlei Feng, Yaoyi Bai
  • ULAs: Zackary Glazewski, Ally Chu, Sanjana Shankar

  • Lectures: MW 11:00a - 12:15p, TD-W 1701
  • Sections: R: 2p, 3p, 4p, 5p, and 6p in Phelps 3525

Lectures

lecture date link description
2024-01-08 lect01 Week 1: Course introduction, review of C16 concepts (slides) (annotated slides)
2024-01-09 lect02 Week 1: Abstract Data Types and operator overloading (slides) (annotated slides)
2024-01-15 No lecture - MLK Holiday
2024-01-17 lect03 Week 2: Dynamic resource allocation and rule of three (slides) (annotated slides)
2024-01-22 lect04 Week 3: Efficient search with Binary Search Trees (slides) (annotated slides)
2024-10-24 lect05 Week 3: Tree traversals and BST operations(contd.)  (slides) (annotated slides)
2024-01-29 lect06 Week 4: Running time analysis (slides) (annotated slides)
2024-01-31 lect07 Week 4: Space complexity, best/worst case analysis  (slides) (annotated slides)
2024-02-05 lect08 Week 5: Stacks  (slides) (annotated slides)
2024-02-07 lect09 Week 5: Queues  (slides) (annotated slides)
2024-02-12 lect10 Week 6: C++ set and map ADT (balanced BST), Iterators (slides) (annotated slides)
2024-02-14 e01 Midterm Exam: 11a - 12:15p
2024-02-19 No lecture - President's Day Holiday
2024-02-21 lect11 Week 7: Hashtables, C++ unordered_set and unordered_map ADT (slides) (annotated slides)
2024-02-26 lect12 Week 8: Graph representation with applications to Neural Networks (slides) (annotated slides)
2024-02-28 lect13 Week 8: Graph search and Breadth First Traversal (slides) (annotated slides)
2024-03-04 lect14 Week 9: Graph search and Depth First Traversal (slides) (annotated slides)
2024-03-06 lect15 Week 9: Running time analysis of BFS and DFS (slides) (annotated slides)
2024-03-11 lect16 Week 10: Merge Sort (slides) (annotated slides)
2024-03-13 lect17 Week 10: Final Wrapup (slides) (annotated slides)
2024-03-21 e02 Final Exam: noon - 3p

Programming Assignments

num ready? description assigned due
lab00 true Getting started Wed 01/10 09:00AM Wed 01/17 11:59PM
lab01 true Objective Cars Wed 01/17 09:00AM Wed 01/24 11:59PM
lab02 true Binary Search Tree Wed 01/24 09:00AM Wed 01/31 11:59PM
lab03 true Implementing a linked list- OOP style Wed 01/24 09:00AM Wed 02/07 11:59PM
lab04 true Complexity Analysis - Part 1 (midterm practice) Wed 01/31 09:00AM Wed 02/07 11:59PM
lab05 true Card game using Binary Search Trees Wed 02/14 09:00AM Fri 02/23 11:59PM
lab06 true Application of data structures to a movie dataset Wed 02/21 09:00AM Fri 03/01 11:59PM
lab07-tutorial true A Gentle Introduction to Neural Networks
lab07 true Application of graphs to machine learning Wed 02/28 09:00AM Tue 03/12 11:59PM
lab08 true Complexity Analysis - Part 2 Thu 03/07 09:00AM Tue 03/12 11:59PM

Leetcode Practice Problems

num ready? description assigned due
pa01 true Leetcode practice with linked lists Wed 01/10 09:00AM
pa02 true Leetcode practice with binary search trees Wed 01/24 09:00AM
pa03 true Leetcode practice with stacks and queues Wed 02/21 09:00AM
pa04 true Leetcode practice with hashtables and hashmaps Sat 03/02 09:00AM
pa05 true Leetcode practice with graph search - bfs and dfs Sat 03/02 09:00AM

Office hours

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