计算思维在离散数学中的应用*

2015-10-29 11:47马艳芳
湖州师范学院学报 2015年2期
关键词:离散数学计算机专业思维能力

马艳芳,陈 亮

(1.淮北师范大学 计算机科学与技术学院,安徽 淮北235000;2.淮北师范大学 数学科学学院,安徽 淮北235000)

1 计算思维

2006年,卡内基梅隆大学计算机科学系主任周以真教授第一次提出了计算思维的概念[1].这种崭新的教育理念是近十年来最具有基础性、长期性的重要思想[2].周教授指出:“计算思维是运用计算机科学的基础概念去求解问题、设计系统和理解人类的行为[1].其本质是抽象(abstraction)和自动化(automation).即按照计算机求解问题的基本方法去考虑问题的求解,以构建出相应的算法和基本程序.近年来,我国教育学者对培养学生的计算思维越来越重视,特别是针对计算机专业的人才培养,提出了新的人才培养方案及课程设置体系,以适应计算思维的培养模式.2010年,教育部发布了《高等学校计算机科学与技术专业人才专业能力构成与培养》,其中给出了计算思维的定义.定义中针对计算机专业人才的培养,将专业课程涉及的很多内容都归结到计算思维能力范畴,如问题的符号表示、问题求解过程的推理、逻辑思维与抽象思维、形式化证明、类计算和模型计算等.同时很多教育学者强调在计算机专业的必修课和选修课程中都应加强“计算思维”的培养.王亚东教授在报告《计算与计算思维》中对计算思维与计算专业课程之间的联系进行了分析,并阐述了计算思维对计算机专业人才培养所产生的影响.针对计算思维培养问题,Hambrusch等介绍了普渡大学开设计算思维导论课程的经验[3].目前,很多高校的计算机专业为了加强低年级学生对计算机的认识,开设了计算机导论课程.在计算机导论课程中,主要分为以计算思维为基础和以学科思想与方法为基础的两种教学模式.董荣胜对这两种教学模式进行了分析比较[4].近几年来,一些高等院校已经将计算思维融入到一些课程的教学过程中.例如,在程序设计课程中应加强学生计算思维能力的培养[5].在编译原理课程、计算机组成原理、人工智能等计算机专业课程的教学过程中都注重培养学生的计算思维能力[6~7].离散数学是计算机专业的必修课程之一,其中的很多内容都蕴含着计算思维的思想,因此常亮等提出在离散数学教学过程中应将计算思维与离散数学有机结合进行教学[8].本文主要从实践教学角度,对离散数学教学中存在的问题进行分析,改变传统的教学方法,通过基础性和综合型实验,将实践教学融入教学进程中,培养学生的计算思维能力.

2 离散数学教学与计算思维

离散数学是数学科学的一个重要分支.该课程内容中,定义多、符号多、公式多、定理证明多、理论性强并且高度抽象.学生在学习过程中普遍认为该课程是一门难学的课程.主要原因有以下几方面:

(1)离散数学主要包括四部分内容:数理逻辑篇、集合论篇、代数结构篇、图论篇.这四部分内容彼此独立,自成体系.学生在学习过程中很难发现他们之间的联系,从而不明确学习该课程的目的.

(2)离散数学的一个重要特征是形式化和符号化.这种形式化模型中包含了大量的字母、符号、公式、图形等.而在教学过程中,课程的课时较少,课堂上往往要讲授很多定义、定理和证明,学生在短时间内无法理解这些抽象概念,只能死记硬背,认识不到这些抽象模型的实质含义.

(3)由于课程内容中的形式化模型较多、理论性强,学生在学习时往往将其作为一门数学课程学习,不清楚其与计算机科学之间的联系,对这门课程在计算机专业中的地位和作用认识不够.大部分内容没有实验环节,学生看不到这些形式模型的实际应用效果,因此不能体会该课程在计算机科学中的具体应用,缺乏相应的学习兴趣.

(4)在实际教学过程中,大多数教师按照传统的教学方法进行教学,首先介绍符号、定义、定理、证明等基础理论,然后利用例题加深学生对基础知识的理解,最后布置课后作业进行课外强化.然而这种教学方式对培养学生的计算思维能力存在很大弊端,其没有结合计算机专业注重应用能力培养,从而学生在学习过程中不能很好地将理论知识和计算机的实际应用联系起来.

