This laboratory manual gives a thorough introduction to basic techniques. It is the result of practical experience, with each protocol having been used extensively in undergraduate courses or tested in the authors laboratory. In addition to detailed protocols and practical notes, each technique includes an overview of its general importance, the time and expense involved in its application and a description of the theoretical mechanisms of each step. This enables users to design their own modifications or to adapt the method to different systems. Surzycki has been holding undergraduate courses and workshops for many years, during which time he has extensively modified and refined the techniques described here.