MakeCode and CODAL - intuitive and efficient embedded systems programming for education
In this paper we present the motivation, requirements, implementation, and evaluation of a new programming platform that enables novice users to create effective and efficient software for embedded systems.
Project abstract: Historically, embedded systems development has been a specialist skill, requiring knowledge of low-level programming languages, complex compilation toolchains, and specialist hardware, firmware, device drivers and applications. However, it has now become commonplace for a broader range of non-specialists to engage in the making (design and development) of embedded systems - including educators to motivate and excite their students in the classroom. This diversity brings its own set of unique requirements, and the complexities of existing embedded systems development platforms introduce insurmountable barriers to entry.
In this paper we present the motivation, requirements, implementation, and evaluation of a new programming platform that enables novice users to create effective and efficient software for embedded systems. The platform has two major components: (1) Microsoft MakeCode (www.makecode.com), a web app that encapsulates an accessible IDE for microcontrollers; and (2) CODAL, an efficient component-oriented C++ runtime for microcontrollers. We show how MakeCode and CODAL combine to provide an accessible, cross-platform, installation-free, high level programming experience for embedded devices without sacrificing performance and efficiency.
Level of research: Conference paper
Status: Complete
Who is involved: Lancaster University, Microsoft Research. James Devine, Joe Finney, Peli de Halleux, Michal Moskal, Thomas Ball, Steve Hodges
What is the area of research: Computer Science
Output: https://www.sciencedirect.com/science/article/pii/S1383762118306088
Contact: j.devine@lancaster.ac.uk, j.finney@lancaster.ac.uk, jhalleux@microsoft.com, michal.moskal@microsoft.com, tball@microsoft.com, steve.hodges@microsoft.com —