Skip to main content

Semester Project

Required Output Classification

Required outputClassificationPublic/private guidance
Runnable project implementation and repository structurePortfolio candidatePolish the public repo only after tests pass, secrets are removed, and setup steps work from a clean checkout.
README with setup, inspection, verification instructions, and known limitationsPortfolio candidateMake this public-facing if the project is safe to share; keep internal coursework notes in a private evidence folder.
Tests, traces, proofs, diagrams, benchmark outputs, or review notes required by the briefCheckpoint evidenceKeep raw logs, benchmark runs, and reviewer comments private by default; publish summarized or reproducible versions when useful.
ADRs, design memos, runbooks, benchmark reports, and other high-effort engineering writeupsPortfolio candidateThese are worth polishing publicly when they tell a clear tradeoff story; otherwise keep them as private coursework evidence.
Final reflection, retrospective, or carry-forward notesCheckpoint evidenceKeep candid self-assessment private unless rewritten as a concise public learning note.

Project title: Algorithm Explorer + CS Map Notebook

info

Build one small but real application that turns Semester 0 into evidence. The project should make one algorithm visible step by step, capture one clear CS-fundamentals explanation, and show that you can separate logic, data, and presentation cleanly.


Problem Statement

Semester 0 is easy to fake. You can read about algorithms, read about computer science, and read about clean code without producing any artifact that proves you can explain, structure, and verify your thinking.

This project fixes that by asking you to build one small tool that combines all three modules:

  1. It visualizes at least one algorithm from Module 1 so the state changes are visible instead of magical.
  2. It captures one usable CS explanation from Module 2 so your mental model becomes an artifact instead of a vague summary.
  3. It is organized with clear components, tests, and data flow so Module 3 stops being theory-only.

You may build this as a small web app, a CLI plus static HTML viewer, or a simple desktop-style local app. Keep the scope tight.


Functional Requirements

  • Visualize at least one algorithm step by step. Valid choices include binary search, quicksort partitioning, recursion on a tiny problem, or BFS on a small graph.
  • Let the user step forward through algorithm states and see what changed at each step.
  • Include one CS fundamentals explainer that covers a simple program or scenario using at least these headings: problem model, strategy, data choice, storage or representation choice, and execution stack.
  • Store at least one saved scenario, trace, or explainer artifact between runs using a simple documented storage choice such as JSON, SQLite, or browser local storage.
  • Expose the saved artifact back to the user so the project is more than a one-shot demo.
  • Include a short architecture note in the README explaining input, logic, storage, and output.

Non-Functional Requirements

  • The project must be runnable from the README in 5 minutes or less.
  • The codebase must separate domain logic from UI or presentation code.
  • The project must stay intentionally small enough to finish in Semester 0. Prefer completeness over ambition.
  • Names, file layout, and data shapes must be clear enough that another learner can follow the project without a guided tour.

Cross-Cutting Tracks

  • Track A (Testing L1): Write unit tests for at least one algorithm-step helper or state transition and one CS-explainer formatting or validation rule.
  • Track B (Git L1): Use small commits and at least two feature branches, such as feature/algorithm-visualizer and feature/cs-explainer.
  • Track E (Engineering Fundamentals L1): Include basic run instructions, input assumptions, and one short debugging note in the README or reflection.

Architecture Expectations

note

Semester 0 rewards clear boundaries over cleverness. Keep the moving parts obvious.

Expectations:

  • Keep algorithm-state generation and CS-explainer formatting outside click handlers or display code.
  • Document the stored data shape for traces, saved scenarios, or explainer notes.
  • Make the algorithm visualizer expose intermediate states, not only the final answer.
  • Leave one obvious extension point for a second algorithm or second explainer later, even if you do not build it now.

Suggested Milestones

MilestoneDeliverableNotes
1One algorithm visualizer can persist and reload a traceStart with plain data and tests before polish
2One CS explainer artifact is viewable in the appKeep the scope to one well-explained scenario
3The visualizer and explainer share a clear project structurePrefer one clean architecture over extra features
4README, reflection, and Git cleanupMake the project runnable and explainable

Optional Python Repair Extension

