|
所在平台: Coursera |
课程主页: https://www.coursera.org/learn/algorithmic-thinking-1
课程评论:没有评论
课程名称:算法思维(第一部分) 课程概述:经验丰富的计算机科学家在超越特定编程语言的抽象层面上分析和解决计算问题。本课程的前两部分建立在我们计算原理课程所教授的基础上,旨在培训学生掌握"算法思维"的数学概念和过程,使他们能够构建更简洁、更高效的解决方案来应对现实世界中的计算问题。 在本课程的第一部分,我们将研究算法效率的概念,并考虑其在图论中的应用。作为课程的核心内容,学生将使用Python实现几个重要的图算法,并利用这些算法分析两个大型真实数据集。本阶段的主要任务是理解算法与被分析数据集结构之间的互动。 推荐背景:学生应能舒适地编写中等规模(300行以上)的Python程序,并具备基本的搜索、排序和递归知识。学生还应具备扎实的数学基础,包括代数、高等数学及对“计算原理”课程中涵盖的数学概念的熟悉程度。 课程大纲: - 模块1 - 核心材料:算法思维的概念、课堂结构、图、暴力算法 - 模块1 - 项目与应用:图的表示、绘图、引文图的分析 - 模块2 - 核心材料:渐近分析、“大O”符号、伪代码、广度优先搜索 - 模块2 - 项目与应用:连通组件、图的韧性以及计算机网络的分析
Name:Module 1 - Core Materials
Description:What is Algorithmic Thinking?, class structure, graphs, brute-force algorithms
Name:Modules 1 - Project and Application
Description:Graph representations, plotting, analysis of citation graphs
Name:Module 2 - Core Materials
Description:Asymptotic analysis, "big O" notation, pseudocode, breadth-first search
Name:Module 2 - Project and Application
Description:Connected components, graph resilience, and analysis of computer networks
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".