Introduction to Data Structures and Algorithms
Venue: PH-115, Busch Campus, Rutgers University
Time: Tuesdays and Fridays 12:10-1:30 pm ET
SPRING 2026
Venue: PH-115, Busch Campus, Rutgers University
Time: Tuesdays and Fridays 12:10-1:30 pm ET
SPRING 2026
Office hours: Fridays 2-3 pm (Hill 407)
Pratham Chauhan
💼 What the course offers: This is a graduate-level course designed to learn how to think algorithmically and use the right data structures to solve computational problems. We explore a range of useful data structures and elegant algorithmic paradigms, learning how to analyze their complexity and correctness.
🎓 What You’ll Gain: a strong foundation in data structures and core algorithmic principles that every computer scientist must master. You’ll develop the skills to design efficient programs, reason rigorously about performance, and tackle complex computational problems with confidence. Whether you're heading into research, software engineering, or the startup world, this graduate-level course sets you up with crucial and foundational skills.
Discrete Math, Calculus, Logarithms, Series Sum, and Logic. Basic proof techniques such as proof by induction and proof by contradiction.
Undergraduate-level understanding of programming, algorithms, and data structures is expected.
Methods for expressing and comparing the time and space complexity of algorithms. Solving problems using core data structures such as arrays, linked lists, stacks, queues, hash tables, heaps, trees, and graphs. Algorithmic design paradigms: greedy, dynamic programming, and divide and conquer. Application of data structures, algorithmic techniques, and complexity analysis to a variety of problems, including allocation, searching, sorting, scheduling, packing, and graph problems (including bipartite matching, shortest path, and minimum spanning tree). NP and P problems (knapsack, satisfiability, vertex cover). NP Completeness and Reductions.
Algorithm Design by Kleinberg and Tardos [book slides]
30% Quizzes
20% Mid-term 1
20% Mid-term 2
30% Final exam
+5 Bonus points (based on class participation, at the discretion of the Instructor and TA)
Exams will be based on the materials taught in the class (including the parts that may not necessarily be covered in the textbook).
The quizzes, mid-term, and final exam will be handwritten. The quizzes and exams are NOT open-book; use of electronics (including laptops, tablets, and phones) as well as books, notes, or reference materials is strictly prohibited.
Due to the format of the quizzes, it will not be possible to retake any of the quizzes. However, to account for unforeseen circumstances, the lowest quiz score for each student will be dropped.
Students are expected to follow the Rutgers academic integrity policy and the CS Department academic integrity policy for all their work in this course.
For any absence-related issues, please read the absence policy before reaching out to the instructors/TAs.
All types of non-confidential course-related questions should be posted to the CANVAS discussion page only. For confidential questions to the instructor/TA, use the CANVAS inbox only.
Friday 01/30/2025, 12:10 - 12:40 pm: Quiz 1
Tuesday 02/10/2025, 12:10 - 12:40 pm: Quiz 2
Friday 02/27/2025, 12:10 - 1:30 pm: Mid-Term 1
Friday 03/13/2025, 12:10 - 12:40 pm: Quiz 3
Friday 03/27/2025, 12:10 - 12:40 pm: Quiz 4
Friday 04/07/2025, 12:10 - 1:30 pm: Mid-Term 2
Friday 04/24/2025, 12:10 - 12:40 pm: Quiz 5
Friday 05/08/2025, 12:00 - 3:00 pm: Final Exam