Skip to main content
Software Design & Delivery Banner

CS 4535: Software Design & Delivery

Professional Practicum Capstone · AI & Open Source · Fall 2026 · MWR 10:30–11:35 AM

30+ seats still available for Fall 2026. We're building a large section — our goal is 50 students. Applications are accepted on a rolling basis, so apply as soon as possible.

When you join a company, you'll be working on a product that predates you. Lots of features. Lots of code. Lots of technical debt. Some teams struggle under that weight — barely satisfying their users, burning through resources. But the best teams find ways to make a codebase better than they found it, ship features that users didn't know they needed, and turn inherited complexity into a platform for something new. The difference isn't luck — it's skill. This course teaches you that skill.

The product is Pawtograder — a production platform with 1,500+ weekly active users across CS 2000, 2100, and 3100 at Northeastern. It manages assignments, group projects, grading workflows, discussion forums, live polling, and real-time office hours. All repos are public and open source — you can start exploring right now. Your commits don't go to a grading script. They go to staging, then to production. All 50 students work on one codebase together, shipping continuously to production throughout the semester.

This course surfaces questions that matter beyond any single assignment:

  1. What changes when the users of your software are sitting in the same building?
  2. How do you onboard to a codebase with tens of thousands of lines you didn't write?
  3. When should you trust an AI agent to write code on your behalf — and when should you intervene?
  4. What does it mean to "own" a feature from requirements through production monitoring?
  5. How do you make architectural decisions when fifty people need to merge code into the same repo?
  6. What separates a contribution from a commit?

Philosophy

How much do you do? I define the minimum for an A. You decide the minimum for your goals. Choose the topic focus that you want. Make the GitHub resume that you want. Use the AI that you want, too.

Real products need more than people who can write code. They need people who can talk to users, design interfaces, write documentation, set up monitoring, optimize queries, wrangle CI pipelines, and figure out why the thing that worked yesterday doesn't work today. This course has room for all of those people.

A student who is passionate about user research and student experience — who conducts usability studies, synthesizes findings into design recommendations, and uses Claude Code to implement and ship those changes — is just as valued as the distributed systems hacker who profiles the gradebook and rewrites the query layer. Both are doing real engineering. Both are accountable for what ships. The difference is where you focus, not whether your work counts.

Course Structure

Phase 1: Onboarding (Weeks 1–3)

Lectures cover the architecture of Pawtograder, CI/CD and continuous delivery, serverless and microservices patterns, testing and monitoring, estimation, risk management, and user research — ordered to get you productive in the codebase as fast as possible.

In parallel, you'll complete a ticket burn-down: documentation tickets and a small implementation task, shipping a change through the full pipeline (branch → PR → review → merge → deploy).

Phase 2: Studio (Weeks 4–14)

After onboarding, class shifts to studio format. You bid on a project team and work continuously for the rest of the semester:

  • Day 1: Standup + Clinic — 15-min all-hands standup, then teams sign up for instructor/TA consultation on blockers and design tradeoffs
  • Day 2: Design/Code Review — 1–2 teams present a design decision, significant PR, or user research finding for structured critique
  • Day 3: Team work session — dedicated in-class time for coordination, pair programming, and co-located work
  • Biweekly: Demo days — each team demos what shipped, live in the real product, 5 minutes plus questions

Projects

One team per project. Team sizes adjust based on demand through a bidding process. Each project spans the full SDLC. The projects below are starting points — we're also looking for ideas from students. If you see a problem in Pawtograder that isn't listed here, tell us in your application.

Usability Strike Force

User research and UX improvements. Conduct usability studies with real users, identify pain points, design and ship improvements.

Office Hours Reconceptualization

Rethink and rebuild the office hours experience. Full product design challenge from user research through deployment.

Docusaurus Integration

Build integrations between Pawtograder and Docusaurus course sites. Schedule sync, office hours widgets, search, live polls in slides.

Paper Exam Generation & Grading

A full Gradescope replacement: generate and shuffle exam variants, barcode and scan handling, OCR (including handwriting), and grading workflows. A major project.

GitHub → Forgejo Migration

Move Pawtograder's Git hosting from GitHub to self-hosted Forgejo: account auto-provisioning, repo automation, CI, and the migration path itself.

Coder Workspaces Integration

One-click cloud dev environments for intro courses: integrate Coder with Pawtograder — SSO, per-class workspace provisioning, and grading hooks.

The Stack

Pawtograder is a production application. This is what you'll be working in:

Core

  • TypeScript — everywhere, front to back
  • Next.js 15 / React — frontend and API routes
  • Supabase (PostgreSQL) — database, auth, realtime, edge functions
  • Deno — edge functions runtime

Infrastructure & Ops

  • GitHub Actions — CI/CD pipelines
  • Docker — local development

Integrations

  • GitHub API (Octokit) — repos, OAuth, app integrations
  • LangChain / OpenAI / Anthropic — AI-powered hints and grading
  • Amazon Chime SDK — video for office hours
  • Sentry — error monitoring
  • Discord bot — course ops sync (discussions, help requests, ACL)
  • MCP server — AI-assisted TA support tooling

Testing

  • Jest — unit tests
  • Playwright — end-to-end tests
  • k6 — load testing

Experience with any of these is a bonus, not a prerequisite. You'll learn what you need on the job — that's the point.

Our Approach to AI

AI coding agents are not merely permitted. They are expected. This is a course about professional software engineering, and AI-assisted development is part of professional software engineering. Use AI for implementation, design, operations, code review, documentation, research — whatever makes you more effective. All Northeastern students have access to Claude Code through the university's Anthropic partnership — $200/month in credits, included with your enrollment.

You are responsible for everything you ship, regardless of who or what wrote it. Accountability follows the whole chain — author, reviewer, mentor, instructor. Using AI well means reviewing what it produces with the same rigor you'd apply to a junior teammate's PR.

The one exception: personal reflection. We respectfully ask that you use your own words and thoughts there. The point of reflection is the thinking itself.

Apply

This is a selective capstone for up to 50 students, and 30+ seats are still available. The only prerequisite is CS 3100 (or CS 3500). Enrollment is by application — we're building a team, not filling seats. We prioritize diversity of skills: frontend, backend, user research, ops, documentation, and everything in between.

Applications are open and reviewed on a rolling basis — seats fill as strong applications arrive, so apply as soon as possible. The fastest path to a decision: complete the pre-application activity (get Pawtograder running locally) before you apply — it answers most of the questions we'd otherwise have. Join the Pawtograder Community Discord to get started early.

Learn more and apply →

ApplyPawtograder on GitHub