问题求解课程解释和约定 陶先平马骏魏恒峰 2019年9月24日
问题求解课程解释和约定 陶先平 马骏 魏恒峰 2019年9月24日
http://cslabcms.nju.edu.cn/problem_solving/index.php
• http://cslabcms.nju.edu.cn/problem_solving/index.php
为什么“问题求解”?
为什么“问题求解”?
计算机科学中的两个基础能力培养 、课程体系的线索 ·主线之一:理论与方法(解决问题的算法); ·主线之二:软硬件支撑平台(平台与系统支撑) 计算机系统设功 大数据处理 软件工程 综合实验 综合实验 综合实验 综合实验 理 算法设: 机网络 数 准入 离散数学 础 计 数字逻辑电路 计算机科学与技术专业平台课程
计算机科学中的两个基础能力培养 • 课程体系的线索 • 主线之一:理论与方法(解决问题的算法); • 主线之二:软硬件支撑平台(平台与系统支撑) 准入 离散数学 程序基础 计算思维 数字逻辑电路 准 出 数据结构 算法设计与分析 计算机系统基础 操作系统 计算机网络 计算机科学与技术专业平台课程 计算机系统设计 综合实验 大数据处理 综合实验 软件工程 综合实验 综 合 实 验 理 论 与 算 法 平 台 与 系 统
其实,我们更关心: ·没有分析/思考的学习是低效的 Ability of using brain is the base of using hands ·训练,就数学而数学固然可以,但就问题而数学岂不更好? ·没有分析/思考的学习是无趣的 ·没有思考就没有创新,也就没有成果的反馈和满足感/成就感
其实,我们更关心: • 没有分析/思考的学习是低效的 • Ability of using brain is the base of using hands • 训练,就数学而数学固然可以,但就问题而数学岂不更好? • 没有分析/思考的学习是无趣的 • 没有思考就没有创新,也就没有成果的反馈和满足感/成就感
我们的答案是: ·以程序设计能力培养为贯穿全课程的基础目标 ·但是:将程序语言本身的学习隐藏到课堂讲解(引导环节)的”背面” ·自学+穿插在各个课堂讲授中 ·围绕一个具体问题,组织从理论到模型到算法到实现的知识点, 组织它们的应用的讨论 ·讨论聚焦在重要知识点的理解和针对该问题的知识点应用 ·纠错码编码机制:概率论+组合数学+线性代数+群论 ·钢管切割问题:动态规划=递归思想+偏序关系+拓扑排序+循环程序结构 ·或者:知识点学习中始终贯穿应用的场景 ·以分治法为典型代表的递归思考+循环实现
我们的答案是: • 以程序设计能力培养为贯穿全课程的基础目标 • 但是:将程序语言本身的学习隐藏到课堂讲解(引导环节)的”背面” • 自学+穿插在各个课堂讲授中 • 围绕一个具体问题,组织从理论到模型到算法到实现的知识点, 组织它们的应用的讨论 • 讨论聚焦在重要知识点的理解和针对该问题的知识点应用 • 纠错码编码机制:概率论+组合数学+线性代数+群论 • 钢管切割问题:动态规划=递归思想+偏序关系+拓扑排序+循环程序结构 • 或者:知识点学习中始终贯穿应用的场景 • 以分治法为典型代表的递归思考+循环实现
问题求解课程:一种基础知识的自然重构 ·融合了以下四门课 ·程序设计 ·离散数学结构 ·数据结构 ·算法设计与分析 ·融合的优势 ·纵向融合,将能力培养起始于基础课程 ·为什么起名叫问题求解 ·从解决问题出发,组织自学、授课、训练和考察 ·在每一个基础知识点学习中,引入问题背景
问题求解课程:一种基础知识的自然重构 • 融合了以下四门课 • 程序设计 • 离散数学结构 • 数据结构 • 算法设计与分析 • 融合的优势 • 纵向融合,将能力培养起始于基础课程 • 为什么起名叫问题求解 • 从解决问题出发,组织自学、授课、训练和考察 • 在每一个基础知识点学习中,引入问题背景
何谓“问题求解”?
何谓“问题求解”?
形成全新的课程内容体系 ·整个课程内容不是按照传统数学与计算机类课程各自的体系划分,而 是围绕问题求解组织成四个“论域”: ·第一个论域“计算入门与数学证明”安排在1年级上学期: ·第二个论域“经典数据结构与算法”安排在1年级下学期; ·第三个论域“典型应用问题及其求解方法”安排在2年级上学期; ·第四个论域“复杂性理论初步与‘难’问题的算法”安排在2年级下学期。 ·上述内容涵盖了传统基础课程:程序设计、离散数学、数据结构、算法设计与 分析 ·希望新体系带来的好处: ·解决原先课程各自关联性差导致同学们对基础课缺乏兴趣的问题: ·便于同学们随时将知识用于解决问题的实践,通过不断的“挑战”提高能力
形成全新的课程内容体系 • 整个课程内容不是按照传统数学与计算机类课程各自的体系划分,而 是围绕问题求解组织成四个“论域”: • 第一个论域“计算入门与数学证明”安排在1年级上学期; • 第二个论域“经典数据结构与算法”安排在1年级下学期; • 第三个论域“典型应用问题及其求解方法”安排在2年级上学期; • 第四个论域“复杂性理论初步与‘难’问题的算法”安排在2年级下学期。 • 上述内容涵盖了传统基础课程:程序设计、离散数学、数据结构、算法设计与 分析 • 希望新体系带来的好处: • 解决原先课程各自关联性差导致同学们对基础课缺乏兴趣的问题; • 便于同学们随时将知识用于解决问题的实践,通过不断的“挑战”提高能力
四个论域 ·论域1:计算入门与数学证明 ·帮助大家理解计算思维最核心的概念,了解计算的基本方法与局限,接受基本的形式 化训练,掌握抽象数学证明的基本方法。 ·论域2:经典数据结构与算法 ·帮助大家理解抽象数据,理解并应用常用的数据结构,掌握重要的算法设计策略以及 算法设计与分析的基本理论与方法,理解并能够应用支持上述内容的离散数学工具与 方法。 ·论域3:典型应用问题及其求解方法 ·引导大家掌握典型应用中抽象出来的重要算法问题的求解方法,理解并能够应用支持 上述内容的离散数学工具与方法。 ·论域4:复杂性理论基础与“难”问题的算法 ·涵盖问题求解中复杂性理论的基本内容与问题规约方法,解决“难”问题的主要方法、 技术以及相关的重要理论结果
四个论域 • 论域1:计算入门与数学证明 • 帮助大家理解计算思维最核心的概念,了解计算的基本方法与局限,接受基本的形式 化训练,掌握抽象数学证明的基本方法。 • 论域2:经典数据结构与算法 • 帮助大家理解抽象数据,理解并应用常用的数据结构,掌握重要的算法设计策略以及 算法设计与分析的基本理论与方法,理解并能够应用支持上述内容的离散数学工具与 方法。 • 论域3:典型应用问题及其求解方法 • 引导大家掌握典型应用中抽象出来的重要算法问题的求解方法,理解并能够应用支持 上述内容的离散数学工具与方法。 • 论域4:复杂性理论基础与“难”问题的算法 • 涵盖问题求解中复杂性理论的基本内容与问题规约方法,解决“难”问题的主要方法、 技术以及相关的重要理论结果