计算思维为我们提供了一种崭新的教学方法.尽管离散数学中的内容独立性强,但从抽象角度分析,这些内容之间存在一定的联系.同时这些内容的教学目的都是训练学生的抽象思维能力,让学生利用离散结构建立实际问题的抽象模型,并在此基础上建立解决问题的算法.这正体现了计算思维中的抽象和自动化两个核心内容,因此在离散数学课程中应加强计算思维能力的培养.在教学过程中从计算思维的角度组织课程的教学内容.例如,在欧拉图和哈密尔顿图的讲解过程中,我们可以按照下述步骤进行教学:

(1)介绍图论的起源,引出著名的哥尼斯堡七桥问题.

(2)讲解欧拉为什么将桥的宽度、距离等因素去掉.

(3)构建出该问题的抽象模型——欧拉图.

(4)分析欧拉所建立的欧拉图的判定规则,给出解决该问题的充分必要条件.

(5)列举现实生活中的一些实例,让学生体会如何判定给定的图是欧拉图.

(6)引导学生利用所学习的程序设计语言编写程序实现:输入一个图,输出该图是否是欧拉图.

在这个分析问题的过程中体现了进行问题求解时采用的一般方法,同时也包含了计算思维的抽象和自动实现的核心思想.我们可以使用同样的方法来讲解哈密尔顿图及其判定条件.最后,对于这两类特殊图,引导学生从问题的起源、抽象模型及判定方法等方面进行比较和总结.

3 离散数学的内容体系

离散数学的教学内容中每一部分都各成体系,学生在学习过程中很难发现各个部分之间的联系,进而学生不清楚学习该课程的目的.虽然离散数学包含的内容多,但其各个知识点都蕴含了这个计算思维中的核心思想.我们可以将离散数学各个部分中的基本定义、性质和定理抽象出来,观察其各个部分之间的内在联系和区别.图1给出了离散数学整个教学内容的知识网络,体现出数理逻辑、集合论、代数系统和图论四个部分之间的内在联系.实际上,集合论、数理逻辑和图论从抽象角度都可以看成是一种具体的代数系统.基于这个思想,在每一章内容的课程引入和教学内容过程中,都要将该知识网络呈现给学生,使得学生时刻牢记其中的联系,有利于学生更好地体会各个内容之间的联系,从而能够对教学内容中的由字母、符号、公式、图形等组成的形式化概念有更深的体会,有利用培养学生对问题的抽象思维能力,进一步提高计算思维能力.

4 基于实践教学的计算思维培养

自动实现是计算思维中另一个关键内容,即将复杂问题转化为通过逐步“计算”求解,从而找到解决问题的算法,利用计算机实现.而在传统的离散数学教学中很少设置实践课程,学生对理论知识的理解只停留在抽象阶段,很难将理论知识与实际应用联系起来,使学生在学习过程中很难体会到该课程与计算机科学之间的联系,特别是与实践应用的联系.为了增加学生的实际应用能力,必须改变传统的教学模式.在理论讲授之后,适当地增加实践教学内容,有利于学生对理论知识的掌握和认识.在实践教学过程中可以基于任务驱动的教学模式,以问题为载体,培养学生发现问题、分析问题和解决问题的能力.根据理论课程的教学内容,将知识点融入到实践教学中设计不同的实验任务,然后将这些实验任务分配给学生,让学生自己进行资料的收集、问题的分析以及信息的处理,使得学生能够实际感受和体验到知识的产生过程.这一过程正是自动化思想的体现.在离散数学的教学过程中增加实验教学环节,将理论知识与计算机程序设计课程有机集合,进而建立一个较完善的离散数学实践课程体系,有利于培养学生的综合应用能力,将所学知识综合起来找到解决问题的方法.

