This semester I am taking CSE-340 Design and Analysis of Algorithms. This is one of the most important courses for any computer science student. This semester we’ve learned a multitude of algorithms, some I had not even known existed. This course presents algorithms for searching, sorting, manipulating graphs and trees, scheduling tasks, finding shortest paths, matching patterns in strings, etc. For each algorithm, we are either given or have to prove correctness and analysis of its runtime and memory demands.

This course is so crucial because it will help students know, or at least have a better understanding of, general strategies for designing algorithms when presented with a problem. Some strategies that are stressed throughout the course are iteration, recursion, divide-and-conquer, greediness, dynamic programming (which our class will be covering today!), and more.

This course has already proven to be the most valuable one I have taken here at Lehigh. It is exciting to learn about new algorithms and attempt to apply them while I am working on my projects. What makes this course even better is the professor, Professor Henry Baird. He is a fantastic professor and is one of the most knowledgeable professionals on the topic of algorithms. Unfortunately, he is retiring after this semester. Lehigh will be losing a great professor, but I am grateful I had the opportunity to take CSE-340 while it was still being taught by Professor Baird.

Any computer science student or prospective student thinking about majoring in computer science should be looking forward to this course!