论文部分内容阅读
摘要:学生计算思维能力的培养需要通过完善的课程体系来实现,教学内容、教学模式、实践环节和考核方式是课程建设中的四大基本要素。探讨了面向计算机专业本科生的“离散数学”课程的课程规划与建设,并进一步提出了加强该课程教学改革的设想。
关键词:离散数学;课程建设;计算思维;教学改革
作者简介:陈蕾(1975-),男,江西宜春人,南京邮电大学计算机学院,副教授;张迎周(1978-),男,安徽合肥人,南京邮电大学计算机学院,教授。(江苏 南京 210003)
基金项目:本文系南京邮电大学教学改革项目(项目编号:JG00411J76)的研究成果。
中图分类号:G642.0 文献标识码:A 文章编号:1007-0079(2013)13-0118-02
信息技术的快速发展使得以数理逻辑、组合数学、离散概率、集合论、代数系统和图论等为代表的离散数学分支越来越受到人们的重视。作为计算机专业和通信工程专业低年级学生的一门重要核心课程,“离散数学”课程不仅具有一般数学类课程所共有的理论性强、概念多、高度抽象等特点,而且还具有计算机类课程所具有的面向应用的特点,由于现有课程教学内容缺少应用实例分析和课程实践环节,学生在学习过程中往往会有畏难情绪,且普遍感觉到枯燥无味,因而缺乏学习的动力和兴趣。
近年来,由美国著名计算机教育学者Jeannette M.Wing教授提出的计算思维为我们提供了一种改革离散数学教学内容和教学模式的新视角。[1]计算思维是指运用计算机科学的基础概念去求解问题、设计系统和理解人类行为,它与数学思维非常相似,只是计算思维是建立在计算过程的具体实现和约束之上,并由程序控制计算机进行操作完成。计算思维的核心是问题抽象、数学建模和自动化求解。[2]从计算思维的角度来看,虽然离散数学由多个相对独立的课程模块组成,但这些内容本质上都是为了训练学生运用离散结构构建问题的抽象模型并在此基础上构造算法和解决问题的能力。[3]因此,一方面“离散数学”课程为我们培养学生的计算思维能力提供了一个很好的平台,另一方面计算思维能力的培养也反过来促进了“离散数学”教学内容和教学模式的改革。本文结合笔者多年的离散数学教学实践经验,以强化学生的计算思维能力培养为主要目标,对离散数学在本科教学中的教学内容、教学模式、实践环节和考核方式四个方面进行探讨,并进一步提出加强该课程教学改革的设想。
一、融入计算思维能力培养的“离散数学”课程教学内容
离散数学以离散结构及其相互关系为主要研究对象,在计算机科学与技术领域有着广泛的应用,是计算机专业和通信工程专业诸多专业课程必不可少的先修基础课程,涵盖的内容涉及到逻辑学、集合论、代数系统、图论等多个现代数学分支。通过离散数学的学习,学生不但可以掌握各种离散结构的描述和处理方法,而且可以加强抽象思维和逻辑思维的培养,提高自动化问题求解的能力,为未来开展创新型研究工作打下扎实的基础。
根据离散数学所具有的特点以及南京邮电大学(以下简称“我校”)课程体系的设置情况,我们对传统的离散数学教学内容进行了调整,指导思想是让学生不仅学会一些特定的数学知识并知道怎样应用,还应教会学生怎样进行数学逻辑思维,更重要的是加强学生的计算思维能力培养。为此,本课程力求将数学推理、组合分析、离散结构、算法思想、应用与建模这5个重要的主题交织在一起,引入应用实例和课程实践环节。该课程安排总学时64学时,其中讲课60学时,课内实验4学时,课外实验12学时(选做),主要内容和学时分配如表1所示。课程具体内容涵盖数理逻辑、集合与函数、组合数学、代数系统、图论及离散概率论等六个分支。在学时安排上,鉴于我校计算机专业在二年级上学期已经开设了“概率论与数理统计”课程,因此离散概率论的相关内容以学生自学为主,同时为了体现计算思维抽象和自动化的思想,我们补充了一个有趣的“基于贝叶斯理论的垃圾邮件过滤器的设计与实现”应用实例。此外,还引入了初等数论和计数的基本内容,增加了RSA密码系统的设计与实现应用实例分析,这部分内容也以学生自学为主、教师讲授为辅,同时特别安排了4个课时的集中辅导答疑。
二、融入计算思维能力培养的“离散数学”启发式教学模式
“离散数学”是一门内容涉及面极为广泛的课程,这些内容不仅自成体系,而且每部分都包含大量抽象的概念、定理、公式以及各种推理规则,兼具理论和应用相结合的特点。因此传统的数学类课程或计算机类课程所采用的常规教学手段都无法适应现在的离散数学教学要求。
针对“离散数学”课程所具有的理论和应用相结合的特点,从强化学生的计算思维能力培养着手,采用了启发式教学模式,以充分调动学生的学习积极性。例如,一般教材中在讲述如何判定关系的传递性时,往往提到传递的特征复杂,不易从关系矩阵和关系图中直接判定,而且大部分学生都是根据传递性的定义采用穷举的方法来判定,既耗时又容易出错。这时可以启发学生从传递闭包的角度来判定关系的传递性,如果一个关系满足传递性,那么它的传递闭包就是它本身,而求传递闭包可以采用简单的Warshall算法,更进一步,可以据此启发学生将此知识点和图的连通性判定联系起来,当一个图表示为邻接矩阵时,如果将邻接矩阵看成是结点集合上的邻接关系图,则图的连通性可以通过求解邻接关系的传递闭包来判定。
再比如,学生在学习代数系统时,我们可以启发学生将代数系统和面向对象程序设计语言的类(Class)结构联系起来,告诉学生高级语言中的类结构就可以看成是一种代数系统,同时引导学生回忆在中小学阶段学习过的初等代数(涉及到加、减、乘、除运算)也是一种代数系统。因此学生容易得出结论:代数系统可以根据需要任意地构建。但这样一来就可能存在非常多的代数系统。为了尽可能抽象地研究代数系统具有的性质,我们进一步引入同构的概念,而同构又是一种等价关系,在等价关系的基础上可以定义等价类。由于代数系统的研究对象不是集合中的元素,而是定义在集合上的各种抽象运算,对于“元素本身是什么”这样的问题并不关心。因此,基于代数系统等价类的概念,教师可以进一步启发学生去探寻和理解布尔代数与等价类、命题逻辑之间的联系。在教师的引导下,学生会惊喜地发现看似独立的数理逻辑、集合、关系、函数与代数系统之间其实是有联系的,如果再辅以一些应用实例的建模与分析,就会很容易激发起学生学习离散数学的兴趣。 三、融入计算思维能力培养的“离散数学”课程实践环节
作为一门专业基础课,“离散数学”强调的是对概念、定理、公式的理解。在教学实践中,学生普遍认识不到这门课程的重要性,觉得这门课程与计算机科学联系不起来,看不到离散数学知识在计算机科学中的具体应用,从而缺乏相应的学习兴趣,进一步导致计算思维能力得不到良好的训练。因此利用计算机进行离散数学实验教学,让学生主动参与发现、探究和解决问题,从中获得解决实际问题的过程体验,产生成就感和自豪感,进而开发学生的创新潜能。这不仅仅是开展离散数学研究性学习的一种有效方式,而且也是促进学生计算思维能力培养的一种有效途径。“离散数学”课程的实验名称、学时分配及基本内容和要求如表2所示,在4学时的课内必做实验和4学时的课外选做实验中,每个学生要完成相应的实验题,通过独立思考、与同学讨论、老师辅导答疑,选择相应的方法,进行题目的分析、编程及测试工作,并按要求写出实验报告。
表2 “离散数学”课程实验内容、学时分配及基本要求
序号 实验项目名称 学时 实验内容和要求 每组人数 备注
1 构造合式公式的真值表 2 对给出的任意一个合式公式(不超过四个命题变元),编程实现自动画出其真值表 1 课内必做
2 判别图的连通性 2 给定n个结点的有向图邻接矩阵,判断该图是否为强连通、单向连通或弱连通 1 课内必做
3 RSA密码系统设计与实现 6 编程实现RSA的加密和解密过程,加深对公钥(非对称)密码算法的认识 5 课外选做
4 贝叶斯Spam过滤器设计与实现 6 编程实现一个适于客户端使用的贝叶斯垃圾邮件过滤器原型系统 5 课外选做
四、融入计算思维能力培养的离散数学课程考核方式
为了考查教师的教学效果和学生对知识的掌握程度,通常采用考试作为教学活动必不可少的重要环节,这在一定程度上可激发师生的教学积极性,提高教学与学习效果。因此,随着本课程实践训练环节的加强,我们对课程考核方式进行了相应的改革。目前采用综合考查的多元成绩评定考核方式。理论教学环节采取平时考查与期末考试相结合的方式。平时考查包括课堂考查、作业(课堂或课后思考题、课堂讨论)等方面,其成绩占课程总评成绩的25%。期末考试占课程总评成绩50%。实践教学环节考核内容包括实验和实践,其中,实验考评内容包括实验报告、实验操作、综合素质考核等,总评成绩为每次加权平均,占课程总评成绩20%;实践考评学生对基本算法的编程能力和自主创新能力,学生结合教学内容,通过自由选择综合实验或参与教师科研来完成,占课程总评成绩5%。这种考核方法更能全面地反映学生在知识掌握和知识应用方面的综合学习情况。
五、结论
离散数学不仅是计算机技术的支撑学科,更是提高学生计算思维、逻辑思维和创新思维能力以及形式化表述能力的有效途径,离散数学课程所传授的思想和方法,广泛地体现在计算机科学技术及相关专业的各个领域。
参考文献:
[1]Wing J M. Computational Thinking[J].Communication of the ACM,2006,49(3):33-35.
[2]周以真.计算思维[J].中国计算机学会通讯,2007,3(11):83-85.
[3]常亮,徐周波,古天龙,等.离散数学教学中的计算思维培养[J].计算机教育,2011,(14):90-94.
(责任编辑:刘辉)
关键词:离散数学;课程建设;计算思维;教学改革
作者简介:陈蕾(1975-),男,江西宜春人,南京邮电大学计算机学院,副教授;张迎周(1978-),男,安徽合肥人,南京邮电大学计算机学院,教授。(江苏 南京 210003)
基金项目:本文系南京邮电大学教学改革项目(项目编号:JG00411J76)的研究成果。
中图分类号:G642.0 文献标识码:A 文章编号:1007-0079(2013)13-0118-02
信息技术的快速发展使得以数理逻辑、组合数学、离散概率、集合论、代数系统和图论等为代表的离散数学分支越来越受到人们的重视。作为计算机专业和通信工程专业低年级学生的一门重要核心课程,“离散数学”课程不仅具有一般数学类课程所共有的理论性强、概念多、高度抽象等特点,而且还具有计算机类课程所具有的面向应用的特点,由于现有课程教学内容缺少应用实例分析和课程实践环节,学生在学习过程中往往会有畏难情绪,且普遍感觉到枯燥无味,因而缺乏学习的动力和兴趣。
近年来,由美国著名计算机教育学者Jeannette M.Wing教授提出的计算思维为我们提供了一种改革离散数学教学内容和教学模式的新视角。[1]计算思维是指运用计算机科学的基础概念去求解问题、设计系统和理解人类行为,它与数学思维非常相似,只是计算思维是建立在计算过程的具体实现和约束之上,并由程序控制计算机进行操作完成。计算思维的核心是问题抽象、数学建模和自动化求解。[2]从计算思维的角度来看,虽然离散数学由多个相对独立的课程模块组成,但这些内容本质上都是为了训练学生运用离散结构构建问题的抽象模型并在此基础上构造算法和解决问题的能力。[3]因此,一方面“离散数学”课程为我们培养学生的计算思维能力提供了一个很好的平台,另一方面计算思维能力的培养也反过来促进了“离散数学”教学内容和教学模式的改革。本文结合笔者多年的离散数学教学实践经验,以强化学生的计算思维能力培养为主要目标,对离散数学在本科教学中的教学内容、教学模式、实践环节和考核方式四个方面进行探讨,并进一步提出加强该课程教学改革的设想。
一、融入计算思维能力培养的“离散数学”课程教学内容
离散数学以离散结构及其相互关系为主要研究对象,在计算机科学与技术领域有着广泛的应用,是计算机专业和通信工程专业诸多专业课程必不可少的先修基础课程,涵盖的内容涉及到逻辑学、集合论、代数系统、图论等多个现代数学分支。通过离散数学的学习,学生不但可以掌握各种离散结构的描述和处理方法,而且可以加强抽象思维和逻辑思维的培养,提高自动化问题求解的能力,为未来开展创新型研究工作打下扎实的基础。
根据离散数学所具有的特点以及南京邮电大学(以下简称“我校”)课程体系的设置情况,我们对传统的离散数学教学内容进行了调整,指导思想是让学生不仅学会一些特定的数学知识并知道怎样应用,还应教会学生怎样进行数学逻辑思维,更重要的是加强学生的计算思维能力培养。为此,本课程力求将数学推理、组合分析、离散结构、算法思想、应用与建模这5个重要的主题交织在一起,引入应用实例和课程实践环节。该课程安排总学时64学时,其中讲课60学时,课内实验4学时,课外实验12学时(选做),主要内容和学时分配如表1所示。课程具体内容涵盖数理逻辑、集合与函数、组合数学、代数系统、图论及离散概率论等六个分支。在学时安排上,鉴于我校计算机专业在二年级上学期已经开设了“概率论与数理统计”课程,因此离散概率论的相关内容以学生自学为主,同时为了体现计算思维抽象和自动化的思想,我们补充了一个有趣的“基于贝叶斯理论的垃圾邮件过滤器的设计与实现”应用实例。此外,还引入了初等数论和计数的基本内容,增加了RSA密码系统的设计与实现应用实例分析,这部分内容也以学生自学为主、教师讲授为辅,同时特别安排了4个课时的集中辅导答疑。
二、融入计算思维能力培养的“离散数学”启发式教学模式
“离散数学”是一门内容涉及面极为广泛的课程,这些内容不仅自成体系,而且每部分都包含大量抽象的概念、定理、公式以及各种推理规则,兼具理论和应用相结合的特点。因此传统的数学类课程或计算机类课程所采用的常规教学手段都无法适应现在的离散数学教学要求。
针对“离散数学”课程所具有的理论和应用相结合的特点,从强化学生的计算思维能力培养着手,采用了启发式教学模式,以充分调动学生的学习积极性。例如,一般教材中在讲述如何判定关系的传递性时,往往提到传递的特征复杂,不易从关系矩阵和关系图中直接判定,而且大部分学生都是根据传递性的定义采用穷举的方法来判定,既耗时又容易出错。这时可以启发学生从传递闭包的角度来判定关系的传递性,如果一个关系满足传递性,那么它的传递闭包就是它本身,而求传递闭包可以采用简单的Warshall算法,更进一步,可以据此启发学生将此知识点和图的连通性判定联系起来,当一个图表示为邻接矩阵时,如果将邻接矩阵看成是结点集合上的邻接关系图,则图的连通性可以通过求解邻接关系的传递闭包来判定。
再比如,学生在学习代数系统时,我们可以启发学生将代数系统和面向对象程序设计语言的类(Class)结构联系起来,告诉学生高级语言中的类结构就可以看成是一种代数系统,同时引导学生回忆在中小学阶段学习过的初等代数(涉及到加、减、乘、除运算)也是一种代数系统。因此学生容易得出结论:代数系统可以根据需要任意地构建。但这样一来就可能存在非常多的代数系统。为了尽可能抽象地研究代数系统具有的性质,我们进一步引入同构的概念,而同构又是一种等价关系,在等价关系的基础上可以定义等价类。由于代数系统的研究对象不是集合中的元素,而是定义在集合上的各种抽象运算,对于“元素本身是什么”这样的问题并不关心。因此,基于代数系统等价类的概念,教师可以进一步启发学生去探寻和理解布尔代数与等价类、命题逻辑之间的联系。在教师的引导下,学生会惊喜地发现看似独立的数理逻辑、集合、关系、函数与代数系统之间其实是有联系的,如果再辅以一些应用实例的建模与分析,就会很容易激发起学生学习离散数学的兴趣。 三、融入计算思维能力培养的“离散数学”课程实践环节
作为一门专业基础课,“离散数学”强调的是对概念、定理、公式的理解。在教学实践中,学生普遍认识不到这门课程的重要性,觉得这门课程与计算机科学联系不起来,看不到离散数学知识在计算机科学中的具体应用,从而缺乏相应的学习兴趣,进一步导致计算思维能力得不到良好的训练。因此利用计算机进行离散数学实验教学,让学生主动参与发现、探究和解决问题,从中获得解决实际问题的过程体验,产生成就感和自豪感,进而开发学生的创新潜能。这不仅仅是开展离散数学研究性学习的一种有效方式,而且也是促进学生计算思维能力培养的一种有效途径。“离散数学”课程的实验名称、学时分配及基本内容和要求如表2所示,在4学时的课内必做实验和4学时的课外选做实验中,每个学生要完成相应的实验题,通过独立思考、与同学讨论、老师辅导答疑,选择相应的方法,进行题目的分析、编程及测试工作,并按要求写出实验报告。
表2 “离散数学”课程实验内容、学时分配及基本要求
序号 实验项目名称 学时 实验内容和要求 每组人数 备注
1 构造合式公式的真值表 2 对给出的任意一个合式公式(不超过四个命题变元),编程实现自动画出其真值表 1 课内必做
2 判别图的连通性 2 给定n个结点的有向图邻接矩阵,判断该图是否为强连通、单向连通或弱连通 1 课内必做
3 RSA密码系统设计与实现 6 编程实现RSA的加密和解密过程,加深对公钥(非对称)密码算法的认识 5 课外选做
4 贝叶斯Spam过滤器设计与实现 6 编程实现一个适于客户端使用的贝叶斯垃圾邮件过滤器原型系统 5 课外选做
四、融入计算思维能力培养的离散数学课程考核方式
为了考查教师的教学效果和学生对知识的掌握程度,通常采用考试作为教学活动必不可少的重要环节,这在一定程度上可激发师生的教学积极性,提高教学与学习效果。因此,随着本课程实践训练环节的加强,我们对课程考核方式进行了相应的改革。目前采用综合考查的多元成绩评定考核方式。理论教学环节采取平时考查与期末考试相结合的方式。平时考查包括课堂考查、作业(课堂或课后思考题、课堂讨论)等方面,其成绩占课程总评成绩的25%。期末考试占课程总评成绩50%。实践教学环节考核内容包括实验和实践,其中,实验考评内容包括实验报告、实验操作、综合素质考核等,总评成绩为每次加权平均,占课程总评成绩20%;实践考评学生对基本算法的编程能力和自主创新能力,学生结合教学内容,通过自由选择综合实验或参与教师科研来完成,占课程总评成绩5%。这种考核方法更能全面地反映学生在知识掌握和知识应用方面的综合学习情况。
五、结论
离散数学不仅是计算机技术的支撑学科,更是提高学生计算思维、逻辑思维和创新思维能力以及形式化表述能力的有效途径,离散数学课程所传授的思想和方法,广泛地体现在计算机科学技术及相关专业的各个领域。
参考文献:
[1]Wing J M. Computational Thinking[J].Communication of the ACM,2006,49(3):33-35.
[2]周以真.计算思维[J].中国计算机学会通讯,2007,3(11):83-85.
[3]常亮,徐周波,古天龙,等.离散数学教学中的计算思维培养[J].计算机教育,2011,(14):90-94.
(责任编辑:刘辉)