AI for Software Engineering
How to use AI to do software engineering (mid 2026 version!)
Learning Outcomes
- be able to explain components of the AI4SE lifecycle:
- prompting
- context and RAG
- tool use with MCP and Skills
- evals
- models and pitfalls
- use a modern LLM for software development
- contextualize the places AI can assist in, replace, and/or hinder good SE practices and good SE systems.
Before Class
Lectures
Readings
- Simon Willison: How I use LLMs
- Simon Willison: 2025 in LLMs
- Fowler: Structured PDD;
- Your LLM … Writes Plausible Code
In the previous class we installed a common set of AI tools. Make sure that this works for you on a machine you can bring to class.
In Class
Slides
Data and code
- Using Gemini to do “data science” (file is AI generated)
- Promptfoo and promptfoo config file
Optional Readings and Activities (so many … send more!)
- Fowler: Patterns for GenAI series
- Kalliamvakou: quantifying GitHub Copilot’s impact on developer productivity and happiness
- Lewis et al., Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks
- Willison, LLM tutorial - I drew on this a lot for my notes.
- Tim Bray, Claude and Go and pointers
- Thoughtworks Consultants on what works
- Kent Beck on building a library
- helpful prompt suggestions to fix Claude mistakes
- on the transition from craft to oversight in SE
- maybe AI isn’t as great as it is made out to be?
- Guy who has been around protocols for a while talks MCP.
- Context engineering summary
- Model Context Protocol
- Spec for MCP
- Best Practices for Agentic Coding
- Contexts
- AI at Shopify
- Shen and Tamkin 2025, “How AI Impacts Skill Formation”