...I have also taken CS 2 at the California Institute of Technology, which covers data structures, including lists, trees, and graphs; implementation and performance analysis of common algorithms; algorithm design principles, in particular recursion and dynamic programming; concurrency and network ...