The development of these lecture notes is facilitated by the National Science Foundation (NSF) through Grant CCF-0545571.