Algorithmic Thinking (Part 1)

开始时间: 01/16/2016 持续时间: 4 weeks

所在平台: Coursera

课程类别: 计算机科学

大学或机构: Rice University(莱斯大学)

授课老师: Joe Warren Luay Nakhleh Scott Rixner



Explore 1600+ online courses from top universities. Join Coursera today to learn data science, programming, business strategy, and more.


第一个写评论        关注课程


When presented with a problem from a scientific domain, a Computer Scientist goes through a set of steps in order to provide a solution for the problem. These steps include: (1) understanding the problem; (2) formulating the problem mathematically; (3) designing an algorithm; (4) implementing the algorithm; and (5) solving the original scientific problem. This course will train students in how to employ algorithmic thinking by following these five steps to solve real-world problems. 

Understanding the problem entails holding conversations with domain experts to understand the parameters of the problem, what data they can provide to the computer program, what answers they expect, etc. Formulating the problem mathematically is basically the step of turning the problem from an English description to a mathematical description that is amenable to further computational analyses. 

While the course emphasizes implementing the algorithms and solving the original problems that gave rise to the need for these algorithms in the first place, much of this two-part course (part 2 is available here) will be devoted to the third step, namely, algorithm design. Here, the course will introduce students to different algorithm design strategies, as well as mathematical tools for reasoning about the correctness and efficiency of algorithms.  


Our course syllabus can be viewed at


Deep Learning Specialization on Coursera


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.


算法思维 算法