For course material and discussion go to http://macwire.ucsd.edu
After studying the material on any particular unit, work the exercises. Then try the randomly generated multiple choice tests with no answers provided. If you are having difficulty, try the set of randomly generated tests for which answers are available and then return to the first set.
In each case, explain why the answer you choose is correct and make sure you understand why the other answers are wrong.