Teaching Vibe Coding: A 15-Week Course, and What I Would Change

Teaching vibe coding: a fifteen-week course, with HTML syntax taught in week 12
One semester, run once, graded twice from source — including the parts that failed.

PART 11 OF 11 · THE VIBE CODING COURSE

New here? Start at Part 1 →

I taught HTML syntax in week 12. My students had been building, revising and deploying real websites since week 2.

That inversion is the decision other instructors ask me about most, and it is the one I would keep. What follows is the whole thing: the fifteen-week structure, the hundred-point rubric, what 27 graded submissions actually produced, and the four things I got wrong.

Where these numbers come from

I ran this course once, at a vocational college, in a robot-software programme. Every submission was scored twice against the same rubric, from source code rather than screenshots, and the deployed URLs were checked again a year later. I did not formally survey prior experience, so I will not claim a number for it. Where I am guessing below, I say so.

The decision people argue with

The traditional order is syntax, then structure, then a project. This course ran brief → generated site → deployment → critique → syntax.

By week 12, when I finally put <section> and <div> on a screen, every student in the room had already shipped something that used them. The lecture stopped being vocabulary and became explanation. They were not learning what a tag is. They were learning why the thing they had already built worked — and, more usefully, why the thing that broke had broken.

The risk is real and worth naming: a student who never opens the file learns nothing. Weeks 12 and 13 exist precisely because building alone does not produce understanding. The inverted order buys attention. It does not buy comprehension. You still have to teach the syntax — just later, to people who now have a reason to care about it.

The four movements of a fifteen-week vibe coding course
Every phase ends in something a stranger can open. That constraint does more work than any lecture.

The fifteen weeks

WeekIn classWhat they submitted
1What web engineering is now; what a portfolio is for
2First site from a plain-language briefA portfolio page, posted publicly to the course board
3The IAFA framework — identity, audience, function, aestheticThe same page rebuilt from their own IAFA brief
4Agent-driven building, session 1Portfolio, revision 1
5Agent-driven building, session 2Portfolio, revision 2
6Repository to live URLPortfolio, revision 3 — midterm criteria published
7Reading other people’s sitesTheir live URL, plus what makes it theirs
8MidtermURL by a hard deadline, a 15-minute written test, and a peer evaluation of a classmate’s site
9Databases — a form that actually stores somethingA department site with a working board
10Dissecting sites they admireA URL they admire — and the 100-point rubric is published
11Build weekURL in the post title
12index.html, line by line
13HTML practice; second peer scoringScored submissions
14Physical AI lecture; build a small game; students write exam questionsGame, plus a question bank
15Final exam15-minute test, plus a Physical AI site submitted privately
The full syllabus as taught. Weeks 4–6 are the same assignment three times, which is the point.

Four decisions worth stealing

1. Publish the rubric five weeks before it is used

The hundred points went out in week 10 for an exam in week 15. Not as a courtesy — as an intervention. A rubric held back until grading measures how well students guessed what you wanted.

The honest caveat is in the results below: publishing it moved design and content, and did almost nothing for accessibility. A rubric describes; it does not assign.

2. Peer review twice, and let the second one count

Week 8 is diagnostic, week 13 is scored. What this teaches is not judgement of others. It is that somebody will actually look — which changes what a student is willing to ship. My impression is that students who had read six classmates’ sites wrote sharper briefs afterwards, but I cannot separate that from ordinary practice effects, so treat it as an impression rather than a finding.

3. Let students write the exam questions

Week 14 asks each student for short-answer and multiple-choice items. Writing a good multiple-choice question means knowing what a plausible wrong answer looks like, which is a harder test of understanding than answering one. It also produced a better question bank than I would have written alone.

4. Give the final exam a subject nobody can fake

The week-15 brief was a Physical AI site, on a subject lectured in week 14. A generic “build a portfolio” prompt lets a model generate plausible filler forever. A brief about a specific technical subject reveals in about ten seconds who read anything — and it did.

MIT’s Missing Semester (121K subscribers) devotes a full hour to agentic coding — useful if you are building a university-level unit and want to see how another course frames the same material. 56,965 views as of 11 August 2026.

What 27 submissions actually produced

Twenty-seven final submissions came in with source code attached. Scored against the rubric above:

MeasureResult
Average total50.5 / 100
Median50.6
Highest81.4
Lowest17.3
Content & storytelling56% of available points
Visual design & UX53%
Technical functionality45%
Responsive & accessible44% — lowest
Same tools, same deadline, same brief. The spread is the story.

The failure patterns clustered:

  • 67% shipped a single HTML file (18 of 27)
  • 44% finished without connecting a database (12 of 27)
  • 41% shipped zero accessibility attributes (11 of 27)
  • 37% had under 2,500 characters of body text (10 of 27)
  • 33% had not one media query (9 of 27)

Four things I would change

1. The point weights are backwards

Content is worth 30 points and functionality 20. As a claim about what makes a website good, that is defensible. As a grading instrument it is close to backwards.

Score separation produced per point of rubric weight, by category
Functionality produces the most separation per point of weight and carries the fewest points.
CategoryPointsCorrelation with total scoreSeparation per point
Visual design & UX300.7990
Responsive & accessible200.7371
Technical functionality200.70100
Content & storytelling300.61 — weakest73
Item–total correlation across 27 submissions. Separation indexed to the strongest category.

Content carries the most weight and discriminates the least. Which is exactly what you would predict once a model is in the room: it writes competent prose for everybody. Thirty points that nearly anyone can obtain is thirty points of noise in the grade.

Next time: 30 functionality, 25 design, 25 content, 20 accessibility. Not because content matters less to a reader — because it no longer tells me anything about the student.

