- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面向问题求解的算法类课程体系重构和教学实践
面向问题求解的学习和实践
陶先平
南京大学计算机科学与技术系
目录
为什么我们命名这个两年的课程是“问题求解”
我们学习过哪些问题求解的基本知识?
我们的问题求解能力训练到底如何?
围绕问题求解的课程体系
课程体系的线索
课程体系主线之一:理论与方法(解决问题的方法);
课程体系主线之二:支撑与平台(平台与系统支撑)
理论与算法
平台与系统
“问题的求解”能力是什么?
什么叫“问题的求解”?
解问题的基本方法
Polya的Problem solving基本方法
如何理解问题和制定计划
问题的形式化
模糊问题的数学描述
基础理论
数学模型
算法的设计、分析及优化
含设计策略、正确性证明
数据结构的设计及算法的实现
程序设计及优化
理解问题
制定计划
计划执行
回顾检查
问题
基础理论1
基础理论2
基础理论n1
基础理论知识
模型1
模型2
模型n1
面向问题的数学模型
精巧、简明、高效的编码
…
…
程序=数据结构+算法
但是:背后的数学、逻辑更为关键
传统的课程体系存在的不足在于
知识点及其应用在时序上有错位
程序设计课程总是难以定位
复杂程序难度太大,toy级程序实在无趣
知识点及其应用在时序上被脱节
书到用时已忘了
数理逻辑中的命题符号化、数学归纳法和循环不变式
概率论和算法时间渐进复杂度分析
……
知识点及其应用在安排上各自为营,效率低下
课程之间边界模糊,教学目标不明确
重复太多,缺失不知
我们的答案是:
重构知识体系:
尽量围绕具体问题,从理论到模型到算法到实现开展组织和学习
消除重复,避免遗漏
强化应用训练,知识点学习中始终贯穿应用场景
在解问题中,不断运用以前学过的知识点
以程序设计能力培养为贯穿全课程的基础目标
将程序语言及编程的训练隐藏到课堂讲解(引导环节)的”背面”
穿插在各个课堂讲授中
自学、自练
将自学能力培养放到足够的高度
问题1
基础理论1
基础理论2
基础理论n1
算法1
算法2
算法n3
基础理论知识
面向问题的算法
模型1
模型2
模型n2
面向问题的数学模型
数据结构1
数据结构2
数据结构n4
精巧、简明、高效的编码
面向问题的数据结构
…
…
…
…
问题2
问题n0
形成全新的课程内容体系
整个课程内容不是按照传统数学与计算机类课程各自的横向体系划分,而是围绕问题求解组织成四个“论域”:
第一个论域“计算入门与数学证明”安排在1年级上学期;
第二个论域“经典数据结构与算法”安排在1年级下学期;
第三个论域“典型应用问题及其求解方法”安排在2年级上学期;
第四个论域“复杂性理论初步与‘难’问题的算法”安排在2年级下学期。
上述内容涵盖了传统基础课程:程序设计、离散数学、数据结构、算法设计与分析
希望新体系带来的好处:
学以致用,缓解“学这些东西有啥用”的焦虑;
压缩冗余,接触更多的内容;
学会学习,开启终身学习模式。
四个论域
论域1:计算入门与数学证明
帮助学生理解计算思维最核心的概念,接受基本的形式化训练,掌握抽象数学证明的基本方法。
论域2:经典数据结构与算法
帮助学生理解抽象数据类型,理解并应用常用的数据结构
掌握重要的算法设计策略以及算法设计与分析的基本理论与方法
理解并能够应用支持上述内容的离散数学工具与方法。
论域3:典型应用问题及其求解方法
引导学生掌握典型应用中抽象出来的重要算法问题的求解方法,理解并能够应用支持上述内容的离散数学工具与方法。
论域4:复杂性理论基础与“难”问题的算法
涵盖问题求解中复杂性理论的基本内容与问题规约方法,解决“难”问题的主要方法、技术以及相关的重要理论结果。
论题的结构模型及实施方案
自学材料(教材)
课程讲义
课外作业
编程训练
研讨内容
经典教材摘选
学生课前自学
以解题为目的
以深度为优先
以启发为手段
教师选题
学生讲解
围绕论题
选编题目
问题求解2年中的核心价值点
形式化和证明方法
抽象数据类型及数据结构
算法复杂度评估
算法设计策略
若干经典问题的数学模型及算法
难问题的“难” 以及我们的妥协
妥协中的坚持
所有的一切,归根结底,体现为:
程序设计能力
(狭义上的问题求解)
形式化及证明方法
命题逻辑及谓词逻辑
如何用人工(数学)语言重述自然语言的事实或者过程
消除歧义、严谨过程
如何建立一个一致的、完备的系统
基本证明方法及这些方法的逻辑基础
推理/演绎
归纳
递归、数学归纳法
算法正确性证明
算法复杂度评估
组合和计数
在算法分析中也经常用到
离散概率模型
随机变量、指示器随机变量、期望
算法的时间渐进复杂度
Worst case VS Average case VS Best case
递归式求解
O标记
算法复杂度的若干话题
问题的难度和算法的复杂度
容易的问题 VS 难的问题
我们的妥协
数学模型、抽象数据类型及数
文档评论(0)