Performance Engineering
This past term, I've been spending most of my time on MIT's Performance Engineering class . It's a project based class, and since your code can always be faster, people often spend around 40 hours a week! To get an idea of the areas the class covers, I'm linking my study sheet for the second exam, which I just had today. However, I learn the most from the projects. Here are some thoughts on concepts applied and lessons learned from each project (each of which I coded with a different partner): Project 1: Bit Rotation Final writeup here The first project was mostly about bit hacks. The instructors gave us a reference implementation, that rotated the bit array by k bits by shifting the whole array one position at a time. This was very slow - running on AWS, the job didn't even finish because of the 20-second timeout! However, we were able to cut the time down to 44 microseconds (median of 5 runtimes on AWS). The first trick is to change the algorithm .