任务驱动教学模式改变了传统的教与学的结构,使学生成为学习的主体.将理论课程上的知识点融入到一个总体任务或多个子任务中.每节课上课时,教师首先要把这堂课的任务布置给学生.学生通过对任务进行分析、讨论,明确任务所涉及的知识点,然后进行自主探索、相互学习,利用有利的学习资源,找到解决问题的方法,进而完成指定的任务.为了达到实践教学的目的,在离散数学教学过程中,可以分别从基础性实验和综合实验两个方面来开展实践教学.为了加强学生对基本定义、基本性质及计算方法的掌握,可以将这些知识点融入到基础性实验中,使学生加深对抽象概念的理解和认识.在基础性实验教学过程中,可以采用学生个人独立完成的形式,教师给每个学生分配一个任务,学生在教师的指导下,在规定的时间节点内提交任务,完成相关的实验.对于综合性实验需要多人合作才能完成,可以采用学生小组合作的方式来进行,教师通过创设一定的情境将任务呈现给小组学生,小组学生根据自身的学习特点和对知识的掌握程度进行合理分工,小组学生通过团结合作,对任务进行分析、资料收集、实验的实施等过程,最终在规定时间节点提交任务.在实践教学过程中,要始终保持学生处于学习的主体地位,通过学生的自主学习和积极探究,提高学生对学习的兴趣,增加自主学习的能力和知识的综合运用能力.

基于离散数学中的理论教学内容,我们选取了离散数学中的一些知识点,设计了基础性实验,详细内容见表2.对于教学中一些较难的知识点,与其他计算机专业的必修课程相结合,设计为综合性实验.例如旅行商问题、最小前缀码问题等.综合性实验对学生的综合素质要求较高,实验结果需要经过一段时间的实验和研究才能得到.但在实验的过程中,学生通过任务的分析、资料的收集,以及亲手进行实验等实践操作,对任务有了进一步的认识,同时通过对实验结果的分析、评价,找到产出结果的原因,为得到正确结果提供一定的研究基础,为以后的学习和研究打下了良好的基础.

表1 离散数学基础性实验Table 1 Basic experiments of discrete mathematics

5 总 结

计算思维能力的培养已成为指导计算机专业及其相关学科教学改革和人才培养的重要任务.将离散数学教学与计算思维培养结合起来,有利于从计算思维的角度重新组织离散数学的课堂教学,能取得更好的教学效果.另一方面,通过实践教学,能够加强学生应用计算思维来解决问题的能力.

本文虽然对离散数学中计算思维能力的培养提出了一些解决方案,但还有很多细节需要进一步研究,如综合实验的设计、实验结果的评价等.总的来说,在专业课程的教学中加强对计算思维能力的培养,能够加强学生的综合能力的培养,为计算机专业的人才培养提供很好的途径.

[1]Wing J M.Computational thinking[J].Communications of the ACM,2006,49(3):33-35.

[2]孙家广.计算机科学的变革[J].中国计算机学会通讯,2009,5(2):6-9.

[3]Hambrusch S,Hoffmann C,Korb J T,et al.Amultidisciplinary approach towards computational thinking for science majors[C].In:Proceedings of the 40th SIGCSE Technical Symposium on Computer Science Education.New York:ACM Press,2009:183-187.

[4]董荣胜.计算思维与计算机导论[J].计算机科学,2009,36(4):50-52.

[5]陈杰华.程序设计课程中强化计算思维训练的实践探索[J].计算机教育,2009(20):84-85.

[6]王挺,李梦君,周会平.对编译原理课程教学中计算思维培养的探讨[J].计算机教育,2009(21):11-13.

[7]王甲海,印鉴.人工智能教学与计算思维培养[J].计算机教育,2010(19):68-70.

[8]常亮,徐周波,古天龙,等.离散数学教学中的计算思维培养[J].计算机教育,2011,7(14):90-93.

猜你喜欢
离散数学计算机专业思维能力
培养思维能力
“以赛促学,以赛促教”促进计算机专业教学理念创新与实践研究
培养思维能力
离散数学实践教学探索
计算机专业理实一体化实践教学模式研究
CDIO模式下计算机专业实践教学改革策略研究
职业高中计算机专业教学改革浅析
独立学院离散数学教学改革探讨
离散数学中等价关系的性质
离散数学对编程的重要性