Important data structures in computer science and fundamental algorithm design techniques to get the efficient solutions to several computing problems from various disciplines. Topics include the analysis of algorithm efficiency, hash, heap, graph, tree, sorting and searching, brute force, divide-and-conquer, decrease-and-conquer, transform-and-conquer, dynamic programming, and greedy programming.
This was a reasonably hard class. We had the choice to work in C++ or Java. I had already done gone through similar classes in Java in python, So I decided to try my luck with C++. I don’t feel like I gained much new understanding for the language, but at least I was able to figure things out well enough to get everything done. I’m sure it helped that I had done many of the problems before. I don’t recall doing a single final project for this class, just multiple individual problems to work through.