MakeCode and CODAL: Intuitive and Efficient Embedded Systems Programming for Education James Devine Joe Finney Peli de Halleux Lancaster University, UK Lancaster University, UK Microsoft, USA
[email protected] [email protected] [email protected] Michał Moskal Thomas Ball Steve Hodges Microsoft, USA Microsoft, USA Microsoft, UK
[email protected] [email protected] [email protected] Abstract Across the globe, it is now commonplace for educators to engage in the making (design and development) of embed- ded systems in the classroom to motivate and excite their students. This new domain brings its own set of unique re- quirements. Historically, embedded systems development requires knowledge of low-level programming languages, lo- Figure 1. Example projects undertaken within education: cal installation of compilation toolchains, device drivers, and Rishworth School sent a micro:bit to space [19] (left); The applications. For students and educators, these requirements micro:bit placed in a custom-built rocket car for teleme- can introduce insurmountable barriers. try [20, 21] (right). We present the motivation, requirements, implementation, and evaluation of a new programming platform that enables novice users to create software for embedded systems. The 1 Introduction platform has two major components: 1) Microsoft MakeCode Recent years have witnessed expansive growth in the popu- (www.makecode.com), a web app that encapsulates an entire larity and ubiquity of embedded systems. This growth can beginner IDE for microcontrollers; and 2) CODAL, an effi- be primarily attributed to the emergence of new application cient component-oriented C++ runtime for microcontrollers. domains ranging from wearables, to home automation, indus- We show how MakeCode and CODAL provide an accessible, trial automation, and smart grids ś a phenomenon broadly cross-platform, installation-free programming experience referred to as the Internet of Things (IoT).