MAC.5035 Algorithms and Programming

Understanding the runtime efficiency of algorithms enables us to compare algorithms and predict if a given problem is solvable by a given algorithm in a practical amount of time. This course will reinforce and expand knowledge of algorithms and also introduce algorithms analysis (measuring the efficiency of algorithms), independent of language, operating system, or hardware. The course will survey a variety of techniques for designing efficient algorithms. These techniques will help students program correctly even when they're not worried about efficiency. Students should learn how to prove that a given algorithm is "as good as it can get", in the sense that no algorithm, no matter how clever, will ever be better than this one.

Credits

3

Prerequisite

Prerequisite: MAC.2010 or basic proficiency with Java