Software looks inevitable from the outside, as though apps and feeds and forms simply happened. They did not. Every system you touch is a pile of decisions somebody made: who it was designed for, what it collects, what it refuses to do, whether it should have been built at all. Decisions have reasons, and reasons can be argued with โ€” so in this course we argue, on purpose and on the record.

DiscussionThe argument
Who Is This ForEvery program has a user. Do you know who yours is?
When Code HurtsNobody wrote a line that says โ€œwork badly for themโ€
Should It ExistYou can build it. That was never the question.
Who Gets to BuildThe room does not look like the country. Why not?
Mistakes Are DataWhat a room does with a broken build
Sharing What You BuildCredit, licences, and giving work away well

These are not a unit bolted onto the side of the programming. They are the reason the programming is worth doing: the course ends with The Community App, built for a person you actually spoke to, and every one of these conversations turns up again while you build it.

One rule governs all of them, straight from Our Classroom Norms: we argue with ideas, never at people. Come ready to change your mind โ€” that is what the arguing is for.