Milestone map
3 milestones
Master Loop Invariants and Formal Induction Proofs
8–14 weeks (after study of discrete mathematics fundamentals)
Study formal methods for proving algorithm correctness: loop invariants, structural induction, and mathematical induction. Apply these to at least five standard algorithms — binary search, insertion sort, merge sort, and two others of your choice. For each algorithm, write a formal correctness proof using the loop invariant method: initialisation, maintenance, and termination.
Proof required
Submit: five formal correctness proofs (one per algorithm) each following the loop invariant structure — initialisation (invariant holds before first iteration), maintenance (if it holds before iteration k, it holds before iteration k+1), and termination (invariant implies correctness when loop terminates). Each proof must be submitted as a typed document. Submit to a CS lecturer, researcher, or experienced software engineer, who must confirm in writing that the proofs are formally valid.
What gets checked
Common mistakes
Resources
Foundationstart here
Depthgo deeper
What a verifier looks for
You'll sign in first, then come straight back here.
Prove Complexity Bounds and Reduction Correctness
8–12 weeks (after milestone 1)
Apply formal proof methods to computational complexity: prove Big-O, Omega, and Theta bounds for at least five algorithms using formal definitions (not asymptotic intuition). Additionally, prove at least one problem reduction — show that problem A reduces to problem B in polynomial time, and that correctness of the reduction follows formally.
Proof required
Submit: five formal complexity proofs (one per algorithm) each showing Big-O, Omega, and Theta bounds using the formal limit or constant-finding definition — not informal 'the inner loop runs n times' reasoning; and one formal problem reduction proof showing the reduction, its polynomial time bound, and its correctness. All six proofs must be reviewed and verified by a CS lecturer or researcher who confirms they are formally valid.
What gets checked
Common mistakes
Resources
Foundationstart here
Depthgo deeper
What a verifier looks for
You'll sign in first, then come straight back here.
Prove Correctness of a Novel Algorithm
6–12 weeks (after milestone 2)
Design an algorithm to solve a problem not covered in any textbook or course materials you used — and formally prove its correctness and complexity. The algorithm must solve a well-specified problem. The proof must be reviewed and challenged by a CS lecturer or researcher in a live or recorded session.
Proof required
Submit: a well-specified problem statement; a description of the algorithm; a formal correctness proof; a formal complexity proof; and a recording or transcript of a live review session with a CS lecturer or researcher where they challenged at least one aspect of the proof and you responded.
What gets checked
Common mistakes
Resources
Foundationstart here
Depthgo deeper
What a verifier looks for
You'll sign in first, then come straight back here.