Course Objectives
Software coding agents are a transformational tool for the construction of correct, efficient software. The course treats use of AI coding agents as a form of technical writing that should be practiced and can be improved. Students learn how to decompose a software problem into what you specify, what you delegate, and what you verify.
The course includes several ambitious homeworks to be completed by students using AI assistance to generate both code and documentation. It integrates traditional software engineering topics like secrets management, source code control, using cloud services, and crash-safe workflows. The course concludes with a substantial final project completed alone or in a pair: students propose and build an original artifact of their own design.
Prerequisites
C S 439 (Principles of Computer Systems), or equivalent systems programming background. Proficiency in at least one programming language (Python preferred). Familiarity with git and command-line tools. No prior AI/ML experience required.
Learning Outcomes
- Use modern AI coding agents more effectively to build, change, and verify complex software systems.
- Explain and apply core systems concepts that recur in agent-built software, including fault tolerance, concurrency, recovery, and backpressure/rate limiting.
- Work with other people to produce high-quality software using strong engineering tools: version control, review, tests, automation, and clear technical communication.
Topic Mix
Approximate share of class time by topic area:
- Agent tools & architecture30%
- Systems25%
- Software engineering20%
- How AI models work10%
- Tooling & workflow15%
Grading
Here is a rough breakdown of grading. Exact percentages in Canvas, though some adjustment during the semester will certainly be necessary.
- End-of-class quizzes12%
- Homeworks58%
- Final project (proposal + code/demo + writeup)30%
It is your responsibility to manage your AI coding credits. It is not acceptable to turn in a homework with a note that, “I would have done X, but I ran out of credit, is that ok?” Get started on homeworks early and carefully plan your token use. All of the agents provide data about token use. We provide some tools to help, like ccstatusline. It is regrettable that students who add more generous personal subscriptions have an advantage.
In-Class Questions
A typical class meeting includes 2 ungraded UT Instapoll polls during class and a graded 3-question Canvas quiz at the end of class. Instapoll questions are never graded; Instapoll is free and runs in any phone or laptop browser — no app, account, or subscription. The end-of-class quizzes are graded, but your four lowest class days are dropped, so a few missed or off days will not hurt your grade. An end-of-class quiz gives you 5 minutes from the moment you open it. On a homework due day there is also a 7-minute individual quiz on that homework at the start of class: it opens at 3:00 and closes at 3:07 for everyone at once, so arriving late costs you quiz time.
Class Meeting Rhythm
Each normal class meeting has two short lecture decks and one 10-minute individual or small-group exercise after the first deck. The exercise produces one small artifact or decision that groups compare before the second lesson; the remaining time covers questions, synthesis, transitions, and the end-of-class quiz.
Homeworks (HW)
The course has four graded homeworks submitted through GitHub plus a final
evidence package spanning a GitHub repository, live defense, and Canvas
proposal/writeup submissions. Homeworks are done outside class.
Register
your GitHub username in Canvas by Sunday, August 30 — your private course
repositories are seeded from it. A short
completion-graded dotfiles warmup in
week one (HW0) gets every environment working before the first graded homework.
Each homework lands in beats: you build v1 against a spec, then the spec changes
under you — new drops arrive mid-homework, the way real software changes. The
monospace badge on each homework is its stable repository prefix; *
stands for your GitHub login.
dotfiles-* — environment setup (completion)eidx-* — a search engine for your mail
v1 build & search→
v2 resilience: mutation, crashes & concurrent search→
capstone your real mail · UTMail (ungraded)
tmc-* — rank hidden Turing machines by runtime under a tight compute budget
bot rank the rack under budget→
PR round in a peer’s repo
cidx-* — a fast, correct concurrent index
v1 build & race the baseline→
v2 prototype & compare two design variants→
v3 synthesize a design based on evidence
pdf2md-* — recover auditable tables from PDFs
v1 controlled recovery→
v2 arXiv transfer→
v3 peer challenges
Exact release and due dates are in Canvas.
HW0 must be completed individually. This ensures that every student has a working environment and can use the required AI tools. For HW1–HW4 and the final project, you may work alone or in pairs. For homeworks, you must work with a different partner each time. For example, you may partner with A for HW2 and also complete the final project with A, but you may not partner with A again for HW3. Groups of three are not allowed. You may also request a randomly assigned partner.
The PR round. When HW2 freezes, every student or pair opens one real pull request against a classmate's tm-compute repository and reviews the pull request that lands on their own. The round runs on a fixed one-week clock and has no late participation window. Your work is someone else's input here: a late contributor leaves a classmate with nothing to review, and that cost falls on a person who was on time.
An unfinished HW2 does not keep you out of the PR round. At the freeze,
course staff check that your bot starts, completes the tmc.v1
handshake and answers within the assignment limits. A separate private
ranking check requires three quarters of the automatic points. A repository
that does not clear the checks is left out of the ring and scored 50 of 100
for the round. These checks are separate from your HW2 score. If a single run
falls short, the course re-runs before holding a unit out.
If you cannot take part, submit the HW2 PR round opt-out in Canvas before
the freeze; both members of a pair must submit it. A declared opt-out receives
the same 50 points and is removed before pairings exist. Not showing up
scores 0. See PR_ROUND.md in your repository for the full
participation rules and review requirements.
The pdf2md V3 exchange also has a fixed participation cutoff. To
participate, both of your challenge packages must be on main by
the V3 checkpoint's due date; the course takes them from there, and there is
nothing to submit. We will finish reviewing all on-time packages before
deciding who participates. If both packages follow the assignment rules and
are approved, we will send you four peer challenge cases, and you can earn
the 15 V3 defense points. If either package is missing or not approved, you
will not receive peer cases and cannot earn those 15 points. Packages
finished later can still earn the checkpoint's 2 points and any package
credit your work qualifies for, but they cannot join the exchange. All other
HW4 work remains eligible for the normal one-week late window.
Programming is social. Although this course focuses on programmer productivity with AI tools, creating software remains an intensely social activity. We do small-group activities in class, and one homework round asks each student or pair to open a PR against another student or pair's code. We also dedicate class time to reviewing our colleagues' code and techniques.
Partner request option. Each pair-eligible homework (HW1–HW4) has a "partner request" assignment in Canvas that opens after class on a Thursday and stays open for a week and a day, closing on the Friday of the week the previous homework is due, at 3pm — the deadline Canvas shows on the assignment itself. Submit only if you want a partner: working alone is the default, and submitting nothing means you work individually. To get a randomly assigned partner, submit the word "random". To pair with someone you have chosen, you both submit each other's EIDs; this registers the pair for a shared grade. You can resubmit to change your request any time before the cutoff; submit "solo" to withdraw a request you already made. Friday evening, you will receive a Canvas comment naming your partner and the shared GitHub repo you'll both work in (one partner's repo; both of you get push access). If an odd number of students request random partners, or the only remaining requesters are people you've already partnered with, you'll be notified that no partner was available this round and work individually.
Homework retrospectives. Part of your homework writeup asks you to create slides that are self-contained that encapsulate an insight you got from doing the homework. We will review these slides and present some of them in class so we can all learn from each other. You have the option of remaining anonymous or having your name credited to your slides.
Flexible deadlines. I have found that students really appreciate flexible deadlines. However, I have also found that allowing students to do a semester's worth of work in the final week of a class leads to unsatisfying outcomes for all of us. All of the homeworks, and even their subgoals, have deadlines. Those are intended to guide your efforts so you don't fall behind. We will go over homeworks after they are due and you will get the most out of it if you have completed yours. But I will allow students to turn in homeworks up to one week late. One week is firm. HW1 was released under a two-week window and keeps it. For HW1 and HW2, if you keep working past a due date, email me when you are done and I will grade your main as of then. From HW3 on, the course pulls your repository's main when it grades rather than at the deadline, and while the late window is open it grades only a main whose SUBMISSION.md has the Finished box checked: leave the box unchecked until you are done, or check it at the due date to be graded on what you have. When the window closes, main is graded as it stands, checked or not. There are three exceptions. First, the HW2 PR round has a fixed entry deadline: your code must be functional in time to participate. Second, the HW4 pdf2md V3 peer exchange has a fixed participation cutoff: late challenge work may still earn its checkpoint and package-validity credit, but it cannot earn entry to the exchange or the V3 defense points. Third, the final project allows no lateness at all: its proposal, deadline repository/live defense, and writeup run on one fixed grading schedule.
Final Project
Build and defend one bounded engineering claim that demonstrates mastery of agentic coding. The project must be your own original work. Solo or in pairs; pairs earn one shared artifact score.
The final project is 30 points: a 2-point proposal, a 23-point deadline repository plus live defense, and a 5-point writeup. A narrow project with strong independent evidence can earn full credit. Feature count, repository size, token spend, prompt volume, and visual polish do not substitute for demonstrated behavior, reproducible checks, controlled engineering decisions, or honest limitations.
Read the Final project guide before writing the proposal. It explains the evidence boundary, milestone ladder, two required agentic control-loop episodes, resilient demo path, live-defense prompts, grading axes, and evidence caps.
Policies
Ed discussion
AI agents often need only a hint such as, "Use matplotlib to make an informative stacked bar graph of …" Because of that, keep guidance in public discussion forums deliberately vague. The course is designed so students can have a short but meaningful dialogue with their AI coding agent to complete the coursework; copying a solution from a public discussion undermines that goal.
AI Usage
This course is about using AI tools effectively. You are expected and encouraged to use AI coding assistants for all assignments. The goal is to learn to direct and evaluate AI-generated code, not to avoid using it.
AI Tool Access
The course requires both Codex and Claude Code, and every student gets both through university-provided accounts (ChatGPT Edu and UT's Claude access): sign in at chatgpt.com and claude.ai with your UT EID address, yourEID@eid.utexas.edu. There is no personal subscription cost. We will update Canvas if university or vendor access changes before or during the semester.
Class Recordings
HOP 2-9970 prohibits students from recording class instruction (audio or video) unless a student obtains the instructor’s permission or Disability & Access has approved audio recording as an accommodation.
Missed Quizzes
Makeups exist only for homework quizzes — the individual 7-minute quiz attached to each homework. In-class Instapoll questions are never graded, and the end-of-class Canvas quizzes are graded with your four lowest class days dropped, so neither has a makeup: an absence simply uses one of your drops.
Missed a homework quiz? Email me with [makeup] in the subject within 5 days of the missed quiz, and we can see if you can take it after the next class meeting.
Academic Honesty
All in-class questions and quizzes must be completed without AI assistance. That covers the ungraded Instapoll questions and the graded end-of-class Canvas quizzes. While an end-of-class quiz is ongoing, we expect you to have only a single browser tab open — the one with the quiz.
AI use is encouraged, but you may not copy solutions from other students. We will monitor your github repository and require that you make frequent checkins. Given that AI can help with the checkins, this should not be a practical restriction. Commit history is part of the evaluation — we want to see how you collaborate with your coding agent, not just the final result.