绪言
鲁迅说过,“世界上本没有路,但走得人多了,也便成了路。”或许是现代人走得是在太多,路已如蛛网一般将整个城市笼罩在内,《西游记》主题曲唱的“敢问路在何方”,现在还真是不一定有人能理直气壮的接一句“路在脚下”了,因为现在的路实在是太复杂了,连最有经验的司机都不一定会记得城市中的所有道路。无数的路编织成了网络,却也困住了现代人对目的地的渴望,所幸,我们手里还有导航,可以在我们决定想要出发时,规划有一条到达目的地最优的路线。自沥青路铺满华夏大地之时,导航软件就伴随着我们,久之习以为常。但是习以为常可不代表着它平平无奇,同学们知道为什么导航软件总是可以在无数的选择之中为我们规划出到目的地最短的路线吗?这种寻路算法是怎样实现的呢?又有着怎样的优点和局限性呢?本节课就让我们一起探究下吧!
任务
代码转换学生的任务是学习寻路算法的算法思路,了解至少三种寻路算法的优势和缺点(如迪杰斯塔 拉算法,A*算法,Greed-Best-First-Search算法等),掌握至少一种寻路算法的计算机语言实现过程,同时以小组为单位,最终形成一个简易的导航程序,并且小组形成实践报告,在课堂结课时上台进行展示汇报。 过程
1、课前准备工作
(1)课堂同学自主分组,每个小组至少4人,设置组长
(2)收集寻路算法的大概资料,大致了解什么是寻路算法,为小组讨论做好铺垫
(3)进行小组讨论,选择小组最终要实现的程序算法,并确定每一位小组成员的分工
2、收集资料
(1)每位同学都在老师给的网址或者个人在网络上收集寻路算法的学习资料,确定好自己所要学习的寻路算法。
(2)根据小组讨论的分工,收集自己对应部分的学习资料,为完成小组任务做准备。
(3)整理汇总所收集到的资料,为之后个人学习做准备。
3、个人学习
(1)通过老师给的网址或者自己在网络上收集的学习资料学习寻路算法,了解至少三种寻路算法的优势和缺点,掌握至少一种算法的计算机语言实现过程。
(2)通过教师上传在moodle平台中的学习资源学习本堂课程中所有同学都必须掌握的一些知识点。
(3)学习过程中记录学习疑问,在个人学习结束后询问教师或者在小组之间进行讨论。
4、小组合作
(1)小组讨论解决每位小组成员在个人学习过程中所遇到的问题,如果经过小组讨论依然解决不了,则询问教师。
(2)小组合作整理每位成员收集到的小组任务相关资料,并进行讨论,优化小组程序方案。
(3)小组组长统筹规划小组成员开始进行小组任务,互相帮助解决进行中遇到的困难。
5、编写程序
(1)依据小组收集的资料和小组讨论的方案,选择合适的计算机语言,在编程平台上进行寻路算法的程序编程。
(2)测试运行程序,到程序中的bug,修改程序
(3)不断优化程序算法,以达到小组所能达到的最佳运行效率。
6、汇报成果
(1)每个小组各派一位代表上台展示小组制作的程序,并对程序的制作思路,制作过程,以及小组讨论分工情况进行汇报。
(2)每个小组最终都要形成实验报告,并上交给教师。
资源
1、CSDN——专业开发者社区,有着大量计算机程序算法的参考资料,教师推荐其中的几篇博客
《寻路算法(BFS,DFS, A*寻路)》
《寻路算法浅析》
《寻路算法基础》
2、moodle平台——教师建立的moodle平台,在其中上传了一些基本的寻路算法的资料
3、知乎——可以寻到很多讲解详细的寻路算法的文章和学习资料。
评估
通过以下表格进行组内成员互评,小组互评,教师评分。
个人评价:
项目内容 | 很好(10-9分) | 中等(8-6分) | 较差(6分以下) |
按时完成任务 | | | |
收集信息能力 | | | |
zne1小组合作能力 | | | |
个人学习能力 | | | |
语言表达能力 | | | |
| | | |
小组互评,教师评分
项目内容 | 具体指标 | 很好(10-9分) | 中等(8-6电火花笔分) | 较差(6分以下) |
按时完成作品 | 按时完成并提交作品 | | | |
程序完整性 | 风暖加热器小组设计的程序完整,有着输入和输出,能够流畅运行并实现功能 | | | |
程序可操作性 | 程序操作简易,运行迅速,时间控制在3s以内 | | | |
小组分工合理性 | 小组分工合理,每个人都有各自任务 | | | |
小组汇报完整性 | 小组汇报完整,汇报人员语言表述清晰流畅,内容详细 | | | |
实验报告完整性 | 小组编写程序的过程清晰可见,小组分工有着明确说明 | | | |
| | 蒲公英化妆品 | | |
结论
教师总结课程内容,对每个小组的作品进行评价
通过本次课程学习,学生能够了解并掌握常见的寻路算法的设计思路,计算机语言实现过程,以及常见寻路算法的优缺点。且通过本次研究学习,学生可以锻炼自己的小组合作能力,资源搜集能力,编程能力以及语言表达能力。