Thinking
Sharpen how you reason and solve problems — logical thinking, algorithmic thinking, and a rigorous Algorithms track that presents each algorithm in both mathematical and programming form.
Logical Thinking
Master the building blocks of logic: propositions, truth values, AND, OR, NOT, exclusive-or, and simple if-then reasoning.
Logical Thinking
Go deeper with biconditionals, contrapositive reasoning, logical equivalence, De Morgan's laws, tautologies, contradictions, and common logical fallacies.
Logical Thinking
Predicate logic, quantifiers, formal proof techniques, Boolean algebra laws, and logical puzzle reasoning for rigorous analytical thinking.
Algorithmic Thinking
Learn what an algorithm is, how to write clear step-by-step instructions, and how to express simple logic using pseudocode and flowcharts.
Algorithmic Thinking
Develop deeper algorithmic skills: decompose problems, recognise patterns, compare searching and sorting ideas, and begin evaluating efficiency.
Algorithmic Thinking
Master advanced algorithmic concepts: divide and conquer, greedy and brute-force strategies, Big-O complexity intuition, recursion, invariants, and optimisation trade-offs.
Algorithms
What algorithms are, how to measure their cost with Big-O notation, and the essential building-blocks: linear search, binary search, and the O(n²) sorting algorithms.
Algorithms
Divide-and-conquer, merge sort, quicksort, the master theorem, recursion, hashing, stacks, queues, and two-pointer techniques.
Algorithms
Graph algorithms (BFS, DFS, Dijkstra), dynamic programming, greedy algorithms, heaps, and a precise treatment of Θ, O, and Ω.
Algorithms
Advanced DP, minimum spanning trees, Bellman-Ford, Floyd-Warshall, amortised analysis, NP-completeness, reductions, and lower bounds.