About Dynamic programming, greedy algorithms course
This course covers basic algorithm design techniques such as divide and conquer, dynamic programming, and greedy algorithms. It concludes with a brief introduction to undecidability (NP-completeness) and the use of linear/integer programming solvers to solve optimization problems. We also cover some advanced topics in data structures. This course can be taken for academic credit toward CU Boulder's MS in Data Science or MS in Computer Science programs, both offered on Coursera. These fully accredited degrees offer focused courses, short 8-week sessions, and fee-based tuition. Admission to the program is based on three prerequisite courses, not academic history. CU degrees on Coursera are ideal for recent graduates or working professionals.