Teaching microcoding principles

Students are typically exposed to programming in various languages as part of their experience in computer science. Assembly language and hardware concepts are considered standard knowledge in addition to other related topics. Teaching firmware, the integration of hardware and software, is the subject of this paper. The need for teaching firmware is presented, followed by a description of a project assigned to students. Lastly, a discussion of the portability of the concepts learned is presented.