Abstract:Embedded programs are controlling a number of devices we use daily. The software of an embedded device is usually tightly coupled with the device hardware, and therefore developing embedded programs is fundamentally different from programming general-purpose computers. In academic education both hardware and software aspects of embedded systems need to be covered. In this paper we provide some general guidelines that can serve as a starting point when designing embedded programming courses. These guidelines ar… Show more
“…Their assignments included issues such as system calls, synchronization, filesystem, Android graphical user interface (GUI), and so on. Salminen et al (2011) partitioned the final project of a course on embedded operating systems into several progressive and small sub-projects, such as programming thermometer experiments and small Lego robots. Vanhatupa, Salminen, and J€ arvinen (2010) assigned to students homework that built on exercises carried out in class, such as thermometer programming, Lego robot programming, and acceleration sensor programming.…”
Section: Embedded Operating System Labsmentioning
confidence: 99%
“…However, preparing and maintaining detailed slides for every step of each assignment is extremely time-consuming because each open source component, such as cross compilers, libraries, device drivers, and the host OS, may vary from time to time, let alone different types and configuration of computers in a laboratory. Another common strategy is to increase the duration of classes and laboratory sessions, or to hire more teaching assistants to help students (Salminen, Vanhatupa, & J€ arvinen, 2011). However, both strategies are impractical for institutions with limited resources.…”
“…Their assignments included issues such as system calls, synchronization, filesystem, Android graphical user interface (GUI), and so on. Salminen et al (2011) partitioned the final project of a course on embedded operating systems into several progressive and small sub-projects, such as programming thermometer experiments and small Lego robots. Vanhatupa, Salminen, and J€ arvinen (2010) assigned to students homework that built on exercises carried out in class, such as thermometer programming, Lego robot programming, and acceleration sensor programming.…”
Section: Embedded Operating System Labsmentioning
confidence: 99%
“…However, preparing and maintaining detailed slides for every step of each assignment is extremely time-consuming because each open source component, such as cross compilers, libraries, device drivers, and the host OS, may vary from time to time, let alone different types and configuration of computers in a laboratory. Another common strategy is to increase the duration of classes and laboratory sessions, or to hire more teaching assistants to help students (Salminen, Vanhatupa, & J€ arvinen, 2011). However, both strategies are impractical for institutions with limited resources.…”
“…Many undergraduate programs include artificial intelligence (AI) or embedded systems in their CS curricula [9,10,11,12]. However, the authors could not find a course that would combine both topics.…”
Laboratory work is essential for students in the Science, Technology, Engineering, and Mathematics (STEM) fields. The laboratory work provides the students with practical experience of the theory and has the potential to increase enthusiasm by motivating the students to learn via experimentation. This is an important process for students as the active learning achieves positive educational results and prepares the students for real-world problems in the STEM fields.This paper emphasizes the development of the Artificial Intelligence (AI) laboratory work for a new course in Embedded Artificial Intelligence (EAI). The course and the laboratory work are designed as an upper-level undergraduate elective to develop an AI system to run on an embedded device. It is open to all majors in the STEM fields who meet the prerequisite of a basic programming course and a linear algebra course. After an introduction to embedded programming and sensor interface, students will be introduced to machine learning and AI. During the corresponding lab sessions, the students are given a dataset to apply the theory in a sequential fashion. The laboratories start by employing traditional statistical classification algorithms, such as logistic regression, transitioning towards a deep neural network, such as a convolutional neural network (CNN). The accuracy of each model will be noted for each laboratory, starting with a lower accuracy but smaller model size for the statistical models and culminating with a relatively high accuracy with the CNN.This paper outlines the design of the laboratories for the AI section of the EAI course, as well the feedback received during their development. The research to create and assess the AI exercises was conducted by a senior computer engineering student without any prior experience in AI. Two different forms of learning were taken into consideration: top-down approach where the student begins with a fully functional model and works backwards to understand each step of the processes and a bottom-up approach where the student begins from scratch and implements each component, working towards a fully functionally model. A comparative study of both approaches is presented from the point of view of the student. The assessment also asked the student to rate the assignment topics, to list how many hours were spent per each lab, and to propose suggestions for improvement.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.