University of Nottingham Ningbo China

CELE N086 Introduction to Algorithms

Autumn Semester 2024/25 10 UK Credits Instructor: Chenfei Zhang

The design, analysis and rigorous communication of efficient algorithms: translating problem statements into computational models, selecting suitable design paradigms, proving correctness, and analysing time and space complexity — from stable matching and graph algorithms through greedy design, divide and conquer, dynamic programming, network flow, reductions and computational intractability.

Course Overview

Module Summary

This module introduces the design, analysis and rigorous communication of efficient algorithms. Students learn to translate problem statements into computational models, select suitable design paradigms, prove correctness, and analyse time and space complexity. The course develops core methods in stable matching, graph algorithms, greedy design, divide and conquer, dynamic programming, network flow, reductions and computational intractability. It also provides an introductory treatment of linear programming, approximation algorithms and lower-bound reasoning.

Algorithmic problem solving requires more than implementing code. Students must be able to justify why an algorithm is correct, understand when it is efficient, recognise when a natural approach fails, and explain the consequences of modelling choices. The module therefore emphasises pseudocode, mathematical proof, counterexamples, reductions, and clear written reasoning alongside selected programming exercises.

Teaching and Learning Methods

  • Lectures introduce design paradigms, canonical algorithms, proof patterns and modelling choices.
  • Tutorials use worked examples, small-group reasoning, proof critique and timed design exercises.
  • Homework combines mechanical execution questions with longer design-and-proof problems.
  • Selected tasks may require implementation to test an algorithm empirically, but programming is not the primary mode of assessment.
  • Feedback emphasises the separation of algorithm description, proof of correctness and complexity analysis.
  • Examples are drawn from scheduling, matching, routing, resource allocation, data processing and other applied settings.

Indicative Workload (100 hours)

Indicative distribution of the 100-hour student workload
Learning ActivityIndicative HoursPurpose
Lectures32 hoursTwo hours per week: concepts, worked examples and proof techniques
Tutorials / guided problem solving16 hoursOne hour per week: design exercises, proof critique and exam-style practice
Independent study and reading20 hoursTextbook reading, review of lecture material and preparation
Eight homework assignments24 hoursApproximately three hours per assignment
Examination preparation and completion8 hoursReview and completion of two midterms and a comprehensive final

Prerequisites and Assumed Knowledge

  • Introductory programming proficiency in a high-level language, with the ability to implement and test basic algorithms.
  • Familiarity with arrays, linked structures, stacks, queues, trees, hash tables and basic graph representations.
  • Basic discrete mathematics, including sets, functions, relations, propositional logic, induction and elementary probability.
  • Comfort with algebraic manipulation, logarithms and summations.
  • Prior exposure to mathematical proof is expected; concise review is provided during the opening weeks.

Note on prerequisites and add codes

First- and second-year students who have not completed the prerequisite courses may submit an application to obtain an add code for the course.

Learning Outcomes

By the end of the module, a successful student should be able to:

  1. Translate a word problem or real-world situation into a precise computational problem with clearly defined inputs, outputs and constraints.
  2. Analyse asymptotic time and space complexity using O, Ω and Θ notation, recurrences and appropriate worst-case reasoning.
  3. Design algorithms using graph traversal, greedy methods, divide and conquer, dynamic programming and network-flow modelling.
  4. Prove algorithm correctness using induction, loop invariants, exchange arguments, stays-ahead arguments, cut/cycle properties and contradiction.
  5. Identify counterexamples to incorrect algorithms and explain why a plausible strategy fails.
  6. Apply BFS, DFS, topological ordering, strongly connected components, shortest-path and minimum-spanning-tree algorithms to modelled problems.
  7. Formulate and solve dynamic-programming recurrences, including reconstruction of an optimal solution and basic space optimisation.
  8. Construct flow networks and use max-flow/min-cut reasoning for matching, assignment and disjoint-path problems.
  9. Construct valid polynomial-time reductions and distinguish among polynomial-time solvability, NP-hardness and NP-completeness.
  10. Apply introductory linear-programming or approximation methods when exact polynomial-time computation is unavailable or impractical.
  11. Communicate an algorithm through precise pseudocode, a correctness argument and a rigorous complexity analysis.
  12. Evaluate how modelling assumptions, objective functions and data choices may affect real-world outcomes.

Topics and 16-Week Schedule

Readings refer to Kleinberg & Tardos, Algorithm Design (KT), with selected sections from Cormen, Leiserson, Rivest & Stein (CLRS) and instructor notes.

