Welcome to our ongoing series of case studies focusing on how universities from across the world are teaching embedded systems. This month, we spoke to Ravi Suppiah, a lecturer with the school of computing in the National University of Singapore (NUS).
We asked Ravi about his experiences teaching the subject, as well as how he uses the materials from Arm Education to help develop his courses.
Please introduce yourself to our readers.
My name is Ravi Suppiah and I am a lecturer with the school of computing in the National University of Singapore (NUS). I graduated with an electrical and computer engineering degree from the National University of Singapore (NUS) in 2004. I then completed my MSc in embedded systems from Nanyang Technological University (NTU) in 2007.
In 2017, I joined the National University of Singapore, school of computing, as a lecturer. I have been teaching a wide range of topics in NUS covering computing, engineering, microprocessor architecture, microcontroller programming, and Real-time Operating Systems (RTOS). Besides, teaching, I am also heavily involved in the Makers@SoC where we work on getting students to be creative and innovative in their learning journey.
Can you describe NUS for us? What challenges and opportunities are you facing in teaching Embedded Systems there?
The National University of Singapore aspires to be a vital community of academics, researchers, staff, students, and alumni working together in a spirit of innovation and enterprise for a better world.
NUS school of computing is the most established computing school in Singapore and has produced many distinguished alumni, including chief executives and technology architects of multinationals, government agencies and flourishing start-ups.
The school offers outstanding undergraduate and graduate degree programs across the full spectrum of the field of computing, including computer science, information systems, computer engineering, business analytics and information security. There are also specializations in emerging areas of importance such as artificial intelligence, fintech, blockchain, analytics, and security.
Being a part of the computer engineering degree program, the support given by the school in the area of embedded systems is very strong. There is wide range of courses where students are taught fundamentals from Digital systems and basic computer architecture. They then go onto applying it to microcontroller programming while integrating it with an RTOS. There are also a wide range of courses on FPGA development and HW/SW co-design.
While some of them are core modules, there are many electives that students can choose from, to deepen, and broaden their knowledge in many of these areas.
How do you prepare for your Embedded Systems class?
I very much believe in training our students to be prepared for the real-world. As such, I cover the fundamental concepts in our lectures and discuss the application areas in the tutorials. The labs are very exciting as I always have a big project that the students work towards. To complete this project, I schedule weekly lab exercises that get them to apply the concepts covered in class. By completing the lab exercises, they also achieve some objective of the final project.
The final project has many elements of embedded systems development in it, ranging from HW prototyping and Debugging, all the way to creating a multi-threaded RTOS architecture. Students get to understand the need to think from high-level perspectives to solve complex real-world problems that keep evolving.
The Arm Education materials have been a great boon for me. I had wanted to switch to Arm-based cores for my modules. The “Rapid Embedded Systems Design and Programming” and “Real-Time Operating Systems Design and Programming” Education kits proved to be very handy in helping me make that transition.
I am particular of my students learning things at a very deep level, and so I highly discourage the use of high-level libraries that abstract the details and make things seem too easy. As such, I get them to use the Keil development environment [editor's note: Arm software development tools are available to support our Education kits as donations. You can request a software donation here] and make them write their own device drivers for all the HW peripherals on the NXP FRDM-KL25Z board. It is tough and can be a bit painful, but I always tell my students that after going through it, they will have the confidence to take any core and start from scratch.
Embedded technologies are growing at an exponential rate, especially with the rise of the Internet of Things. What opportunities and challenges do you see in embedded systems for your students as they move from school to the workplace?
Embedded systems will always be at the core of our future. Though there is much excitement about Machine Learning, AI and data analytics, you still need to build systems that can make use of that data to perform meaningful actions. That is where the embedded systems developers play a very significant role.
In our computer engineering degree program, our first-year students develop an IoT solution in the form of a Search-and-Rescue robot that integrates multiple embedded platforms together with a LiDAR and other sensors. This robot is remotely controlled through the cloud to navigate an unknown terrain and gather vital information.
For the senior students, we have a Capstone project where they develop a complete IoT solution that integrates many different HW sensors onto embedded controllers and FPGA boards. The data is then streamed through the network to other computing platforms to perform Machine Learning. These are just some of the many opportunities where our students get exposed to IoT development.
I believe that many universities are aware of the need to prepare their students for real-world challenges and are upgrading their curriculum to reflect this need. I am confident that the future generation of embedded systems engineers will be well equipped to deal with the challenges of tomorrow.
We have a range of educational resources to assist in the teaching and learning of core subjects in computer engineering and informatics. For academic staff, we have our Education kits, online courses and textbooks that can support your teaching. For students, we have just launched our debut course on edX: Embedded systems essentials on Arm: Getting started.