I both continued development on an advanced agentic studio and also started thinking about resuscitating a course that has unfortunately fallen off Brown CS’s regular roster, CS3.
When I was an undergrad at Princeton, Brian Kernighan taught a roughly analogous course called Computers in our World. Because computer science departments are the academic authority on how computers work and what it means to code, there are a lot of students searching for a general introduction to computing. The problem is that CS largely conceives of itself as an engineering discipline and therefore (often) places a premium on rigour. ‘Introduction to computer science’ courses are sometimes styled as grueling undertakings for new students, implicitly or explicitly becoming a forcing function to winnow down from the mass of potential CS majors to a select few.
At least, this was the case at Princeton, and seems also to be the case at Brown. The ‘real’ introduction to computer science course is difficult by design, making it inhospitable for students who just want to get a feel for understanding computers and code rather than majoring in CS. I’m actually not against this philosophy of difficult introductions per se. There is some truth to the idea that CS in practice largely consists of reading the tea leaves of arcane error messages to parlay with intransigent machines. I also have some sympathy for the very real logistical difficulties when too many students want to major in the same subject, even if it seems absurd to complain about from the point of view of humanities departments that are increasingly marginalized in the academic edifice.
But it does raise an important question. How can we best offer introductions to computing for all students, not just those who are committed to majoring in CS, and therefore are willing to commit the time and hard work that a rigorous introduction sequence requires?
One aspect of this is a change in what is sometimes referred to as the ‘culture’ of CS departments. The propensity for rigour can give misogyny an easy footing, as the systematic exclusion of certain kinds of people can be written off as an unfortunate but necessary outcome of technical meritocracy, when it is really the consequence of a contingent and therefore changeable cultural atmosphere that makes many feel very unwelcome. Brian Kernighan’s Computers in our World course was colloquially known amongst undergrads as “Emails for Females”, presumably in contrast to the implicitly masculine COS 126, the ‘real’ introductory course for CS majors. Though there have been many initiatives around women in STEM and CS in these spaces in the past decade, most CS departments are still in my view accurately described as having programmed inequality. It is impossible to redress the trenchant misogyny in CS without seriously tracing how it stitches together the couture of technical rigour in the discipline as a whole.
But this thought needs proper fleshing out elsewhere. My hope in reviving CS3 is that it can function as an alternative introduction to computing and computer science at Brown for students who want to understand how computers are a part of the fabric of our everyday world, but who don’t necessarily plan to be able to do advanced algorithmic theory in the immediate future. More particularly, I am renovating the syllabus with LLMs and agential harnesses in the rearview mirror, as these dramatically change the scope of what it’s plausible to do with computers with little or no programming knowledge.