Maniac: A preliminary machine approach to the ACM CS 3 course

The vast amount of machine-dependent details which must be covered concurrently with general architecture and assembly language concepts often hinder the student from assimilating the main objectives of the ACM CS 3 course. Current instructional strategies are ineffective in building a comprehensive framework of basic concepts from which machine and programming details can be understood. A new approach is required if our students are to complete this course with an understanding of some of the larger issues of computer architecture rather than scattered details of some particular assembly language. In this paper we present both an instructional tool and a corresponding instructional strategy for the CS 3 course. The tool, MANIAC, is a simulated machine which is used to introduce students to the basic concepts of computer architecture and assembly language. The strategy, the preliminary machine approach, is designed to integrate the use of MANIAC with the teaching of the architecture and assembly language of an actual machine such as the PDP-11 or IBM/370.