Algorithms Data Structures and Problem Solving (7.5 credits)
When developing software you will have to solve variations of well known problems, which usually have known solutions that are very well implemented. You will also have to solve new problems, and often they can be addressed using well-known problem solving techniques such as recursion or dynamic programming. More often than not, there will be more than one way to solve a particular problem, and several data structures and algorithms that can be leveraged for implementing the solution. Choosing the right combination for a given application can be tricky. So, an important ingredient to practical problem solving is to understand computational complexity in order to evaluate solution candidates in the context of a given application domain.
This course will equip you with a repertoire of basic data structures and algorithms to address daily software development tasks. It will also present common problem solving techniques, and you get to practice these techniques in exercises and mini-projects.