ABSTRACT

Software is now as essential to research as telescopes, test tubes, and reference libraries. However, most introductions to programming focus on developing commercial applications, not on exploring problems whose answers aren't yet known. Sustainability isn't just a property of the software: it also depends on the skills and culture of its users. Participatory live-coding is the anticipated style for teaching the material, rather than lectures simply talking about the code presented. In order to break up long periods of live-coding while teaching, it may be preferable to stop and complete some of the exercises at key points throughout the chapter, rather than waiting until the end. Possible exercise solutions are provided, in addition to learning objectives and key points for each chapter.