Embedded systems are great vehicles for learning computer systems and electronics. They empower students to transform their ideas and knowledge into real world applications with flexible software and hardware choices. As a result, embedded system design is not only taught widely as a core module in Electronic or Electrical Engineering or Computer Science departments, but also as part of a wider range of topics.
However, as a highly hands-on subject, teaching embedded system comes with its own challenges, which can often be related to three categories [1]:
These challenge categories also map onto the findings from our user research study involving teaching academics [2]. Student engagement has always been a major challenge in embedded system teaching. While students are more motivated by practical and hands-on projects compared to learning theory only, adding more lab sessions will not automatically increase the students' learning experience. In fact, students’ technical skill levels (for example, programming) can vary widely, which in turn can result in further disengagement and demotivation of inexperienced students from experimenting with the technology. On the other hand, teaching academics face the challenges to select the right combination of suitable pedagogical methodologies, tools, and assessment methods for the subject. Academics usually have a busy teaching and research schedule, therefore any changes to the above will put extra pressure on them. Lastly, the field of embedded systems is constantly evolving across industries. The emerging fields span across Internet of Things (IoT), Machine Learning (ML), healthcare, automotive and more, in which features such as functional safety and security are becoming more important than ever. Thus, the course content often needs to be updated to stay industry relevant.
The COVID-19 pandemic has not only amplified the above-mentioned challenges, but also posed a new question: how can embedded system be taught effectively in a remote learning environment without sacrificing the unique learning experience of the subject? We believe the following elements are key to solving both the existing and the new challenges:
Figure 1 Simulator vs hardware setup
Often, to conduct labs on embedded system, you would need a development board, some basic electronic components (for example, resistors, capacitors, LEDs, buttons), a couple of sensors, some ICs, wires, and a breadboard. Depending on the board chosen, you may also need a hardware debugger. The list of hardware requirements can easily grow with the complexity of the project to include LCDs, connectivity modules and more. Yet that is only half of the story. On the software side, you may need to install an IDE or equivalent tools as well as some additional libraries and code examples. This is assuming that the necessary drivers for the board are in place and can be successfully recognized by the host. In a remote learning scenario, the bill-of-materials would then need to be shipped to the individual student. The subsequent setting up process can be both long and demotivating for some. This is why we think software simulators can play an important role to lower the entry barrier for learning embedded systems. A simple browser-based simulator preloaded with examples is a perfect starting point for students to familiarize themselves with any API. A good example is the Mbed Simulator, which is a web-based simulator. Unlike model-based emulation tools such as Fast Models or Fixed Virtual Platforms, which focus on the performance and a more faithful representation of a real processor core; web-based simulators can cross-compile the application code into web languages, such as Javascript. This makes it versatile for adding custom peripherals and additional functions. This enables the students to code in the browser and focus on the learning, without the hassle and challenges of setting up the hardware. Other such examples of simulation include Tinkercad and Microbit Simulator.
Thanks to the burgeoning interest in the Internet of Things, microcontroller-based development boards are becoming more affordable than ever before. Once students have learned the basics of programming an embedded system such as GPIOs, PWMs, etc, using a web-based simulator, they are ready to move on to the next stage. Working on real hardware. Topics such as interrupts, threading, and memory management are best taught with a board and professional IDEs. We took this hybrid teaching approach in our Embedded Essential EdX course (part 1 using web-based simulation and part 2 using hardware). This approach allows students to focus on one thing at a time and to transition smoothly to the next stage of learning. Working with simulators helps students understand the language, libraries, and API functions. The code they developed for the simulators can often be directly reused on a development board, where students can access more features offered by the microcontroller and the board.
In a recently conducted user-research with teaching academics, one of the main challenges identified is the disproportionately increased workload from creating unique lab exercises and assignments [3]. Lab work is a part of teaching embedded systems. However, marking the assessment with solutions unique to each student requires time. The COVID-19 situation has certainly made this process even more onerous due to the absence of in-person assessment and supervised lab experience. One possible way to mitigate this problem is to utilize automated testing techniques that have been adopted in software industry for many years. While commercial software development today can be largely test-driven, only a small portion of academics are using any testing tools for teaching, as reflected by this 2020 Mbed Developer Survey[3]. Depending on the application, a part (if not all) of the embedded code can be tested on a host machine using unit tests before being loaded to real hardware. In a situation where the real-world functionalities do need to be assessed, academics can leverage industry standard test runners such as 'Mbed Greentea' to automate the process of flashing the board, running the tests, and accumulating test results. All they need is a development board with the latest Mbed OS which is packed with these utilities. It is even possible to batch process students’ submissions and generate reports. As a result of the automated assessment, students are able to receive individual feedback unique to their work and can try improving the solution to pass all the tests.
Figure 2 Automated assessment using industry test tools (concept).
Lastly, industry, and academia should work more closely in these challenging times. Our user research suggests that while academics see industry relevance as an important aspect of teaching, they often find it difficult to keep up with the rapid technological development from industry players [1,2,4]. It takes huge amounts of time for academics to switch technology and modify their teaching material. The documentation and resources published by companies can be detail-driven and developer-oriented, which often needs to be combined with significant learning design to be ready for adoption in the education space. At Arm Education, we are making great effort to bridge the skills gap [4] for future engineering graduates. We believe technology companies should not only provide innovative products, but also invest in educational content creation and learning technologies to support our educators, which go beyond traditional hardware and software donations.
To find out more about our wide range of Educational offerings, please visit Arm Education website. Finally, if you would like to share your creative ideas on teaching embedded systems (methods, tools, assessment), please leave your comment or contact us at university@arm.com. https://os.mbed.com/blog/entry/Results-of-2020-Mbed-Developer-Survey.
Reference:
[1] Mohammed El-Abd (2017) A Review of Embedded Systems Education in the Arduino Age: Lessons Learned and Future Directions (International Journal of Engineering Pedagogy)
[2] Curtis, S. and Kawamoto, E. (2020) Understanding teaching and academic audiences: Research Findings (Modern Human, Cambridge)
[3] 2020 Mbed Developer Survey
[4] Khaled Benkrid, Arm Education Media: Addressing the Engineering Skills Gap