Socially Responsible Software Development

Matthias Felleisen

Software is a message from one developer to other developers across time. As such, developing software incurs a social debt to all those developers who will touch this software in the future---be that an older version of the original creator or someone who isn't even born yet. Understood this way, software development poses two challenges: (1) companies must learn to identify people who understand this idea, because being able to "grind leetcode" doesn't qualify; (2) colleges must create alternative programming curricula to turn students into apprentice developers, because the traditional curriculum doesn't. This talk will present my answer to the second challenge. I have spent the last 25 years creating undergraduate programming courses that are all about software-as-a-message, and the talk will provide an overview of this alternative curriculum approach. The first challenge remains yours to overcome.