Final published version
Licence: CC BY: Creative Commons Attribution 4.0 International License
Research output: Contribution to Journal/Magazine › Journal article › peer-review
Research output: Contribution to Journal/Magazine › Journal article › peer-review
}
TY - JOUR
T1 - MakeCode and CODAL
T2 - Intuitive and efficient embedded systems programming for education
AU - Devine, James
AU - Finney, Joe
AU - de Halleux, Peli
AU - Moskal, Michal
AU - Ball, Thomas
AU - Hodges, Steve
PY - 2019/9/1
Y1 - 2019/9/1
N2 - Historically, embedded systems development has been a specialist skill, requiring knowledge of low-level pro- gramming 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 stu- dents 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 microcon- trollers. 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.
AB - Historically, embedded systems development has been a specialist skill, requiring knowledge of low-level pro- gramming 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 stu- dents 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 microcon- trollers. 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.
KW - MakeCode
KW - CODAL
KW - BBC micro:bit
KW - Embedded systems
KW - Physical computing
KW - Visual programming
KW - Web-based programming
U2 - 10.1016/j.sysarc.2019.05.005
DO - 10.1016/j.sysarc.2019.05.005
M3 - Journal article
VL - 98
SP - 468
EP - 483
JO - Journal of Systems Architecture
JF - Journal of Systems Architecture
SN - 1383-7621
ER -