University of Chicago - Computational complexity, including machine-based complexity, communication complexity, models of parallel computation, distributed computation, algorithms, problems inspired by the world wide web.
By Ian Cooke. Highlights the differences with C++ including comments, input/output, memory allocation, variable declarations, constants, structures, booleans, libraries and suggested reading.