Course Overview
I am developing and teaching the course of Agentic Software Engineering, which focuses on teaching students to build agents for compiling complex requirements into software systems.
Students learn both the underlying engineering principles and the practical workflow of
building agentic software systems. The course combines lectures, team-based development,
benchmark-driven evaluation, and iterative software evolution.
ARC-Bench is used as the practical evaluation environment of the course.
CS3604
Offered for students in the School of Computer Science
Shanghai Jiao Tong University.
CS4810J
Offered for students in Global College
Shanghai Jiao Tong University.
ARC-Bench for Teaching and Competition
ARC-Bench
is used as the practical evaluation environment of the course. Students develop their own
software agents and evaluate how well the agents can compile complex requirements into
working software systems.
The benchmark is integrated into the teaching process so that students can observe
measurable progress throughout the semester rather than only receiving a final project
score. It also creates a common competition setting for comparing agent designs,
requirement representations, testing strategies, and token efficiency.
Demo Track
Early-stage onboarding and pipeline validation. Students make sure their agent can
complete the full benchmark workflow.
Normal Track
Main course benchmark. Students optimize software quality, requirement coverage,
robustness, and development efficiency.
Competition Track
Final competitive setting for comparing mature agents developed by different teams.
Course Curriculum
The curriculum is organized as a progression of capabilities rather than a fixed
week-by-week schedule. Students move from understanding modern software development
to building, evaluating, and evolving their own software agents.
1. Foundations: Software Engineering in the Agentic Era
Build a shared understanding of software systems, LLMs, and the changing division
of labor between human developers and coding agents.
- Introduction to Agentic Software Engineering — from code generation to project-level software engineering.
- Web Development from a Software Engineering Perspective I & II — frontend, backend, database, APIs, and system decomposition.
- LLMs, Agents, and MCP — models, tools, context, agent loops, and environment interaction.
Heroes of AI Programming
A special class on the people, systems, and ideas that shaped modern AI programming.
Through representative systems and invited experiences when available, students study
how leading researchers and engineers turn foundation models into practical programming
tools, and what design choices make these systems succeed or fail.
2. Requirement Compilation
Treat natural-language requirements as engineering artifacts that can be compiled
into explicit structures, executable constraints, and software implementations.
- Requirement Compilation Principles — requirements, scenarios, constraints, and traceability.
- Software Engineering Intermediate Representations — UI, data, database, API, and behavioral representations.
- Test-Driven Development for Agents — compiling requirements into tests and using tests as executable specifications.
- Agentic Compilation — orchestrating requirement analysis, design, implementation, and validation across a repository.
3. Engineering Reliable Software Agents
Move from a prototype coding agent to an engineering system that can be measured,
maintained, and improved.
- Version Control & Software Maintenance — Git, collaborative development, CI/CD, and software evolution.
- Token Budgets and Agent Efficiency — context management, cost, decomposition, reuse, and evaluation under resource constraints.
- Software Testing — functional testing, regression testing, GUI testing, failure diagnosis, and quality assurance.
4. ARC-Bench: Build, Measure, and Compete
Use ARC-Bench as a continuous feedback loop for developing the course project.
- Team Formation — students build teams of up to three members and define their agent architecture.
- Demo Track — establish an end-to-end runnable agent and obtain an initial ARC-Bench ranking.
- Normal Track — improve requirement coverage, software quality, robustness, and token efficiency.
- Competition Track — compare mature agent designs under a common competitive setting.
Milestone 1 · Demo Track
Complete the benchmark workflow and obtain a valid ranking.
Milestone 2 · Normal Track
Establish the team's first competitive baseline and iterate on measurable weaknesses.
Milestone 3 · Competition Track
Submit the mature agent for final course competition and comparison.
5. Software Evolution in Practice
Evaluate whether an agent can continue engineering after the first version has been generated.
- Mid-term Presentation — architecture, current benchmark results, limitations, and iteration plan.
- Feature Enhancement Practice — evolve an existing system under new requirements.
- Testing and Bug-Fixing Practice — reproduce failures, diagnose causes, repair the system, and prevent regressions.
- Final Presentation — demonstrate the complete agent, engineering decisions, ARC-Bench results, and lessons learned.
Final agent code may be submitted within 10 days after the final presentation.
What Students Are Expected to Learn
By the end of the course, students should be able to design an agentic software
engineering workflow that connects requirements, intermediate representations,
implementation, testing, and maintenance. They should also be able to evaluate an agent
quantitatively on ARC-Bench and reason about software quality, robustness, traceability,
and token cost rather than considering code generation alone.