A radical design course: leveraging APIs for creativity and innovation in software

Software design is becoming increasingly complex; yet great opportunity now exists with the proliferation of powerful APIs and other design toolkits. Here we describe an approach to software development that combines formal creativity methods with deliberative use of published APIs towards the development of a "micro-API"---a highly focused interface to a "radical product." We have developed our ideas in the context of a graduate seminar course. This paper presents the ideas we pursued---including a discussion of creativity in software design, and distinctions among API, language, and application framework---and results of student work.