Milestone map
4 milestones
Design Interfaces and Document Complexity Contracts
1 week
Before writing implementation code, design the interface (API) for each data structure: linked list, binary search tree, hash table, min-heap, and adjacency-list graph. For each structure, specify the supported operations, their time and space complexity, and any preconditions or invariants. This design-first step enforces understanding before implementation and is required documentation for the completeness of this milestone.
Proof required
Submit a design document (or README) defining the interface for all five data structures. For each structure, provide: (a) a list of all supported operations with method signatures, (b) the time complexity (Big-O) of each operation with a one-sentence justification, (c) the space complexity, and (d) one invariant the implementation must maintain (e.g., 'BST property: for any node N, all values in N's left subtree are less than N.key'). The document must be written before any implementation code exists.
What gets checked
Common mistakes
Resources
What a verifier looks for
You'll sign in first, then come straight back here.
Implement All Five Data Structures Without Library Primitives
3–5 weeks
Implement all five data structures (linked list, BST, hash table, min-heap, adjacency-list graph) from scratch in a single programming language. 'From scratch' means no use of language standard library data structure implementations — you may use arrays, primitive types, and basic I/O. Each implementation must include all operations specified in your design document and must compile and run without errors.
Proof required
Submit a public GitHub repository (or equivalent) containing the five implementations in a single language. The repository must include: (a) one source file or module per data structure, (b) a README with build and run instructions, (c) at least three worked examples per data structure showing correct output, and (d) confirmation that no standard library data structure types (e.g., Python's list as a linked list, Java's TreeMap as a BST) are used in the implementations.
What gets checked
Common mistakes
Powstik Guide
Five data structures built without library helpers.
Steps
Template
| Structure | Operations | Complexity | File | |-----------|------------|------------|------| Repository link:
What gets sent back
Resources
Foundationstart here
Depthgo deeper
What a verifier looks for
You'll sign in first, then come straight back here.
Write Comprehensive Test Suites for All Implementations
1–2 weeks
Write a formal test suite (using a testing framework in your chosen language) for all five data structures. Tests must cover: correct operation for normal cases, edge cases (empty structure, single element, duplicate values), and operations that should raise errors or return sentinel values. The test suite must be runnable and all tests must pass against your implementations.
Proof required
Submit the test suite as part of the same repository. The suite must include: (a) at least eight tests per data structure (40 minimum total), (b) at least two edge-case tests per data structure, (c) a test runner output showing all tests passing, and (d) a brief description of what each test group covers. The test runner output must be reproducible — tests pass on a fresh clone.
What gets checked
Common mistakes
Powstik Guide
Test suites with at least eight tests per structure.
Steps
Template
| Structure | Tests | Edge cases covered | |-----------|-------|--------------------| Run command: Result:
What gets sent back
Resources
Foundationstart here
Depthgo deeper
What a verifier looks for
You'll sign in first, then come straight back here.
Complete Expert Q&A on Design Decisions and Complexity Analysis
1 week
Present your implementations to a CS professional (software engineer with experience in algorithms/data structures, CS lecturer, or equivalent) for a technical review. The reviewer will ask questions about your design decisions and complexity analysis that you must answer correctly in real time. This is a technical conversation, not a presentation — no slides required.
Proof required
Submit: (a) a written record of the expert Q&A session (minimum 500 words) documenting the questions asked and your responses, or a link to a recording, and (b) written confirmation from the reviewer stating their professional background, the date of the session, that the questions were technical and not pre-shared, and their overall assessment of your understanding. The reviewer must confirm you answered at least four technical questions in real time without consulting notes.
What gets checked
Common mistakes
Powstik Guide
A 500-word record of an expert Q&A on your code.
Steps
Template
Expert: Role: Date: | Question | My answer | Their follow-up | |----------|-----------|-----------------|
What gets sent back
Resources
Foundationstart here
Depthgo deeper
What a verifier looks for
You'll sign in first, then come straight back here.