Detailed 16-week teaching schedule with topics, key concepts, readings and assessment milestones
Week Lecture Topics Key Concepts and Algorithms Reading Assessment Milestone
1 Foundations of algorithm design Problem specification; pseudocode; correctness; O, Ω, Θ; worst-case analysis; induction and loop invariants KT, introductory analysis sections HW 1 assigned
2 Stable matching and recurrences Gale–Shapley; termination and stability; proposer-optimality; recurrences; Master Theorem; modelling implications KT, stable matching and analysis sections HW 1 due
3 Graph search Graph representations; BFS; DFS; connected components; reachability; shortest unweighted paths KT, graph algorithms sections HW 2 assigned
4 Directed graphs and modelling Topological sorting; strongly connected components; bipartite testing; reductions to graph problems KT, graph algorithms sections HW 2 due
5 Greedy design I Interval scheduling; minimising lateness; optimal caching; greedy-choice property; stays-ahead proofs KT, greedy algorithms sections HW 3 assigned
6 Greedy design II MST cut/cycle properties; Kruskal; Prim; Dijkstra; Huffman coding; failure cases KT, greedy algorithms sections HW 3 due Midterm 1 review
7 Divide and conquer I Merge sort; binary-search variants; counting inversions; recurrence formulation and analysis KT, divide-and-conquer sections Midterm 1 HW 4 assigned
8 Divide and conquer II and lower bounds Selection; closest pair; maximum subarray; fast multiplication; comparison-tree lower bounds; brief pattern-matching application KT and CLRS selected sections HW 4 due
9 Dynamic programming I Optimal substructure; memoisation/tabulation; weighted interval scheduling; 0/1 knapsack; reconstruction KT, dynamic-programming sections HW 5 assigned
10 Dynamic programming II LCS/LIS; sequence alignment; grid DP; Bellman–Ford; negative edges; space optimisation KT, dynamic-programming sections HW 5 due Midterm 2 review
11 Advanced dynamic programming Adding state parameters; DP on trees; correctness and runtime; integration of paradigms KT and instructor notes Midterm 2 HW 6 assigned
12 Network flow fundamentals Flow networks; residual graphs; augmenting paths; Ford–Fulkerson; Edmonds–Karp; max-flow/min-cut KT, network-flow sections HW 6 due
13 Network flow applications Bipartite matching; assignment; edge-disjoint paths; circulation with demands; modelling transformations KT, network-flow sections HW 7 assigned
14 Computational complexity and reductions Decision problems; P and NP; certificates; polynomial reductions; SAT/3-SAT; Independent Set, Vertex Cover, Clique KT, NP-completeness sections HW 7 due
15 Intractability, LP and approximation Hamiltonian Cycle/TSP reductions; proving NP-hardness; linear-programming models; 2-approx Vertex Cover; greedy Set Cover; brief randomisation KT, approximation/LP sections HW 8 assigned
16 Synthesis and comprehensive assessment Paradigm selection; modelling choices; cumulative problem solving; connections among flow, LP, reductions and approximation Review materials and selected prior readings HW 8 due Final examination

Assessment

The final module mark uses a fixed 20 / 20 / 20 / 40 distribution. No unlisted assessment component may change this grading distribution.

Homework 20%

Eight assignments, each worth 2.5% (one-eighth of the homework category), scheduled approximately once every two weeks.

Midterm Examination 1 20%

Week 7. Asymptotic analysis; correctness; stable matching; graph search and modelling; greedy algorithms; introduction to divide and conquer.

Midterm Examination 2 20%

Week 11. Divide and conquer; recurrences and lower bounds; dynamic-programming formulation, correctness and analysis; shortest paths with negative edges.

Final Examination 40%

Week 16 / formal examination period. Comprehensive, with particular emphasis on advanced dynamic programming, network flow, reductions, NP-completeness, linear programming and approximation algorithms.

Homework Assignment Overview

Homework assignments with weight, timing and principal coverage
AssignmentWeightTimingPrincipal Coverage
HW 12.5%Weeks 1–2Asymptotic analysis, recurrences, proof review and stable matching
HW 22.5%Weeks 3–4BFS/DFS, topological ordering, SCCs, bipartite testing and graph modelling
HW 32.5%Weeks 5–6Greedy design, exchange arguments, MSTs, shortest paths and counterexamples
HW 42.5%Weeks 7–8Divide and conquer, recurrence solving, inversions, selection and lower bounds
HW 52.5%Weeks 9–10Weighted interval scheduling, knapsack, sequence problems and Bellman–Ford
HW 62.5%Weeks 11–12Advanced DP, DP on trees, solution reconstruction and basic flow algorithms
HW 72.5%Weeks 13–14Max-flow/min-cut, matching, assignment, disjoint paths and reductions
HW 82.5%Weeks 15–16NP-completeness, approximation, linear programming and cumulative synthesis

Typical homework structure. Each assignment contains short execution or counterexample questions and two to four long-form problems requiring algorithm design, pseudocode, proof and complexity analysis. A small implementation component may be included where it supports conceptual understanding.

Assessment emphasis. Marks reward a correct and unambiguous algorithm, an appropriate proof of correctness, valid runtime and space analysis, and clear mathematical communication. An unsupported final answer receives limited credit even when correct.

Algorithm Writing and Proof Expectations

