Eight weeks turn one small app into an AI development syllabus
The repository contains 8 weekly assignments rather than a conventional library. Week 1 asks students to complete 6 prompting exercises covering examples, chain of thought, tool calls, self-consistency, retrieval, and reflection with local Ollama models. Week 2 moves into a FastAPI and SQLite action-item app, where Cursor is used to add LLM extraction, tests, endpoints, and documentation. That sequence gives each tool a job instead of treating AI coding as one vague skill.
The repeated application is useful for comparison. Similar note and action-item code appears in several week folders, letting students change automation, review, or security practices without first learning a new domain. It is also easy to mistake the copies for a maintained product. They are isolated teaching snapshots with write-up templates, grading instructions, and deliberate work left undone. Start with the assignment document for a week, not with the root package as though it were one app.
Week 3 requires two MCP tools and explicit failure handling
Week 3 asks for an MCP server around a real API with at least 2 tools. The rubric calls for typed parameters, HTTP error handling, timeouts, empty-result behavior, rate-limit awareness, setup documentation, and an example client flow. A local STDIO server is acceptable; a remote HTTP version and correctly checked authentication earn extra credit. That is a solid assignment because it makes the student handle transport and operational failure, not merely return a weather string once.
Weeks 4 through 7 shift from building with models to supervising them. Students create at least 2 Claude Code automations, repeat the idea in Warp, use Semgrep to fix 3 findings, then implement 4 branches and compare their own review notes with Graphite Diamond. Week 8 widens the scope again: build the same app in 3 stacks, use Bolt for one version, and include a non-JavaScript language in at least one version.
What happened when we ran it
Our sandbox installed commit ca2df55 in 14 seconds, pulling 35 packages and using 37 MB on disk. The checkout itself contained 125 files, about 2,959 source lines, and occupied 0.3 MB. The build step returned successfully in 0 seconds, which fits a Python coursework repository with no compiled application at the root. Pip-audit reported 0 known vulnerabilities in the installed environment.
The harness did not run tests because it found no declared test script or target. That is narrower than saying the repository has no tests: week 2 and later starter apps include pytest files, and several Makefiles expose week-specific commands. Our run therefore confirms that dependencies resolve in the stated Python 3.12 container. It does not confirm all 8 assignments, local models, FastAPI variants, MCP integrations, or vendor workflows as one tested unit.
Python 3.12 is the smallest part of the setup
The top-level guide asks students to install Anaconda, create a Python 3.12 environment, install Poetry, and run poetry install. Our uv-based sandbox resolved the root dependencies without Anaconda in 14 seconds, but following the class path is safer when reproducing course instructions. Week 1 then requires Ollama plus mistral-nemo:12b and llama3.1:8b, downloads that are outside the measured 37 MB Python environment.
Later assignments add accounts and changing external services. The documents mention a student Cursor offer, Claude Code features, Warp Drive, Semgrep, a 30-day Graphite trial, and 3 months of Bolt Pro that requires a credit card. Those were course arrangements, not permanent guarantees. Self-directed learners should price and verify each service before committing to the full sequence. The MCP assignment may also require an API key or OAuth setup for whichever real service the student chooses.
The default branch stopped in 2025 while learner PRs continued in 2026
The default branch was last pushed on November 10, 2025, and GitHub reports no releases. It had 4,444 stars, 1,006 forks, and 31 combined open issues and pull requests when fetched. Most open items are learner submissions rather than maintainer-planned work, including repeated week 7 tasks. Outside activity continued into July 2026, and 2 course-related pull requests were closed on September 19 without changing the old default-branch push date.
Two open issues expose the cost of self-study. Issue 5 shows pytest collecting a week 1 helper named test_your_prompt and failing because its argument is treated as a missing fixture. Issue 14 says the chain-of-thought task can succeed with an empty system prompt, weakening what that exercise proves. Neither report had been resolved in the fetched issue state. An instructor can explain the intended invocation and adjust the task; an independent learner has to diagnose that context alone.
Zero releases and no license make this a reference, not a dependency
GitHub reports 0 releases, no recognized license, 0 CI workflow files, and no Dockerfile. Those absences make sense for a class handout, yet they set clear boundaries. You should not add this repository as an application dependency or assume permission to redistribute modified assignments. Forking for personal study is technically easy, while publishing a derivative course or commercial workshop needs authorization from the copyright holder.
The material is still worth reading because its rubrics ask students to document prompts, test claims, review generated code line by line, and explain security fixes. That is more useful than another collection of clever prompts. Take one week's assignment, replace expired account instructions where needed, and provide your own verification command. Trying to consume all 8 weeks as a ready-made product hides the thing the repository does best: giving an experienced teacher a concrete exercise to discuss.

