Spring 2026
Course materials licensed under CC BY-NC 4.0
The course reviews object-oriented design and discusses algorithm complexity, Big-O notation, and tractable and intractable algorithms. The course introduces concepts of abstract data types, basic data structures (i.e., lists, stacks, queues, and trees), and advanced data structures (i.e., graphs, sets, and heap). It also presents fundamental computing algorithms, including sorting, searching, and graph algorithms.
Lecture Progress
| Week | Plan | Notes |
|---|---|---|
| Week 1 (12 - 16 Jan) *12 Jan: Classes Begin. 16 Jan: End of Add/Drop |
Lecture 1: Introduction. Course Organization. Lecture 2: Arrays and LinkedLists. Analysis of Algorithms 1. |
Java Rev. |
| Week 2 (19 – 23 Jan) |
Lecture 3: Analysis of Algorithms 2. The big- Oh Notation, Complexity analysis examples. Lecture 4: Analysis of Algorithms 3. Analysis examples (Fib iterative vs recursive) |
|
| Week 3 (26 – 30 Jan) |
Lecture 5: Analysis of Algorithms 4. Analysis Examples (Binary Search). Time vs Space trade-off Lecture 6: Complexity and Intractability 1. NP, NP-Hard, NP-Complete |
|
| Week 4 (2 – 6 Feb) |
Lecture 7: Complexity and Intractability 2. Turing Machine. Polynomial Reduction. Lecture 8: Unsorted Lists |
|
| Week 5 (9 – 13 Feb) |
Lecture 9: Sorted Lists. (Quiz 1 – Thursday 12 Feb). |
|
| Week 6 (16 – 20 Feb) |
Lecture 10: Stacks Lecture 11: Queues |
|
| Week 7 (23 – 27 Feb) |
Lecture 12: Sorting I. Selection, Bubble, Radix. Lecture 13: Sorting II. Quick Sort, Merge Sort. |
|
| Week 8 (2 – 6 Mar) *6 Mar - Mid Grade Due |
(Quiz 2 – Thursday 5 Mar). Lecture 14: Sorting III. Heap Sort. Insertion Sort. |
|
| Week 9 (9 – 13 Mar) |
Lecture 15: Binary Search Trees I. Midterm Exam: Wed 11 Mar Assignment/Project Issue – Wed 12 Mar |
|
| Week (16 – 27 Mar) |
Mid Semester Break +Eid Alfitr (19-20 Mar) | |
| Week 10 (30 Mar – 3 Apr) *30 Mar- Last day to drop w/”W” |
Lecture 16: Binary Search Trees II. Red Black Trees. Add Operation. Lecture 17: Binary Search Trees II. Red Black Trees. Delete Operation. |
|
| Week 11 (6 – 10 Apr) |
Lecture 18: Map ADT. Lecture 19: Sets and Priority Queues and Graph Preliminaries. |
|
| Week 12 (13 – 17 Apr) |
Lecture 20: Graph Search. Depth-First, Breadth-First, Uniform Cost Search. (Quiz 3 – Thursday 16 Apr). |
|
| Week 13 (20 – 24 Apr) |
Lecture 21: Graph Algorithms. Dijkstra; Minimum Spanning Tree Algorithms. Lecture 22: Text Compression and Tree Traversal. Assignment/Project Deadline: Thu 24 Apr at 11:59 PM |
|
| Week 14 (27 Apr – 1 May) 1 May - Last Day of Classes 4-14 May – Final Exams *19 May - Grades Publish Day |
Lecture 23: Filling the gaps |
Lab
| Week | Plan | Notes |
|---|---|---|
| Week 1 | No Lab | |
| Week 2 | Dynamic Memory Allocation | |
| Week 3 | Analysis of Algorithm Complexity (Part 1): Test different algorithms and measure the time complexity effects in practice. | |
| Week 4 | Analysis of Algorithm Complexity (Part 2): Link the Algorithm complexity concepts from theory to practice. | |
| Week 5 | Manipulating Unsorted Lists Lab Quiz 1 |
|
| Week 6 | Manipulating Sorted Lists | |
| Week 7 | Manipulating Stacks | |
| Week 8 | Manipulating Queues Lab Quiz 2 |
|
| Week 9 | Experiments with Sorting Algorithms Performance: Bubble & Selection Sort | |
| Week 10 | Experiments with Sorting Algorithms Performance: Quick Sort & Heap Sort | |
| Week 11 | Manipulating Binary Search Tree (BST) Lab Quiz 3 |
|
| Week 12 | Priority Queues |