If your Python fundamentals are still shaky, add a small Wordle-style guessing lane before final submission. Keep it deliberately modest: a fixed answer, a six-guess limit, and feedback for exact matches, present letters, and missing letters.

Implementation requirements:

  • Model the game state with plain data first: answer, guesses, remaining attempts, and status.
  • Use variables, conditionals, loops, functions, lists, dictionaries or sets, modules, and file I/O at least once in meaningful places.
  • Put scoring and validation in testable functions, not in the input loop or UI.
  • Add tests for repeated letters, invalid guesses, win/loss transitions, and persisted game history.
  • Connect the extension back to the CS explainer by tracing one guess through input, validation, state update, feedback generation, storage, and display.

Evidence check: include one screenshot or terminal transcript, one state-transition test file, and a short note explaining why a set, dictionary, or list was the right data shape for at least one part of the game.


Deliverables Checklist

  • Repository or folder with a README covering problem, setup, run steps, and project structure
  • Working algorithm visualizer with labeled steps or states
  • Working CS fundamentals explainer that meets the functional requirements above
  • Tests for non-trivial logic
  • Git history that shows focused commits and branch-based work
  • Short reflection of about half to one page covering what was hard, what you would improve next, and which Semester 0 concept most changed the way you built the project

Grading Rubric

CriterionWeightExcellentAcceptableNeeds work
Meets requirements25%Visualizer, explainer, persistence, and README all work cleanlyMost core requirements work with small gapsMajor features missing or unclear
Code clarity and structure20%Clear boundaries, naming, and readable file layoutMostly understandable with minor mixing of concernsLogic and UI are tangled or hard to follow
Algorithm visualization quality20%State changes are obvious and well explainedAlgorithm works but step visibility is limitedFinal answer appears with little explanation
CS explanation quality10%The scenario is modeled clearly across strategy, data, storage, and stack layersThe scenario is understandable but shallow in one areaThe explanation is vague or disconnected
Testing15%Core calculations and step logic are covered by meaningful testsSome tests exist but coverage is narrowTests are missing or superficial
Git practice5%Small, readable commits and clean branch-based progressSome good history, but inconsistentLarge dumps or unclear commit history
README and reflection5%Another learner can run, understand, and evaluate the project quicklyDocumentation exists but leaves some gapsHard to run or hard to understand

Production-Style Project Brief

Use this project as a reviewable engineering brief, not only a completion exercise.

Problem statement

Write a one-paragraph statement covering the user, the problem, the constraint, and the outcome this project is meant to produce.

Required evidence

  • working artifact or reproducible deliverable
  • README with setup, inspection, and verification instructions
  • tests, traces, proofs, diagrams, benchmark output, or review notes appropriate to the semester
  • decision log with at least three meaningful tradeoffs
  • known limitations section with explicit scope cuts

Review questions

  1. What is the smallest vertical slice that proves the project works?
  2. Which requirement is most likely to be misunderstood by a reviewer?
  3. What did you deliberately not build, and why?
  4. What evidence would convince someone else that the result is correct?

Done means

The project is done only when another technical reader can inspect the artifact, run or review the verification evidence, and understand the tradeoffs without a live explanation.


Weekly Project Milestones

Use these milestones to keep the project from becoming a last-week scramble.

MilestoneFocusEvidence
StartScope the smallest useful sliceproblem statement, non-goals, first task list
Early buildProduce a walking versionrunnable skeleton, first test, first committed artifact
MiddleAdd the hard partimplementation note, trace/proof/benchmark/design decision
ReviewStress the weak pointfailure case, debugging note, peer/self review, correction commit
FinishPackage for inspectionREADME, verification instructions, known limitations, reflection

Answer-Quality Examples

QualityWhat it sounds like
Weak"I built it because the module asked for it."
Acceptable"It works for the required examples and I can explain the main idea."
Strong"Here is the tradeoff I chose, the evidence that supports it, and the case where it would fail."
Portfolio-ready"A reviewer can inspect the artifact, rerun the checks, and understand why this solution fits this semester's goals."

Future Capstone Connection

Before closing this project, write two sentences on how it could help the final capstone: one reusable technical skill and one artifact habit to preserve.

Calibration Materials

Use these learner-visible calibration materials before self-grading or requesting review: