Algorithms course from MIT OCW. Summary here