Unless a question states otherwise, a complete algorithmic solution should contain three distinct components:

1. Algorithm Description

Precise pseudocode or a clear language-independent procedure, including inputs, outputs and important data structures.

2. Correctness Argument

A proof using an appropriate method, not merely an example or an assertion that the algorithm is intuitive.

3. Complexity Analysis

A justified asymptotic bound in terms of clearly defined input parameters, including major data-structure operations.

Students are expected to distinguish between a proof that an algorithm terminates, a proof that its output is feasible, and a proof that its output is optimal. For reductions, both directions of the equivalence must be justified where required, and the transformation itself must run in polynomial time.

Course Policies

Submission and Late Work

  • Homework is normally submitted electronically by the stated deadline.
  • Unless an approved extension or documented extenuating circumstance applies, late work may receive a penalty consistent with university and teaching-unit regulations.
  • Students should retain copies of submitted work and any permitted code or data files.
  • No unlisted assessment component may change the fixed 20/20/20/40 grading distribution.

Collaboration

Students may discuss general concepts and high-level approaches with classmates unless an assignment states otherwise. Every submitted solution, proof, pseudocode fragment and implementation must be written independently. Sources and collaborators that materially influenced a solution must be acknowledged. Sharing completed solutions, copying code or jointly composing a written proof is not permitted.

Academic Integrity

All work is subject to University of Nottingham academic-integrity requirements. Plagiarism, contract cheating, unauthorised collaboration, misrepresentation of sources and submission of work not produced by the student may be referred through the applicable academic-misconduct process.

Use of Generative AI and External Tools

External references, programming assistants and generative-AI systems may be used only to the extent explicitly permitted for a particular task. Unless the instructor states otherwise, students may use such tools for general study, syntax clarification and generation of additional practice questions, but not to produce a submitted algorithm, proof, reduction or written explanation. Any permitted material assistance must be disclosed. Students remain responsible for the correctness, originality and integrity of everything submitted.

Accessibility and Inclusive Learning

Students who require reasonable adjustments should contact the appropriate university support service and the instructor as early as practical. Course materials should be provided in accessible digital formats where available. Alternative arrangements for timed assessments are governed by approved accommodations. Examples and case studies should be discussed critically, especially where an algorithmic model may disadvantage a population or omit important real-world constraints.

Textbooks and Learning Resources

Primary Text

Algorithm Design

Jon Kleinberg and Éva Tardos — Pearson/Addison-Wesley

Principal source for stable matching, greedy algorithms, divide and conquer, dynamic programming, network flow, NP-completeness and approximation.

Supplementary

Introduction to Algorithms

Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein — MIT Press

Alternative explanations, formal analysis and extended algorithm reference.

Supplementary

Algorithms

Sanjoy Dasgupta, Christos Papadimitriou and Umesh Vazirani — McGraw-Hill

Concise treatment of design paradigms, flows, linear programming and complexity.

Supplementary

Introduction to Algorithms: A Creative Approach

Udi Manber — Addison-Wesley

Problem-solving and proof-oriented perspective.

Course Materials

Instructor-Provided Materials

Lecture notes, tutorial sheets, worked examples and review problems

Used to align terminology, proof expectations and assessment format.

University Systems and Student Services

Students at the University of Nottingham Ningbo China access module information and services through the following official university systems. For the full list, visit the UNNC Information for Students hub (official university website).

UNNC Portal

Central information hub and service centre — university news, notices, events and student service applications.

NottinghamHub

Essential student record and registration system.

Moodle

Online learning management system.

Blue Castle

Module results and student evaluation system.

University Email

Access your University email account online.

Library & Timetable

Library services, academic calendar, teaching timetable and examinations — all linked from the UNNC Portal.

Instructor

Chenfei Zhang

Module Instructor — CELE N086 Introduction to Algorithms

Office hours, consultation arrangements and contact details are communicated through official module channels at the University of Nottingham Ningbo China.

Departmental Contact

CELE Professional Services Office

Location
Trent Building 315
Telephone
0574 - 8818 0000 - 8664

Contact details are taken from the official UNNC Information for Students hub. Students requiring accessibility adjustments can also contact the Disability Support Service at disability-support@nottingham.edu.cn.

Important Dates

Milestones are stated by teaching week of the 16-week Autumn semester. All dates are subject to official university timetabling and any updates issued by the instructor.

Major assessment milestones by teaching week
WeekMilestoneWeight
Week 2Homework 1 due2.5%
Week 4Homework 2 due2.5%
Week 6Homework 3 due; Midterm 1 review2.5%
Week 7Midterm Examination 120%
Week 8Homework 4 due2.5%
Week 10Homework 5 due; Midterm 2 review2.5%
Week 11Midterm Examination 220%
Week 12Homework 6 due2.5%
Week 14Homework 7 due2.5%
Week 16Homework 8 due2.5%
Week 16 / exam periodComprehensive Final Examination40%