This was the most rigorous course that I had taken at the University, yet it was also the most rewarding. While it was also the most difficult course I had ever taken, I learned an exorbitant amount about basic algorithmic approaches and important data structures necessary for solving real-world problems. Some topics we were taught include sorting algorithms, priority queues, hash tables, binary search and AVL trees, dynamic programming approaches, and branch and bound algorithms. My favorite topic covered in the course was by far the dynamic programming topic, as the method itself provides, in my opinion, the most unique kind of solution to certain problems.
I was not a huge fan of this course, as my focus of interest lies more in algorithms and development rather than lower-level, hardware based knowledge. Nevertheless, this course taught me a great deal about how a computer interprets code and organizes itself into efficient databases.
Currently taking this class, and I have already learned a great deal from it. While I am accustomed to the sort of coding associated with algorithms and logic problems, this is the first coding course I've taken in which focus is more on accessibility, intuitiveness, and presentation, all of which are new to me.
I am extremely excited to take this course. I'm not sure exactly what to expect, but I have heard that it is one of the best courses taught at the University of Michigan. I'm interested to learn the fundamentals of how any computing system functions. Regardless of its high difficulty, this course will benefit me greatly in the long run.
Although there is a legitimate website here for the pros and cons of taking this gargantuan of a course, I would love to become a better programmer and thus would love to take this class in the near future.
As opposed to mobile development, which I would prefer to study on my own time, web databases and development is such a huge span of knowledge that I feel I cannot afford to miss out on during my time at the university. I feel that to be a successful programmer, one must know how to manipulate websites and manage data in an efficient and presentable way.