Writing Efficient Programs: Performance Issues in an Undergraduate CS Curriculum
Department of Computer Science
University of Arizona
Tucson, AZ 85721, U.S.A.
Performance is an essential aspect of many software systems, and it is important for programmers to understand performance issues. However, most undergraduate curricula do not explicitly cover performance issues---performance monitoring and profiling tools, performance improvement techniques, and case studies---in their curricula. This paper describes how we address this topic as part of a third-year programming course. We focus on tools and techniques for monitoring and improving performance, as well as the interaction between clean program design and performance tuning.