- #公开课
- #入门|算法|数据结构

# Alogrithmic Thinking汇总贴

meagainstww

11400

[float=left]

[float=left][backcolor=rgb(0, 0, 0)]

[backcolor=rgb(245, 245, 245)]

Watch Intro Video[/backcolor]

[/backcolor]

[/float]

[float=left]

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 the course 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.

week 1: [/float]

**Algorithmic Thinking****Part of the "Fundamentals of Computing" Specialization »**Experienced Computer Scientists analyze and solve computational problems at a level of abstraction that is beyond that of any particular programming language. This 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.[/float][float=left][backcolor=rgb(0, 0, 0)]

[backcolor=rgb(245, 245, 245)]

Watch Intro Video[/backcolor]

[/backcolor]

[/float]

[float=left]

**About the Course**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 the course 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.

**Course Syllabus**Our course syllabus can be viewed atwww.codeskulptor.org/coursera/algorithmicthinking.html.**Recommended Background**Prior mathematical and programming experience at the level of "Principles of Computing" (PoC). Students that have not taken PoC are welcome, but 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 PoC. The first week of class will include material designed to help students accurately assess whether they have the necessary background to take this class.**Course Format**This course will last eight weeks. The lectures from each week will focus on the topics listed in the syllabus while an associated weekly "mini-project" will serve to reinforce these concepts in practice. Grades for these mini-projects will be determined via a combination of machine grading and peer-assessment. The class will also include homeworks to provide further feedback.**FAQ****Will I get a certificate after completing this class?**

Yes. Students who successfully complete the class will receive a Statement of Accomplishment signed by Luay, Scott, and Joe.**What resources will I need for this class?**

The only requirement for the class is access to a modern web browser. All coding and program development will be done in a web-based programming environment that supports building applications in Python. The programs that you create will be saved, shared and graded via the cloud.**What is the most useful thing I'll learn if I take this class?**

The ability to think and solve computational problems at a higher level of abstraction, allowing you to create programs that are simpler and more efficient.

week 1: [/float]

**0条回复**

热度排序