Skip to Main Content
The input/output (I/O) subsystem is an important topic within computer architecture (CA) because it determines how the computer interacts with its environment. For this reason, computer scientists and engineers must understand how the computer manages this interaction, which is usually taught in introductory CA courses. Of course, there are many different styles of teaching, ranging from purely theoretical to completely practical. The CA course considered in this paper has already applied a practical approach for some time. For the I/O subsystem, students must be able to describe what polling and interrupts are and handle them through low-level programming. However, programming at this level in operating system (OS)-driven computers is not possible without being familiar with the kernel and drivers, which is not usually the case for students in an introductory course. Fortunately, there are many bare and specialized embedded systems around that are not OS-driven. In this proposal, the Nintendo DS (NDS) console was used in a classroom setting. It proved to be an appropriate infrastructure for developing attractive and engaging projects and was useful in providing a better understanding of the mechanisms related to the I/O subsystem. At the same time, the teaching methods were altered to make the transition from classical, passive, lecture-based classes to an active project-based learning (PBL) approach. It has been a very rewarding experience to see students learning to control the NDS devices on their own. In addition to describing the implementation of the proposed changes in two subsequent school years, this paper also presents some data and conclusions.