Language

Continue on this page in your preferred language.

Settings

Adjust this browser’s reading experience. Changes take effect immediately.

AX26-CS-101 · 2026-27

Algorithm Design

Specify a problem, design an algorithm, prove partial correctness, and give a complexity bound that matches the model of computation used.

Estimated study
150 hours
Level
Undergraduate level
Topics
8

Course topics

  1. 01Specifications and proof
  2. 02Invariants
  3. 03Complexity
  4. 04Recursive design
  5. 05Divide and conquer
  6. 06Greedy algorithms
  7. 07Dynamic programming
  8. 08Examination synthesis
Detailed syllabus and learning aims

Module aims

Produce examination-style arguments that keep specification, invariant, and runtime in one chain rather than as disconnected slogans.

Course outline

  1. 01 Specifications and proof 20h

    Learning result Write preconditions, postconditions, and a correctness claim that can fail if either is dropped.

    Formative check Four-option check

  2. 02 Invariants 20h

    Learning result Propose an invariant, prove initialisation, maintenance, and termination.

    Formative check Written derivation

  3. 03 Complexity 20h

    Learning result Give a worst-case bound with an explicit cost model and a matching family of inputs.

    Formative check Written derivation

  4. 04 Recursive design 15h

    Learning result Turn a recurrence into a runtime bound using a tree or Master-method case that applies.

    Formative check Written derivation

  5. 05 Divide and conquer 15h

    Learning result Identify divide, combine, and the size of subproblems on a standard problem such as mergesort.

    Formative check Four-option check

  6. 06 Greedy algorithms 20h

    Learning result Give an exchange or stay-ahead argument, or a counterexample showing greed fails.

    Formative check Counterexample

  7. 07 Dynamic programming 20h

    Learning result State the subproblem, the recurrence, and the evaluation order.

    Formative check Written derivation

  8. 08 Examination synthesis 20h

    Learning result Produce one end-to-end argument: specify, design, prove, analyse.

    Formative check Written derivation

Learning results

For a stated computational problem, give a specification, an algorithm, an invariant or induction, and a big-O bound with a cost model.

Subject skills

Loop invariants, induction, recurrences, greedy exchange, dynamic-programming substructure.

Transferable skills

Separate “it worked on examples” from a proof; name the model when quoting a runtime.

Related introductory topics
01Specifications and proof3 topics
  1. Problem specifications and correctness
  2. Loop invariants
  3. Asymptotic complexity
Chapter link
02Recursive design2 topics
  1. Recursive correctness and termination
  2. Divide and conquer
Chapter link
03Optimisation strategies2 topics
  1. Greedy strategies and exchange arguments
  2. Dynamic programming and state design
Chapter link
04Examination synthesis1 topic
  1. Algorithm examination synthesis
Chapter link
Learning depths

Conceptual Understanding

State the specification, invariant and complexity measure before writing detailed code.

Independent Problem Solving

Design and analyse algorithms on concrete instances with explicit correctness claims.

Derivation and Transfer

Prove correctness and transfer the complexity argument to a related problem.

Sign in to AXIOVUM

IP Geolocation by DB-IP · CC BY 4.0