📁 Documents
Course documents and compulsory task files
🎓 Lecture Slides
All 201 lecture slides organized by lecture
💡 Concept Index
Quick reference to key concepts with direct slide links
01 ✔️ Algorithm Correctness
Logic requirements: Total correctness = Partial + Stop property
L1 • Slide 1-302 📋 Specification Role
Contents and role: Input/Output conditions defining the computational task
L1 • Slide 4-1003 ✓ Total vs Partial Correctness
Partial: if stops, then correct. Total: stops AND correct.
L1 • Slide 1204 🛑 Stop Property
Proof of termination (necessary for Total Correctness)
L1 • Slide 10, 1505 🔄 Loop Invariant
Properties: Initialization, Maintenance, and Termination
L1 • Slide 12-1906 🔍 Linear Search Invariant
[COMPULSORY] Example of proving correctness via invariants
L1 • Slide 20 ⭐ Exam Compulsory06 📈 Time & Space Complexity
[COMPULSORY] Resource usage (pessimistic, average) relative to input n
L2 • Slide 27-31 ⭐ Exam Compulsory07 ⚖️ Complexity Analysis
Determining complexity: identifying dominating operations and data size
L2 • Slide 28-3108 📈 Asymptotic Notation
[COMPULSORY] Big O, Ω, Θ, o, ω: definitions, role, and usage
L2 • Slide 36-39 ⭐ Exam Compulsory09 📊 Function Ranks
[COMPULSORY] Comparing ranks: log n < power < exp < factorial
L2 • Slide 41 ⭐ Exam Compulsory10 📐 W(n), A(n), B(n) Definitions
[COMPULSORY] Formal definitions of Pessimistic, Average, and Optimistic time complexity
L2 • Slide 32-35 ⭐ Exam Compulsory10 🔍 Sequential Search
Idea and complexity of linear search on unsorted data
L3 • Slide 4311 ⏭️ Skipping Algorithm
Role of k parameter: how k influences time complexity
L3 • Slide 4612 🔍 Binary Search
[COMPULSORY] O(log n) search in sorted sequences; exact simulation expected
L3 • Slide 48-54 ⭐ Exam Compulsory13 📊 Selection Problem
Finding k-th smallest element; naive vs optimized approaches
L3 • Slide 5514 🏆 Tournament Method
Finding Min & Max simultaneously with optimal comparisons
L3 • Slide 5615 ⚖️ Partition Function
[COMPULSORY] Array partitioning around pivot; simulation variant is key
L3 • Slide 60 ⭐ Exam Compulsory16 🔬 Hoare's QuickSelect
Expected O(n) selection using randomized partition technique
L3 • Slide 6217 ✂️ Divide and Conquer
Key algorithm design strategy: split into subproblems, solve recursively, combine
L3 • Slide 4617 🎯 Selection Sort
[COMPULSORY] O(n²) sorting; repeatedly finding minimum
L4 • Slide 67-70 ⭐ Exam Compulsory18 ➡️ Insertion Sort
[COMPULSORY] O(n²) worst, O(n) best; builds sorted portion
L4 • Slide 72-76 ⭐ Exam Compulsory19 🔀 Merge Sort & Function
[COMPULSORY] O(n log n) stable sort; exact merge simulation expected
L4 • Slide 78-82 ⭐ Exam Compulsory20 🔗 Sorting Linked Lists
Comparing sorting efficiency on arrays vs linked segments
L4 • Slide 8521 📝 Sorting Problem Definition
Formal specification: input/output conditions and total-order relation
L4 • Slide 6621 ⚖️ Stability in Sorting
Preserving relative order; knowing which algorithms are stable
L5 • Slide 9122 ⚡ QuickSort
Fast expected O(n log n); uses Partition as subroutine
L5 • Slide 92-10323 📉 Complexity Limit Ω(n log n)
Theoretical lower bound for comparison-based sorting
L5 • Slide 104-10524 🔢 CountSort
[COMPULSORY] O(n+k) non-comparison sort; exact phase simulation expected
L5 • Slide 106-107 ⭐ Exam Compulsory25 🔢 RadixSort
[COMPULSORY] Digit-by-digit sorting using stable subroutine
L5 • Slide 108-109 ⭐ Exam Compulsory26 📊 Sorting Comparison Summary
Comparative analysis of all sorting algorithms: strengths, weaknesses, properties
L5 • Slide 11026 🏗️ ADT Definition
Logical model of data (Specification) vs Concrete Data Structure
L7 • Slide 11227 🔗 Linked Lists
Singly, Doubly, and Cyclic linked lists; properties/complexities
L7 • Slide 113-11828 📊 Arrays vs Linked Lists
Detailed complexity comparison of basic operations
L7 • Slide 11329 📚 Linear Structures
Stack (LIFO), Queue (FIFO), Deque; efficient array/list implementations
L7 • Slide 121-12530 📊 Amortized Analysis
Aggregate, Accounting, and Potential methods
L7 • Slide 126-13331 📈 Dynamic Arrays
[ADVANCED] Doubling strategy and amortized insert complexity
L7 • Slide 13532 🔧 List Operations
Insert, remove, move, splice, concat, pushBack/Front and their complexities
L7 • Slide 119-12032 🌳 Binary Tree Basics
Nodes vs height; level properties and complete/full tree definitions
L8 • Slide 14833 ⭐ Priority Queue ADT
Concept, definition, and efficient implementations vs naive ones
L8 • Slide 146-14734 🌳 Binary Heap
[COMPULSORY] Implementation as array; complexity of Sift-Up/Down
L8 • Slide 150-153 ⭐ Exam Compulsory35 ➕ Heap Operations
[COMPULSORY] Insertion, delMin, and BuildHeap (O(n)) procedures
L8 • Slide 154-162 ⭐ Exam Compulsory36 ⚡ HeapSort
[COMPULSORY] In-place O(n log n) sorting using the heap build/extract process
L8 • Slide 163-165 ⭐ Exam Compulsory37 🌲 Binomial Heap
[OPTIONAL] Advanced heap variants for fast forest merging
L8 • Slide 166-16838 📂 Dictionary ADT
Concept, definition, and comparison of naive vs hash implementations
L9 • Slide 170-17139 #️⃣ Hash Tables
Collision handling: Chaining vs Open Addressing (Linear Probing)
L9 • Slide 172-17840 🌲 Binary Search Tree
[COMPULSORY] BST property; exactly simulating Search/Insert/Delete
L9 • Slide 179-184 ⭐ Exam Compulsory41 🔄 BST Traversal
Inorder, Preorder, Postorder; producing sorted output from BST
L9 • Slide 18542 ⚖️ AVL Trees
AVL Balance Factor and idea of rotations for self-balancing
L9 • Slide 188-19243 🔴⚫ Red-Black Trees
Binary balance through node coloring and rotation rules
L9 • Slide 193-19744 📂 B-Trees
Multi-way balanced search trees for external storage caching
L9 • Slide 198-20045 🔄 Self-organising Trees
[OPTIONAL] Heuristic-based tree adjustment (Splay Trees)
L9 • Slide 20146 🔎 BST Min/Max/Successor
Finding minimum, maximum, and successor in a BST; O(h) operations
L9 • Slide 186-18747 📋 Ordered Set ADT
Dynamic Ordered Set: search, insert, delete, min, max, successor, predecessor
L9 • Slide 179📝 Additional Non-Compulsory Tasks
Extra practice materials and example solutions
🧠 ASD Knowledge Quiz
Test your understanding of algorithms and data structures
Ready to test your skills?
35+ questions covering all 8 lectures (randomized each time)