Abstract
Across the globe, it is now commonplace for educators to engage in the making (design and development) of embedded systems in the classroom to motivate and excite their students. This new domain brings its own set of unique requirements. Historically, embedded systems development requires knowledge of low-level programming languages, local installation of compilation toolchains, device drivers, and applications. For students and educators, these requirements can introduce insurmountable barriers.
We present the motivation, requirements, implementation, and evaluation of a new programming platform that enables novice users to create software for embedded systems. The platform has two major components: 1) Microsoft MakeCode ( www.makecode.com), a web app that encapsulates an entire beginner IDE for microcontrollers; and 2) CODAL, an efficient component-oriented C++ runtime for microcontrollers. We show how MakeCode and CODAL provide an accessible, cross-platform, installation-free programming experience for the BBC micro:bit and other embedded devices.
- 2010. AVRDUDE - AVR Downloader/UploaDEr. https://www.nongnu .org/avrdude/ . (2010). (Accessed on 02/22/2018).Google Scholar
- 2012. Ardublock | A Graphical Programming Language for Arduino. http://blog.ardublock.com/ . (2012). (Accessed on 02/22/2018).Google Scholar
- 2013. GitHub - ARMmbed/DAPLink. https://github.com/ARMmbed /DAPLink . (2013). (Accessed on 02/22/2018).Google Scholar
- 2015. Apache Mynewt. https://mynewt.apache.org/ . (2015). (Accessed on 11/16/2017).Google Scholar
- 2017. Home - Zephyr Project. https://www.zephyrproject.org/ . (2017). (Accessed on 11/16/2017).Google Scholar
- ARM. 2017. The Arm Mbed IoT Device Platform. (2017). https: //www.mbed.com/Google Scholar
- Emmanuel Baccelli, Oliver Hahm, Mesut Gunes, Matthias Wahlisch, and Thomas C Schmidt. 2013. RIOT OS: Towards an OS for the Internet of Things. In Computer Communications Workshops (INFOCOM WKSHPS), 2013 IEEE Conference on . IEEE, 79–80.Google Scholar
Cross Ref
- Paulo Blikstein. 2013. Gears of our childhood: constructionist toolkits, robotics, and physical computing, past and future. In Proceedings of the 12th International Conference on Interaction Design and Children . ACM, 173–182. Google Scholar
Digital Library
- Rebecca F Bruce, J Dean Brock, and Susan L Reiser. 2015. Make space for the Pi. In SoutheastCon 2015. IEEE, 1–6.Google Scholar
- Dale Dougherty. 2012. The maker movement. innovations 7, 3 (2012), 11–14.Google Scholar
- A Dunkels, R Quattlebaum, F Österlind, G Oikonomou, M Alvira, N Tsiftes, and O Schmidt. 2012. Contiki: The open source OS for the Internet of things. Retrieved October 13 (2012), 2015.Google Scholar
- Damien George. 2017. MicroPython. (2017). http://micropython.org/Google Scholar
- Intel. 1988. Hexadecimal Object File Format Specification. (1988). https://web.archive.org/web/20160607224738/http://microsym .com/editor/assets/intelhex.pdfGoogle Scholar
- Joel Koshy and Raju Pandey. 2005. VMSTAR: synthesizing scalable runtime environments for sensor networks. In Proceedings of the 3rd international conference on Embedded networked sensor systems . ACM, 243–254. Google Scholar
Digital Library
- Philip Levis, Sam Madden, Joseph Polastre, Robert Szewczyk, Kamin Whitehouse, Alec Woo, David Gay, Jason Hill, Matt Welsh, Eric Brewer, et al. 2005. TinyOS: An operating system for sensor networks. Ambient intelligence 35 (2005), 115–148.Google Scholar
- Mirjana Maksimović, Vladimir Vujović, Nikola Davidović, Vladimir Milošević, and Branko Perišić. 2014. Raspberry Pi as Internet of things hardware: performances and constraints. design issues 3 (2014), 8.Google Scholar
- John Maloney, Mitchel Resnick, Natalie Rusk, Brian Silverman, and Evelyn Eastmond. 2010. The scratch programming language and environment. ACM Transactions on Computing Education (TOCE) 10, 4 (2010), 16. Google Scholar
Digital Library
- John H Maloney, Kylie Peppler, Yasmin Kafai, Mitchel Resnick, and Natalie Rusk. 2008. Programming by choice: urban youth learning programming with scratch . Vol. 40. ACM. Google Scholar
Digital Library
- The micro:bit Educational Foundation. 2016. micro:bit : Blast off: School launches BBC micro:bit into space! https://www.microbit.co. uk/rishworth-space . (2016). (Accessed on 05/13/2017).Google Scholar
- The micro:bit Educational Foundation. 2016. micro:bit : Use the BBC micro:bit in the BLOODHOUND Rocket Car contest. https://www.mi crobit.co.uk/bloodhound-rocket-car . (2016). (Accessed on 05/15/2017).Google Scholar
- Microsoft. 2016. 20160705_microsoft_bloodhound_0409 - Microsoft News Centre UK. https://news.microsoft.com/en-gb/2016/07/07/ 26785/20160705_microsoft_bloodhound_0409 . (2016). (Accessed on 05/15/2017).Google Scholar
- Mitchel Resnick, John Maloney, Andrés Monroy-Hernández, Natalie Rusk, Evelyn Eastmond, Karen Brennan, Amon Millner, Eric Rosenbaum, Jay S. Silver, Brian Silverman, and Yasmin B. Kafai. 2009. Scratch: programming for all. Commun. ACM 52, 11 (2009), 60–67. Google Scholar
Digital Library
- G. Richards, F. Z. Nardelli, and J. Vitek. 2015. Concrete Types for TypeScript. In 29th European Conference on Object-Oriented Programming, ECOOP 2015 . 76–100.Google Scholar
- Charles R. Severance. 2014. Massimo Banzi: Building Arduino. IEEE Computer 47, 1 (2014), 11–12. Google Scholar
Digital Library
- Vincent St-Amour and Marc Feeley. 2009. PICOBIT: a compact scheme system for microcontrollers. In International Symposium on Implementation and Application of Functional Languages . Springer, 1–17. Google Scholar
Digital Library
- Franklyn Turbak, Mark Sherman, Fred Martin, David Wolber, and Shaileen Crawford Pokress. 2014. Events-first programming in APP inventor. Journal of Computing Sciences in Colleges 29, 6 (2014), 81–89. Google Scholar
Digital Library
- Ankush Varma and Shuvra S Bhattacharyya. 2004. Java-through-C compilation: An enabling technology for java in embedded systems. In Design, Automation and Test in Europe Conference and Exhibition, 2004. Proceedings, Vol. 3. IEEE, 161–166. Google Scholar
Digital Library
- Benoît Vaugon, Philippe Wang, and Emmanuel Chailloux. 2015. Programming Microcontrollers in Ocaml: the OCaPIC Project. In International Symposium on Practical Aspects of Declarative Languages . Springer, 132–148. Google Scholar
Digital Library
- Gordon Williams. 2017. Making Things Smart: Easy Embedded JavaScript Programming for Making Everyday Objects into Intelligent Machines . Maker Media. Google Scholar
Digital Library
Index Terms
MakeCode and CODAL: intuitive and efficient embedded systems programming for education
Recommendations
Microsoft MakeCode: embedded programming for education, in blocks and TypeScript
SPLASH-E 2019: Proceedings of the 2019 ACM SIGPLAN Symposium on SPLASH-EMicrosoft MakeCode (https://www.makecode.com) is a platform and accompanying web app for simplifying the programming of microcontroller-based devices in the classroom. For each device, MakeCode provides a customized end-to-end experience in the web ...
MakeCode and CODAL: intuitive and efficient embedded systems programming for education
LCTES 2018: Proceedings of the 19th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, and Tools for Embedded SystemsAcross the globe, it is now commonplace for educators to engage in the making (design and development) of embedded systems in the classroom to motivate and excite their students. This new domain brings its own set of unique requirements. Historically, ...
MakeCode and CODAL: Intuitive and efficient embedded systems programming for education
AbstractHistorically, 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,...







Comments