2. A line in the rubric is not an assignment

Accessibility was worth 20 points and named alt text and keyboard operation in its own bullets. Eleven of 27 shipped no accessibility attributes at all. Nine had no media query on a rubric whose first accessibility bullet was mobile.

The pattern, stated plainly

Students did the things there were assignments for. They did not do the things there was only a rubric for. That is a syllabus failure, not a student failure — weeks 4, 5 and 6 all say “portfolio,” and none of them say “make it work on a phone and prove it.”

The fix is one week whose only deliverable is a phone screenshot of your own site and a keyboard-only walkthrough of it. Ten minutes of class time, and it would have moved the lowest category in the course.

3. The database week needs to be two weeks

Week 9 introduced stored, retrievable data. Twelve of 27 finished the course without ever wiring one up — and functionality is the category with the widest gap between the strongest and weakest groups, at 3.6×. The widest gap in the course sits behind its shortest unit.

4. The tool moved under us

Week 10’s literal instruction to students was to install the current version. Between week 4 and week 10 the interface had changed enough that my week-4 screenshots were wrong.

Plan for it. Teach the shape of the operation — describe, generate, run, correct — rather than the button, and never let a graded step depend on a menu path. Any course built on this class of tool will have at least one version break per semester.

If you have three hours, not fifteen weeks

FormatWhat survivesWhat you give up
3-hour workshopOne brief, one build, one deploy, one verification passDatabases, peer review, and any syntax at all
5-day intensiveThe above, plus a database and one round of peer reviewIteration — nobody rebuilds the same site three times
15 weeksEverything, including the part where they get bored of their own site and improve itNothing, except the tool version you started on

The part that must not be cut is verification. It is the only piece that transfers to work that is not this assignment. A workshop where everyone leaves with a working page and nobody leaves able to tell whether it works has taught a trick, not a skill.

A 24-minute teacher-facing walkthrough from Shifting Schools (13.3K subscribers), aimed at classroom staff with no development background. 5,905 views as of 11 August 2026.

What I would not change

  • Build before syntax. The week-12 lecture works because of what came before it.
  • Deploy in week 6, not week 14. A URL you can send to your family changes how seriously the work gets taken. A year later, 50 of 53 deployed student sites were still responding — the only address that died was a paid domain nobody renewed.
  • Publish the rubric early. The failures above are failures of assignment design, not of transparency.
  • Examine on a subject, not on a genre. “Build a portfolio” is gradeable. “Build a site about this specific thing I taught last week” is diagnostic.

One external anchor, for anyone writing this up formally: Cindy Royal published a student-centred model for AI-augmented coding education in Journalism & Mass Communication Educator (2026), arriving at a compatible conclusion from a journalism programme rather than an engineering one. The finding travels across disciplines better than I expected it to.

Frequently asked questions

Do students actually learn to code this way?

Some do and some do not, and the rubric shows which is which. Building first buys attention; it does not by itself buy understanding. That is why weeks 12 and 13 exist — the syntax lecture lands differently when every tag on the screen is one the student has already shipped. A student who never opens the file learns very little, so the course has to force the file open somewhere.

How do you stop students from submitting whatever the model produced?

You cannot, and chasing it is the wrong fight. Instead make the graded thing hard to fake: a live URL you have to defend in front of classmates, a database that either stores a comment or does not, a phone layout that either survives or does not. Prose is the one category a model levels for everyone — in this cohort it separated the top group from the bottom group by only 1.7×, against 3.6× for whether the thing worked.

When should the rubric be shown to students?

Before it matters, not after. Mine went out in week 10 for a week-15 exam. The measurable caveat: publishing a rubric line does not produce the behaviour it describes. Accessibility was worth 20 points and named alt text and keyboard use explicitly, and 11 of 27 still shipped zero accessibility attributes. Anything you want to see has to be a submission, not a bullet.

What tools does a course like this need?

A browser, a text editor, one AI assistant and one free hosting account. Everything in this syllabus was done with an agentic coding tool plus a free deployment host. Expect the tool to change under you mid-semester — mine did, which is why week 10 opens with “install the current version” rather than a screenshot.

Is fifteen weeks necessary?

No. The three-hour version keeps the brief, one build, one deploy and one verification pass. The part that must not be cut is verification, because that is the only part that transfers. A workshop where everyone leaves with a working page and nobody leaves able to tell whether it works has taught a trick, not a skill.

Does this work outside computer science?

It appears to. Cindy Royal reached a compatible conclusion from a journalism programme, publishing a student-centred model for AI-augmented coding education in Journalism & Mass Communication Educator in 2026. The subject of the portfolio matters less than the fact that a stranger can open it.

THE AGENTIC AI SERIES

Eleven articles, in order

  1. 1. Generative AI vs Agentic AI — One writes the answer, the other does the job.
  2. 2. What Is Vibe Coding, Really? — The shift from worker to conductor.
  3. 3. The IAFA Prompt Framework — Four boxes between a grey button and a great one.
  4. 4. Your First Page in Ten Minutes — No install, no account, one file.
  5. 5. From a File to a Live URL — Three routes, and which ones survive a year.
  6. 6. An Honest Agent Benchmark — 76 seconds to a draft, then two failures.
  7. 7. Verify Before You Ship — Four passes, with three failures I actually hit.
  8. 8. The 100-Point Scorecard — Grade your own site before anyone else does.
  9. 9. Adding a Database — A file cannot remember anything.
  10. 10. When Vibe Coding Fails — Same tools, same deadline, 17 to 81 points.
  11. 11. Teaching Vibe Coding — A 15-week course, and what I would change. (you are here)

Start at the Agentic AI library.

Similar Posts