What we're exploring
CIS 2500: Software Development with Agentic Coding Tools
Credit hours: 3 hrs/week, two 90-minute lectures, 15 calendar weeks
Prerequisites: CIS 1200 (Intro Programming), CIS 1210 (Data Structures & Algorithms)
Instructors: Zack Ives, Harry Smith
Course Description
Software development is more than coding: it is designing large, complex systems through decomposition into modular, understandable components with clean specifications, interfaces, and tests. AI coding agents can now generate code at unprecedented speed, which shifts the scarce resource from writing code to specifying, reviewing, and verifying it.
This course treats the software engineer as a team manager of agentic workers — someone who sets direction, reviews output, owns the result, and bears professional responsibility. It proceeds in a problem-driven arc: from understanding the new landscape, through building well-designed systems, to validating correctness, to ensuring performance and safety.
Each semester, we will pick a new open-source project to "inherit" -- students will learn to work with legacy and existing code, using Claude Code (and Penn PARCC resources) to understand, extend, formalize, validate, and improve it.
Weekly labs and open-ended projects build toward a final capstone, presented in lieu of a written final exam.
Course Arc
| Module | Weeks | Theme |
|---|---|---|
| I. Modern Software Development | 1 | What changed; the engineer's new role; terminal and git foundations |
| II. Managing Agentic Coding Tools | 2–3 | JS/TS onboarding; how agents work; directing them safely |
| III. Building Good Software with AI | 4–5 | Architecture; code comprehension; developer documentation |
| IV. Identifying and Validating Needs | 6–8 | Specifications, prototyping, ethics; midterm; PR workflow |
| V. Tooling for Iteration and Validation | 9–11 | Advanced git; testing; CI/CD; observability |
| VI. Performance, Concurrency, Security, Privacy | 12–15 | Hardening and optimizing systems; course synthesis |
Week-by-Week Summary
| Week | Theme | Key Technologies / Techniques | Lab |
|---|---|---|---|
| 1 | Modern Software Development · How LLMs Work | Engineer-as-manager framing and the three recurring agentic failure modes · LLM training pipeline (pretraining/SFT/RLHF) and the Swiss Cheese model of capability | Terminal, git, and CI setup; run Spacebar locally and connect a real chat client |
| 2 | JS/TS Foundations · Agent Failure Modes and Workflow | A five-axis framework for sizing up a new language fast (execution, typing, concurrency, modules, objects) · Common agent failure modes: hallucinated APIs, recursive errors, coherence loss | Build TypeScript reading fluency; trace a chat message end-to-end; predict-then-verify agent-generated practice problems |
| 3 | Managing Agentic Coding Tools | Context-engineering failure modes: poisoning, distraction, confusion, clash, injection · CLAUDE.md and Architectural Decision Records as living convention documents | Agent-assisted code comprehension: component map, verified protocol trace, CLAUDE.md, capability-boundary exercise |
| 4 | Architecture · Version Control for Parallel Development | Decomposability and deep modules with small interfaces · Git internals and git worktree for isolated parallel agent work | Git history analysis; layer-level architecture diagram; an ADR |
| 5 | Code Quality, Documentation, and Technical Debt | Structured code review: semantic diffs and risk-based sampling · Safe refactoring patterns (Strangler Fig, Branch by Abstraction) | Graded: Spacebar Developer Guide — architecture, module guide, getting-started, feature walkthrough, technical debt |
| 6 | Specifications: From Intent to Instruction | Interface contracts as OpenAPI and JSON Schema · RFC 2119 requirement keywords and ADRs | Write a feature spec as RFC 2119 clauses; add a JSON Schema CI validation check |
| 7 | Prototyping, User Stories, and Ethics | Parallel prototyping with git worktree to compare two implementations of one spec · Case studies in specification failure (Mars Climate Orbiter, Boeing 737 MAX) | Two competing worktree implementations, compared and written up as an ADR |
| 8 | Midterm · PR Workflow and Conventions | PRs as merge gates — no merge without green CI · Conventional Commits and CODEOWNERS for legible, audit-worthy history | Issue and PR templates applied to a real Gitea repository |
| 9 | Advanced Git · Testing Foundations | Curating agent history: rebase vs. merge, squashing, git bisect · Unit/integration/end-to-end tests and test doubles | Full branch → delegate → review → squash → PR workflow on a real feature |
| 10 | Test Quality · CI/CD Pipeline | Property-based testing (fast-check) in place of hand-picked examples · Mutation testing as a short diagnostic for weak assertions | Test-coverage audit and property-based tests against a permission invariant |
| 11 | Docker, Reproducibility, and Observability | Docker and immutable, versioned deployment artifacts · Structured logging and the SLI/SLO/SLA vocabulary | Structured JSON logging, a Dockerfile with CI smoke test, and a dependency audit |
| 12 | Agentic Harnesses, MCP, and Safety | Role separation (coder vs. reviewer) and dependency-aware task decomposition · Model Context Protocol (MCP) server design | A real Coder/Reviewer agent pair on a pull request, with a reviewer-prompt comparison |
| 13 | Performance and Concurrency | Amdahl's Law and percentile-based performance SLOs · Concurrency bug shapes in event-driven systems (lost updates, ordering, idempotency, deadlock) | Optional performance clinic: instrument and load-test the message-send critical path |
| 14 | Security and Privacy, Part 1 | Threat modeling for agentic workflows: assets, principals, and trust boundaries · Prompt injection and indirect prompt injection | No separate lab this week (Thanksgiving) |
| 15 | Security and Privacy, Part 2 · Course Synthesis | Auth/permission review and supply-chain dependency vetting · Privacy by design across prompts, logs, and transcripts | Capstone track due; final project presentations during finals week |
Assessment
| Component | Weight |
|---|---|
| Project 1: Testing & Verification | 18% |
| Project 2: Feature Extension | 22% |
| Capstone Track (MCP server or technical-debt remediation) | 25% |
| Lab 5: Spacebar Developer Guide (graded) | 5% |
| Weekly labs (×10, AI-assisted grading) | 15% |
| Final Presentations | pass/fail, required for lab credit |
| Midterm | 15% |
Final presentations (10 minutes: 7-minute structured talk + 3-minute Q&A) replace a written final exam and require demonstrating genuine understanding of the system built, not just of what an agent produced.
Agent P