CS 378 Agentic Software Engineering

Fall 2026 · Tue & Thu · The University of Texas at Austin · Instructor: Emmett Witchel
InstructorEmmett Witchel · office hours Wed 2–3pm TAMingcong Lei · mclei@utexas.edu · office hours TBD ContactSee Canvas

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

  1. Use modern AI coding agents more effectively to build, change, and verify complex software systems.
  2. Explain and apply core systems concepts that recur in agent-built software, including fault tolerance, concurrency, recovery, and backpressure/rate limiting.
  3. 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 6 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.

0dotfiles warmup dotfiles-* — environment setup (completion)
1email-index eidx-* — a search engine for your mail v1 build & search v2 resilience: mutation, crashes & concurrent search capstone your real mail · UTMail (ungraded)
2tm-compute 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
3concurrent-index cidx-* — a fast, correct concurrent index v1 build & race the baseline v2 prototype & compare two design variants v3 synthesize a design based on evidence
4pdf2md pdf2md-* — recover auditable tables from PDFs v1 controlled recovery v2 arXiv transfer v3 peer challenges
F🎤Final project — self-designed, solo or in pairs; live defense 2 proposal 23 repository + defense 5 evidence-index writeup

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.

In order to participate in the PR round, you need to have somewhat functional homework code so that feedback from your peers is meaningful. So we have to enforce some sort of deadline. After the deadline, course staff will pull the HW2 code and run it against a set of entry-gate racks. Those racks are not the graded ones. Each holds six machines that finish quickly and one that never finishes at all, and the one that never finishes is not scored — so there is nothing to forecast. What there is, is a budget to ration. Give every machine a bounded share of the clock and rank the rest by what you measured, and you score full marks with half the wall to spare. Run each machine to the end in the order dealt, and the one that never finishes eats the clock while everything behind it goes unranked. You are in if your bot starts, completes the handshake, and clears three quarters of the points on those racks. Nothing lands near that line: every reference implementation we have measured scores 100%, and both ways of failing — the starter bot we ship, which returns the machines in the order they were dealt, and a complete working simulator with no per-machine cap — score between 25% and 40%. If your HW2 does not meet this bar, you lose half the round's credit. This "entry to PR check" is not your HW2 grade — the homework is graded separately, on its own schedule. We do not release the gate racks, because a bot that had them could special-case the one machine it is supposed to learn to walk away from. You do not need them: the practice racks that ship with the assignment have the same shape, so your ordinary self-check already tells you where you stand.

The pdf2md V3 exchange also has a fixed participation cutoff. To participate, submit the V3 checkpoint by the participation deadline. The commit you submit must contain exactly two challenge packages. 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. You may still submit the checkpoint late for its 2 points and receive any package credit your work qualifies for, but a late submission cannot join the exchange. All other HW4 work remains eligible for the normal two-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 8pm — the deadline Canvas shows on the assignment itself. 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. 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 two weeks late. Two weeks is firm. 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 five business days of the missed quiz, naming the homework and two or three windows that work for you (each within ten calendar days of the quiz). You’ll get a confirmation email, and the quiz appears in your Canvas dashboard with your personal 15-minute launch window; the access code arrives by email about 15 minutes before it opens. Start inside your window and you get the full 7 minutes. One reschedule is possible if you ask before launching. A window that passes with no attempt becomes a zero. No makeups after final grades post.

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.