CS 691 / SWE 699: LLMs & Programming

Fall 2025Thursday, 4:30pm-7:10pm, Horizon Hall 4016


Grades • Syllabus, Schedule, and Slides • Announcements, Assignments, Discussion (Piazza)

Course Staff

Instructor: Prof. Thomas LaToza (tlatoza@gmu.edu)
   Office hours by appointment.
Teaching Assistant: Umama Dewan (udewan@gmu.edu)
Office hours by appointment.

Course Overview

LLM-powered developer tools offer the potential to completely reinvision programming, transforming programming from interacting with code to interacting with a programming agent. This course will offer an in-depth introduction to LLM-powered developer tools, primarily through hands on work using LLM-powered tooling on programming tasks. This course will explore new types of programming tools and interactions, including agentic programming, vibe coding, and spec-driven development. Students will gain practical experience in IDE tooling, such as Cursor, Claude Code, GitHub CoPilot, OpenHands, and Replit, on a variety of programming tasks, such as implementing features, testing, debugging, refactoring, onboarding, code review, and writing documentation. Students will critically examine new tools to identify limitations and drawbacks, explore emerging best practices, and examine the productivity impact of LLM-tooling.


We'll explore LLM-powered programming tools by focusing on different types of activities they may support. Throughout the course, we'll examine the literature on the challenges developers face across each of these activities and then dive into how new techniques powered by LLMs may help to address these challenges. Depending on time, we may also explore cross-cutting issues such as trust, security, and benchmarking.


Lectures each week will include a mix of lecture, presentations by students on tools, hands on activities using tools, and discussion about experiences and best practices with tools. There will be no exams in the course. Grades will come from written responses to readings, class activities and tech talks, and HW assignments.


Throughout the course, you will be using LLM-powered tools. Many of these tools have free tiers, with support for limited usage. However, we expect that you may need to buy a subscription for 2-3 LLM-powered tools over the course of the semester to complete the coursework.

In-Class Activities

During class, you will have opportunities to use various LLM-powered programming tools. To help you to examine these tools critically and reflect on your experiences, you'll be asked to answer some questions about your experiences.

Readings

Each lecture will have assigned weekly readings or videos to complete before lecture. You will post your reactions to each reading on Piazza by answering questions about the readings or videos.

Tech Talk & Posts

In groups of 2 or 3, you will explore a LLM-powered programming tool. Over the course of the semester, your group will become an expert in the tool, trying it out and learning from posts & podcasts about the best practices about how developers are using it in industry. You'll present what you learn in a talk to the class as well as in blog posts which you can share back with industry practioners.

Tentative Schedule

1. Vibe Coding (1) (8/28)
2. Vibe Coding (2) (9/4)
Required video: Deep Dive into LLMs like ChatGPT
3. APIs and Agents (1) (9/11)
Required reading: Challenges and Paths Towards AI for Software Engineering
4. APIs and Agents (2) (9/18)
Required readings: OPENHANDS: AN OPEN PLATFORM FOR AI SOFTWARE DEVELOPERS AS GENERALIST AGENTS
SWE-smith: Scaling Data for Software Engineering Agents
5. Debugging (1) (9/25)
Required readings: Navigating Complexity: How Context Shapes Debugging Strategy Choices Among Expert Developers
Let’s Fix this Together: Conversational Debugging with GitHub Copilot
6. Debugging (2) (10/2)
Required readings: Modern debugging: the art of finding a needle in a haystack
ChatDBG: Augmenting Debugging with Large Language Models
NO CLASS (10/9)
7. Understanding a codebase (1) (10/16)
Required readings: Hard to answer questions about code
Answering Developer Questions with Annotated Agent-Discovered Program Traces
8. Spec-Driven Development (10/23)
Required videos: What is AI Native Development
Transforming Dev Practices with Kiro’s Spec-Driven Tools
9. Understanding a Codebase (2) (10/30)
10. Code Review (11/6)
Required readings: Modern Code Review: A Case Study at Google
Can static analysis tools find more defects? A qualitative study of design rule violations found by code review
Project checkpoint due.
11. Testing (1) (11/13)
Required readings: Automated Unit Test Improvement using Large Language Models at Meta
Mutation-Guided LLM-based Test Generation at Meta
12. Testing (2) (11/20)
THANKSGIVING RECESS - NO CLASS (11/27)
13. Project Presentations (12/4)

Course Policies

Resources

This course will use Piazza for posting assignments and announcements. Additionally, we will use Piazza for a discussion board. Assignments will be submitted through Canvas. Grades will be available through Canvas.

Makeups

As each of the assignments build on prior assignments, it is important to submit each assignment in a timely fashion. 10% will be deducted for late assignments and late assignments will only be accepted for 24 hours after the due date. Assignments submitted more than 24 hours late will receive a zero. If you’re worried about being busy around the time of a submission, please plan ahead and get started early.

Grading

In-Class Activities & HW Assignments: 60%
Tool Reports: 20%
Responses to Readings & Videos: 20%

Letter Grades

Course letter grades will be assigned based on the following cutoffs (the minimum required percentage to achieve a specific letter grade):

George Mason Common Course Policies

Policies on academic standars, accomodations for students with disabilities, use of GMU email, and Title IX.