This document discusses analyzing the running time of algorithms. It introduces pseudocode as a way to describe algorithms, primitive operations that are used to count the number of basic steps an algorithm takes, and asymptotic analysis to determine an algorithm's growth rate as the input size increases. The key points covered are using big-O notation to focus on the dominant term and ignore lower-order terms and constants, and analyzing two algorithms for computing prefix averages to demonstrate asymptotic analysis.