Your program may be perfect in every other way, but it is useless if it is too slow. Speed is best built in from the beginning; cost models and prototypes can help guide early design decisions. The key to performance is usually in the selection of algorithms and data structures. Near the end of the development, programmers can tune the code to improve run time. This lecture illustrates these important performance techniques by tiny little case studies with monster-huge speedups. This session is designed to be accessible to any working programmer who is familiar with the C programming language.