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) |
Algorithm Complexity Performance of Algorithms, Time and Space Tradeoff. Worst-case and Average-case performance. | |
| Week 3 (26 – 30 Jan) |
The big- Oh Notation, Complexity Calculations examples. | |
| Week 4 (2 – 6 Feb) |
NP Completeness and Approximation Algorithms. | |
| Week 5 (9 – 13 Feb) |
Fundamental Data Structures: Concept of Abstract Data Types (ADTs) (Quiz 1 – Wed 11 Feb). |
|
| Week 6 (16 – 20 Feb) |
ADT specification: Unsorted and Sorted Lists. | |
| Week 7 (23 – 27 Feb) |
Stacks. | |
| Week 8 (2 – 6 Mar) *6 Mar - Mid Grade Due |
Queues (Quiz 2 – Wed 4 Mar). | |
| Week 9 (9 – 13 Mar) |
Sorting and Searching Algorithms: Sorting: Behavior of Sorting Algorithms, Selection Sort, Bubble Sort. 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” |
Quick Sort, Hashing, Radix Sort. Heap Sort, Merge Sort. |
|
| Week 11 (6 – 10 Apr) |
Insertion Sort. | |
| Week 12 (13 – 17 Apr) |
Binary Search Trees. (Quiz 3 – Wed 15 Apr). |
|
| Week 13 (20 – 24 Apr) |
Advanced Data Structures: Priority Queues, Heaps 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 |
Graphs & Sets Algorithms. |
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 |