Computer Science 317: Software Performance Optimization

Credits 3

Computers do not execute programs with equal speed, even when theoretical analyses indicate that two programs perform approximately the same amount of work. At the same time, software power efficiency affects the size of mobile devices and the energy consumption of data centers. This course examines current trends in computer system architecture and draws out insights for developing software that is fast and energy-efficient. Students will work problem sets, write programs, conduct experiments, read and analyze technical articles, and carry out a team project of their choice. Throughout the course, we shall consider how computer system designs affect program structure, and in particular the tensions between efficiency and principled software organization.