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 course builds on the principles that you learned in our Principles of Computing course and is designed to train students in the mathematical concepts and process of "Algorithmic Thinking", allowing them to build simpler, more efficient solutions to real-world computational problems.
In part 1 of this course, we will study the notion of algorithmic efficiency and consider its application to several problems from graph theory. As the central part of the course, students will implement several important graph algorithms in Python 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.
Recommended Background - Students should be comfortable writing intermediate size (300+ line) programs in Python and have a basic understanding of searching, sorting, and recursion. Students should also have a solid math background that includes algebra, pre-calculus and a familiarity with the math concepts covered in "Principles of Computing"....

Sep 29, 2018

very educational. I've learnt not only about graph theory but also how to use matplotlib and timeit libraries. The assignments were quite challengeable but rewarding.

Sep 17, 2019

The class is very useful, I already see the improvement in the codes that I write. And the assignments are very well-designed and truly helpful.

篩選依據：

創建者 Deepak V

•Jun 19, 2019

It was a good learning experience

創建者 Wenxuan L

•Jan 26, 2020

同学互评环节有时候会人不够啊

創建者 Marcello F

•Sep 10, 2017

Great course !

創建者 Daniel W

•Jan 08, 2020

Pros:

Lots of good material to learn. Challenging. Lectures are easy to understand.

Cons:

More dense, textbook-jargon "CS major" feel to this class than the others. Expect to spend more hours and have less fun vs. parts 1-4. Much easier to get discouraged. Major problems waiting for assignments to go through peer grading process, sometimes taking *weeks*.

Suggestions:

More basic handouts such as: 1) Set notation cheat sheet. 2) Pseudocode examples fully decoded into simple language. Also, watching a visualization of the base-pairing algorithm (Needleman-Wunsch) is highly recommended for understanding what you're trying to do. You can google it, but it would be nice if they added it to the course. Also, more smiling.

In summary, it's a challenging course and I'm a better programmer for having finished it. However, it's more daunting, took me longer, and lacks the easy going/encouraging/illustrative style of the earlier courses. Peer grading takes way too long, especially if you're paying for a subscription.

(My review applies to both Algorithmic Thinking Parts 1 and 2)

創建者 Wynand

•Jan 11, 2018

Not quite the same level of energy presents in IIPP and Computing Principles. Also did not like the peer review projects, too messy.

創建者 Qi D

•Feb 18, 2017

coursea does not allow me to quit the class. Also, I cannot do the homework or watch video at my own pace.