Embedded systems have changed dramatically in recent decades. At their start in the 1970's and growth in the 1980's, embedded systems consisted of relatively simple microcontroller hardware, often programmed in low-level assembly language, to configure a few peripherals and interact with a few input/output pins. Today, improvements in speed, memory size, and power have changed the emphasis from hardware to software, with microcontrollers supporting tens of thousands of lines of code, perhaps programmed in C, often with concurrent tasks, interacting with dozens of peripherals and potentially hundreds of input/output pins in time-multiplexed manner, and dynamically changing among numerous power states. Yet, many university embedded systems courses and textbooks still look similar to those in the 1980's, emphasizing low-level programming of hardware. Little guidance is provided to teach students in a first course how to program using disciplined methods. The result is an improper foundation and perspective, leading to ad hoc unstructured code, or over-reliance and inefficient use of real-time operating systems. To remedy the situation, we describe a model-based discipline for introductory embedded systems courses, developed over the past decade at the University of California, Riverside and at UC Irvine. The discipline has students describing desired behavior using synchronous state machines, and capturing those state machine using standard C templates. As such, students develop software paying strict attention to timing issues, and create their own C-based task scheduler, leading to a solid understanding of concurrency and RTOS functionality. This paper highlights that discipline, and describes new web-based interactive learning material emphasizing the discipline, which is best used for the lecture portion of a course with an accompanying microcontroller lab. The paper also introduces web-based tools that support the discipline.
Frank Vahid is a Professor of Computer Science and Engineering at the Univ. of California, Riverside. His research interests include embedded systems design, and engineering education. He is a co-founder of zyBooks.com.
Alex Edgcomb is Sr. Software Engineer at zyBooks, a startup spun-off from UC Riverside and acquired by Wiley. zyBooks develops interactive, web-native learning materials for STEM courses. Alex actively studies and publishes the efficacy of web-native learning materials on student outcomes.
Bailey Miller is a director of engineering at zyBooks (John Wiley & Sons, Inc.). He formerly worked as a software engineer at Space Exploration Technologies Corporation (SpaceX). He received his B.S. in Computer Engineering, and his M.S and Ph.D. in Computer Science, from the University of California, Riverside in 2009, 2011, and 2014, respectively.
Tony Givargis is a Professor of Computer Science and Associate Dean in the School of Information and Computer Sciences at the University of California, Irvine. He received his B.S. and Ph.D. in Computer Science from the University of California, Riverside in 1997 and 2001, respectively. He conducts research in the area of embedded systems with an emphasis on embedded systems and software and has authored over 90 peer reviewed papers. He is a named inventor on 11 U.S. patents and has co-authored two popular textbooks on embedded system design. Professor Givargis has received numerous teaching, service, and research awards, including the Frederick Emmons Terman Award, presented annually to an outstanding young electrical engineering educator by the Electrical and Computer Engineering Division of the American Society for Engineering Education.
Are you a researcher? Would you like to cite this paper? Visit the ASEE document repository at peer.asee.org for more tools and easy citations.