With the popularity of embedded systems and the consequently rising demand in the job market for professionals well-versed in them, embedded operating systems (EOSs) have become one of the core courses in computer science studies across the world. The objective of EOS courses is to develop students' ability to port, modify, and customize an embedded operating system through a series of laboratory exercises. However, our teaching experience has revealed that beginners require a considerable amount of time to familiarize themselves with the development environment and the relevant processes, such as operating in a command line interface, setting environment variables, and kernel configurations. Furthermore, students need to constantly handle compiler error messages, malfunctions of the target EOS, and incompatibility issues related to development tools. These problems may frustrate and discourage students. A common strategy to address this problem is to dedicate more hours to teaching or to hire more teaching assistants to help students progress. However, none of these methods is suitable for institutions with limited resources. Therefore, in this paper, we develop a computer-assisted learning system called the Computer-assisted Learning Environment (CALEE) to assist students with their assignments and thus motivate them. CALEE consists of two parts: a self-learning assistant (SLAT) and a collaborative learning website (CLW). SLAT is a software application that provides a set of useful functions to help students perform EOS laboratory exercises, whereas the collaborative learning website seeks to encourage greater interaction among students. Our experiments show that CALEE expedites learning, improves students' motivation, and reduces the teaching load.