Experienced Computer Scientists analyze and solve computational problems at a level of abstraction that is beyond that of any particular programming language. This two-part class is designed to train students in the mathematical concepts and process of "Algorithmic Thinking", allowing them to build simpler, more efficient solutions to computational problems.
In part 2 of this course, we will study advanced algorithmic techniques such as divide-and-conquer and dynamic programming. As the central part of the course, students will implement several algorithms in Python that incorporate these techniques and then use these algorithms to analyze two large real-world data sets. The main focus of these tasks is to understand interaction between the algorithms and the structure of the data sets being analyzed by these algorithms.
Once students have completed this class, they will have both the mathematical and programming skills to analyze, design, and program solutions to a wide range of computational problems. While this class will use Python as its vehicle of choice to practice Algorithmic Thinking, the concepts that you will learn in this class transcend any particular programming language....

Mar 25, 2018

Great class...Luay's lectures and problem sets were a great continuation to what Joe and Scott started. I suppose I will get started on Course 7 shortly.

Apr 29, 2018

Excellent class in the series. Even if computational biology is not your thing, the assignments are really interesting, fun and informative.

筛选依据：

创建者 Vern K

•Jul 26, 2018

Course and assignments were very well thought out and informative.

创建者 Martin W

•Feb 03, 2017

Really like the mix of theory and practical application

创建者 Roberto M P F M

•Jun 10, 2019

The content is great, but it is taking ages for me to have my last assignment reviewed