CS 6704: Programming Abstractions for Energy-Aware Computing Dr. Eli Tilevich Spring 2013 Abstract: As mobile devices are becoming the preferred means of accessing computing resources for the majority of computer users, the issues of energy efficiency have come to the forefront of software design and development. Although energy efficiency has been explored widely in the systems community, this graduate seminar will explore programming abstractions as a means of engineering energy-efficient software. Energy efficiency entails fitting an energy budget and maximizing the utility of applications under given energy constraints. Programming abstractions can help reduce the energy consumption of a computing system. For example, following a set of software design principles can lead to a computing artifact, whose energy demands are more moderate than that of arbitrarily engineered software. This graduate seminar course pursues two objectives. First, we will survey and discuss the research literature on the subject. Then, based on the findings, students will complete term projects, in which they will explore programming abstractions that can reduce the energy budgets of computing systems in different domains, including mobile applications and cloud setups.