本单元包括十七个知识点:什么是问题求解、算法与算法描述、顺序结构、选择结构、循环结构、数组、函数、枚举法、递归法、递推法、迭代法、分治法、动态规划、贪心算法、回溯法、查找与排序。完成本单元学习可能花费您4个小时的学习时间(包括单元测试与讨论)。
本课程将根据布鲁姆学习能力金字塔描述知识单元的学习目标。
识记 | 能描述以下内容:描述顺序结构(赋值语句语法)、选择结构(if结构语法)、循环结构(for语句和while语句语法);能描述语句块语法。 |
理解 | 能解释和举例说明以下内容:数组元素的访问机制、函数的调用方法 |
运用 | 能灵活使用的内容:能正确使用赋值语句、条件语句、循环语句,完成简单问题的编写,并预期程序的运行结果。 |
分析 | 能运用经典算法(枚举算法、递归算法、递推算法、迭代算法、分治算法、查找算法、排序算法)分析问题,绘制Raptor流程图、编写Python代码。 |
评价 | 能利用思维导图总结经典算法 |
创造 | 能针对具体案例场景要求,利用经典算法(贪心算法、动态规划、回溯算法)描述算法,求解问题。 |

单元学习目标:通过本知识单元的学习,您将能够:
• 能够阐述什么是问题求解,能够区分计算思维和传统思维的异同。
• 能够阐述什么是算法,能够辨识算法描述的方法(自然语言、流程图和伪代码),并能区分它们的异同。
• 能够阐述什么是顺序结构,并能分别用流程图和伪代码绘制顺序结构流程图,以及撰写顺序结构伪代码。
• 能够阐述什么是选择结构,并能分别用流程图和伪代码绘制选择结构流程图,以及撰写选择结构伪代码。
• 能够阐述什么是循环结构,并能分别用流程图和伪代码绘制循环结构流程图,以及撰写循环结构伪代码。
• 能阐述什么是数组,以及数组的使用
• 能阐述什么是函数,以及函数的使用
• 能阐述枚举算法,以及枚举法求解问题
• 能阐述德罗斯特效应,以及递归法求解问题
• 能阐述递推算法,以及如何构建递推公式求解问题
• 能阐述迭代算法,以及如何用迭代算法求解问题
• 能阐述分治算法,以及如何用分治法求解问题
• 能阐述多阶段决策问题,以及用动态规划求解问题
• 能阐述贪心算法,以及用贪心算法求解问题
• 能阐述回溯算法,以及用回溯法构建解空间树,以及遍历解空间树求解问题
• 能阐述顺序查找算法和折半查找算法,以及用查找算法求解问题
• 能阐述选择排序、冒泡排序、插入排序核心思想,以及用冒泡排序求解问题
知识点 | 课堂活动 | 评价方法 |
什么是问题求解? | 1、课前: (1)登录课程网站,观看第7章算法设计与问题求解相关17个教学视频,完成视频中的弹题 (2)阅读知识点对应的图文教程,完成对应的巩固练习和主题讨论 (3)完成本章的章节测验 2、课中: 理论课: (1)教师讲授编程基础和经典算法。 (2)学生参与课堂互动和小组讨论 实验课: (1)使用Raptor绘制流程图,使用Python编写程序 (2)独立完成PBL个人项目 3、课后: (1)阅读本章的延伸学习 (2)完成课后练习7-1、7-2 (3)分组完成综合性案例 | (1)MOOC视频任务点完成率 (2)课堂讨论和回答问题次数 (3)知识点巩固练习分数 (4)知识点的主题讨论次数 (5)章节测验分数 (6)课堂互动分数 (7)课后练习分数 (8)本次PBL个人项目分数 (9)综合性案例分数 |
算法与算法描述 | ||
顺序结构 | ||
选择结构 | ||
循环结构 | ||
数组 | ||
函数 | ||
枚举算法 | ||
递归算法 | ||
递推算法 | ||
迭代算法 | ||
分治算法 | ||
动态规划 | ||
贪心算法 | ||
回溯算法 | ||
查找算法 | ||
排序算法 |


