Conceptual Understanding
在写详细代码之前,先写明规格、不变式与复杂度度量。

AX26-CS-101 · 2026-27
学习算法设计、正确性证明与复杂度分析,涵盖分治、贪心和动态规划。
Produce examination-style arguments that keep specification, invariant, and runtime in one chain rather than as disconnected slogans.
01 Specifications and proof 20h
学习结果 Write preconditions, postconditions, and a correctness claim that can fail if either is dropped.
形成性检查 四选一检查
02 Invariants 20h
学习结果 Propose an invariant, prove initialisation, maintenance, and termination.
形成性检查 书面推导
03 Complexity 20h
学习结果 Give a worst-case bound with an explicit cost model and a matching family of inputs.
形成性检查 书面推导
04 Recursive design 15h
学习结果 Turn a recurrence into a runtime bound using a tree or Master-method case that applies.
形成性检查 书面推导
05 Divide and conquer 15h
学习结果 Identify divide, combine, and the size of subproblems on a standard problem such as mergesort.
形成性检查 四选一检查
06 Greedy algorithms 20h
学习结果 Give an exchange or stay-ahead argument, or a counterexample showing greed fails.
形成性检查 反例
07 Dynamic programming 20h
学习结果 State the subproblem, the recurrence, and the evaluation order.
形成性检查 书面推导
08 Examination synthesis 20h
学习结果 Produce one end-to-end argument: specify, design, prove, analyse.
形成性检查 书面推导
For a stated computational problem, give a specification, an algorithm, an invariant or induction, and a big-O bound with a cost model.
Loop invariants, induction, recurrences, greedy exchange, dynamic-programming substructure.
Separate “it worked on examples” from a proof; name the model when quoting a runtime.
在写详细代码之前,先写明规格、不变式与复杂度度量。
在具体实例上设计并分析算法,并给出明确的正确性论断。
证明正确性,并把复杂度论证迁移到相关问题。