
Algorithm Design Paradigms and Amortised Analysis
Students will understand abstraction as simplifying complex ideas by focusing on essential details and hiding unnecessary ones.
About This Topic
Students will understand abstraction as simplifying complex ideas by focusing on essential details and hiding unnecessary ones.
Key Questions
- Compare divide-and-conquer, greedy, and dynamic programming paradigms, providing a canonical problem for each and explaining why the other two paradigms fail or are suboptimal for that problem.
- Apply amortised analysis (aggregate, accounting, or potential method) to a dynamic array to explain why the amortised cost of append is O(1) despite occasional O(n) resizing operations.
- Evaluate whether a greedy algorithm yields an optimal solution for the activity-selection problem and the 0/1 knapsack problem, and explain the structural difference between these two problems that accounts for the different outcomes.
Active Learning Ideas
See all activities→Activities & Teaching Strategies
See all activities
More in Abstract Data Structures and Algorithms
Introduction to Computational Thinking
Students will be introduced to the core concepts of computational thinking: decomposition, pattern recognition, abstraction, and algorithms, as problem-solving tools.
8 methodologies
Linked Lists: Implementation and Complexity Analysis
Students will learn basic ways to organize data using simple lists and tables, understanding how this helps in managing information.
8 methodologies
Stacks and Queues: Implementations and Applications
Students will identify and create simple step-by-step instructions (algorithms) for everyday tasks, understanding the importance of order and precision.
8 methodologies
Binary Trees and Binary Search Trees
Students will explore how 'if-then-else' statements allow programs to make decisions and respond to different conditions.
8 methodologies
AVL Trees and Height-Balanced Structures
Students will learn about loops (e.g., 'repeat' or 'for' loops) to perform actions multiple times, making programs more efficient.
8 methodologies
Hash Tables and Collision Resolution Strategies
Students will understand how variables are used to store and retrieve different types of data (numbers, text) in a program.
8 methodologies