In this class, you’ll go beyond coding and learn how to design and build software that is elegant, powerful and flexible. In addition to classic software design and UX techniques, you’ll learn concept design, a new way to structure software functionality more effectively. You’ll also learn how to use LLMs in design and code, and how to incorporate AI agents into applications. AI coding is very much in flux, as the capabilities of tools change almost day by day. So this class offering will be a bit experimental, and you shouldn’t expect everything to be as predictable as it would be in a mature class.

This website will host all the important material, including the schedule (with links to lecture and recitation notes), assignments and problem sets, technical resources and preps (short intros to technologies, due before recitations). We will be using Piazza for class discussions and to answer any questions you might have about course material or assignments.

Make sure to read the class guide which explains the purpose and structure of the class and its expectations, and check out the FAQ. We have too much exciting stuff to talk about, so we won’t be explaining administrative things in class sessions.