A Hard-Boiled Egg: Data Science, Software Engineering, and a Plausible Path to a Slightly Better Future

Many people offer utopian or dystopian visions of a world transformed by computing. In this talk, we present something more modest but more achievable: a world in which normal people can analyze data and collaborate at scale without heroic effort. We also present a roadmap for getting there, one which involves making statistical methods and the use of advanced tools the twin engines of software engineering education.

Last updated October 2018; video available.

Software Carpentry: Lessons Learned

Since its start in 1998, Software Carpentry has evolved from a week-long training course at the US national laboratories into a worldwide volunteer effort to improve researchers' computing skills. This talk explores the lessons we've learned along the way about applying open source software development techniques to teaching at scale, and about getting people and institutions to change the way they work.

Last updated: October 2018

Late Night Thoughts on Listening to Ike Quebec

Keynote at CarpentryCon 2018 in Dublin; video available.

Last updated May 2018.

How to Design an Effective Lesson

Having tried to cram a dozen books about teaching into a two-day course, I have now tried to cram key ideas from that course about designing effective lessons into this one-hour talk.

Last updated January 2019; video available.

Software Engineering's Greatest Hits

Software engineering is in the process of turning itself into an evidence-based research discipline. This talk describes how that is happening, why it matters, and a few of the more interesting, surprising, and controversial results to date.

Last updated: March 2017. This talk is an update of one given at CUSEC 2010.

Not in the Calendar

Hundreds of books about writing compilers are currently on the market, but there are only three about writing debuggers. Everyone thinks we should teach children how to program, but undergraduate courses on computing education are practically nonexistent. This talk explores what these gaps and others in undergraduate Computer Science courses tell us about the state of computing today, and about how we could fix it.

Last updated: October 2016