Skip to Main Content
Practicing computer engineers must be able to build efficient, reliable systems. Today's engineering student learns functionality-focused programming. Design issues that affect system performance, reliability, cost, robustness, and security are rarely covered. This paper presents a design environment where students program systems that are functionally correct and have necessary performance and efficiency. These projects are evaluated for accuracy, performance, and resource efficiency relative to a given specification. This approach is supported by a new educational tool MiSaSiM: a resource-aware execution simulator that enhances system understanding with reversible trace navigation, performance and cost analysis, and instruction profiling. MiSaSiM provides problem domain scaffolding and visualizations to facilitate learning within a semester course. As part of Georgia Tech's commitment to globalization of engineering education, MiSaSiM was developed as a distributed educational laboratory tool. It is an integral part of a computing systems course offered concurrently at several distance-learning locations. In addition to describing a systems-oriented approach to programming using MiSaSiM, this paper includes examples of MiSaSiM projects, assessment techniques, student performance, and lessons learned over three years of experience with local and distance learning students.