基于软件工程专业培养目标的离散数学课程教学改革

2017-06-01 21:46祁伟孟庆旭赵辉
吉林省教育学院学报 2017年4期
关键词:离散数学改革与实践任务驱动

祁伟 孟庆旭 赵辉

摘要:针对目前离散数学课程作为软件工程专业基础课程,其教学内容和教学方式没有体现其在后续专业课程中的作用,提出基于软件工程专业培养目标,合理构建教学内容和教学实践方式,重点阐述如何在教学内容中设计与后续课程紧密相关的教学案例,并采取任务驱动的教学模式。通过在偏序集讲述内容中引出数据结构的拓扑排序一例,具体展示教学改革的设计和实施细节,最后总结在软件工程专业培养目标下的离散数学课程改革与实践在教学效果上的体现。

关键词:离散数学;软件工程专业;任务驱动;改革与实践

doi:10.16083/j.cnki.1671-1580.2017.04.052

中图分类号:G642

文献标识码:A

文章编号:1671-1580(2017)04-0180-04

离散数学课程是研究离散量的结构及其相互之间关系的学科。自上世纪70年代以来,它一直是计算机学科核心课程之一,更是软件工程专业的专业基础课。然而离散数学的教学现状却没有体现它作为软件工程专业基础课程的地位,一是学时不够多,二是教学内容比较陈旧,过于注重数学理论的推导,而忽视了它作为计算机后续课程的支撑作用。离散数学是不断发展的学科,它既包括一些古老的数学内容,又有一些近代建立起来的新的分支。主要有:集合论,逻辑推理,组合数学,代数系统及图论几个彼此独立的分支构成。它具有概念多,内容杂,理论性强,抽象,难于理解的特点;另外国内很多教材的内容很少提及与其他计算机各专业课程的关系,因此对于应用型工科学生,虽然认识到离散数学有助于提高他们抽象思维能力和逻辑推理的能力,但是他们更注重一种技能的获得,因此就会觉得离散数学枯燥无趣,愈发感觉学习起来很困难。

基于以上原因,国内各高校从事离散数学教学的许多教师,纷纷从各个方面进行了教学的改革与实践,例如有采用启发式教学的,有增加实验环节的,这些在教学中也起到了一定的效果。但是,要想真的从根本上解决这些问题,应该从教学内容上着手,从软件工程专业的角度进行改革。国外教材内容的改革要早于国内教材的变更,前者更侧重应用性、思维性训练,更突出离散数学作为数据结构、数据库及人工智能等后续课程的理论支撑的作用,并且会随着计算机出现的新兴领域,实时地加入到教材及课堂中。例如,由Dossey,J.A.等编著,章炯民等翻译的《Discrete Mathematics》中,就有大量的案例,而且每一个专题的最开始都是有一个非常典型的而且和实际生活相关联的例子,这些例子把离散数学的相关概念和理论与其他计算机专业课程紧密联系在一起,不仅能够引起学生兴趣,而且在兴趣的驱动下,掌握了离散数学的理论,同时也奠定了学习其他各专业课程的基础。而反观国内的教材,仍然停留在国外的七八十年代的阶段上,仍然只是大量的定律证明与推演,而和软件工程专业课程的相关性却很少提及,偶有例子也是一笔带过,这虽然对训练学生的数学能力是有一定作用,但学生不知道学这门课程到底有什么用,从而失去兴趣,那么这种目的也是达不到的。对于应用型工科生,学习离散数学的主要目的是作为工具应用于计算机领域中,因此可以借鉴国外教材的这种实用性,将离散数学的各个部分的讲解与后续各专业课程紧密衔接。但是国外教材的习题开放性过大,不是很适合国内学生的思维习惯,另外国内的课时要求也不允许完全照搬国外的教材,因此我们尝试在离散数学教学中开展教学内容改革,在软件工程专业培养目标指导下选择教学内容,精选案例,从而构建出适合国内学生的教学内容。

一、课程改革的设计

(一)明确教学目标

离散数学是计算机学科的专业基础课,计算机各专业都有离散数学课程,但各专业讲述的内容基本雷同,没有针对各专业的后续课程有偏重点地划分。本文从软件工程专业培养目标及后续课程出发,提出对离散数学课程的教学进行改革与实践,使离散数学能更好地为其它各专业课程服务。软件工程专业课程主要有:程序设计语言,离散数学,数据结构,计算机硬件基础,操作系统,计算机网络,编译程序构造,数据库设计与应用,软件工程导论,面向对象分析与UMI,软件系统设计与体系结构,软件质量保证与软件测试,软件项目管理等课程。重点强调在软件工程专业培养目标下去构建教学内容,设计合理的教学案例,案例的选择偏重于对后续课程的支撑作用。

(二)基于软件工程专业培养目标构建教学内容

挖掘离散数学及其他软件工程专业课程之间的切入点,精选教学内容,选取离散数学和后续专业课程紧密相关的内容。软件工程相关的核心知识单元包含:集合,关系,函数,树,图,数理逻辑,基本证明技术,基本计数,将这些核心知识作为重点讲述内容。

根据软件工程专业的人才培养目标和学生知识特点,不断调整课程结构和优选教学内容。结合软件工程领域的实际应用背景,选取离散数学和后续专业课程紧密相关的内容,例如集合与关系部分是算法与数据结构及数据库课程的基础,而数理逻辑与图论部分又与软件工程密切相关,代数系统又是人工智能及计算机组成课程的先修内容,这些部分需要作为重点内容,而一些纯粹的数学定理推导则作为辅助内容,就是简要介绍离散数学课程的基础理论,偏重离散数学知识在计算机课程中的直接作用。总之,选取基本教學内容的是以“实用为主,够用为度”的原则。

(三)基于软件工程专业培养目标设计教学案例

在软件工程专业要求下,设计典型案例,案例要能体现出后续课程对离散数学课程的“成果依赖”的作用。结合“离散数学”课程教学,以软件工程专业要求,结合任务驱动教学模式就提高教学效果和培养计算机专业学生的创新能力和综合素质方面进行实践研究。学生要进行课前预习,教师给出教学内容在实际生活中和计算机科学领域的应用,激发学生的主动性和兴趣;教师结合问题的应用领域设计相关问题并创设问题情境,呈现问题,学生在任务驱动下进行相关的学习活动,明确任务,查阅相关的资料;教师引导学生对教材内容以小组讨论的形式实现协作学习,深入探究问题的解决方案,从而进一步分析问题;教师利用启发式寻求解答的思想,指导学生基于教学内容利用启发式规则和推理来寻求更好的解答;学生在教师的引导下,以任务为驱动,逐步掌握各个章节的内容,并在此基础上将新知识进行巩固扩展。

(四)基于软件工程专业培养目标的任务驱动教学模式

任务驱动教学模式强调以学生为中心,强调学生的学习过程必须与学习任务相结合,通过完成任务来激发学生的兴趣和动机。根据任务驱动式教学过程的3个要素(教师、学生、任务)和任务驱动的理论基础提出任务驱动式教学模式。

该模式在任务驱动的主线下把教师的教学活动和学生的学习活动以任务为主线贯穿起来,通过任务来驱动教学活动,并在整个教学活动中体现了软件工程的方法。通过教学内容的选择、教学过程设计和教学评价体系的构建实现在软件工程目标下离散数学课程的教学改革。

二、一个与数据结构课程相关的案例

(一)确定教学内容

偏序关系是一种非常重要的关系,首先教师要介绍偏序关系及全序的定义,介绍哈斯图的画法及意义,偏序集中的最大元、最小元、极大元、极小元等相关概念。

(二)设计教学案例

由偏序集可以引出数据结构课程中的拓扑排序。所以在偏序关系中设计一个教学案例:构建房屋所需各项任务为节点,任务之间的先后顺序形成一个偏序关系:场地准备A(4,无),表示节点A是场地准备需要4天,无前继任务;地基B(6,A),表示节点B是打地基需要6天,前继任务是场地准备A;以此类推,排水设施c(3,A);骨架D(10,B);屋顶E(5,D);窗F(2,E);管道G(4,(c,E))表示管道需要4天,它的前繼任务是c和E;电气设施H(3,E);绝缘I(2,(G,H));幕墙J(6,F);墙纸K(5,(I,J));清洁和油漆L(3,K);地板和装修M(4,L);检验N(10,I),所有任务都由一组每次只能进行一项任务的人来完成。运用所学到的偏序集的相关知识,合理安排各项任务,使任务之间要遵照题目所给的顺序完成。

(三)任务驱动教学模式

首先提出问题——在讲完偏序关系的概念及相关定理后,在下课前给学生布置任务(即上面的案例),学生带着这个任务去复习所学到的偏序集的相关知识,并思考该问题的解决方案;在下节课上课时,教师会和学生共同探讨问题的求解过程:首先确定一个任务集合:s={A,B,c,D,E,F,G,H,I,J,K,L,M,N},其中A..N是前面定义的各项任务。定义在该集合上的一个关系R:XRY X=Y或者Y必须在x完成后才能开始;然后引导学生确定这是一个什么关系,通过上节课介绍的偏序关系具有的性质:自反性、反对称性和传递性,因为XRX为真,所以该关系具有自反性;XRY为真,并J~YRX也为真,则能推出X=Y,所以该关系具有反对称性;若XRY为真,YRZ也为真,说明Y在x后完成,而z在Y后完成,则z在x后完成,或者它们相等,所以能推出XRZ为真,所以该关系具有传递性。由此可以引导学生得出该关系是偏序关系。既然是偏序关系,一定存在哈斯图,可以让学生根据上节课介绍的哈斯图的相关知识,绘制该偏序关系的哈斯图。首先要确定COV(s)=[(A,B),(A,c),(B,D),(D,E),(C,G),(E,G),(E,H),(H,I),(E,F),(F,J),(J,K),(I,K),(I,N),(K,L),(L,M)]。然后根据COV(s)绘制哈斯图如图1所示:

由上节课介绍可知,不是所有的偏序集都是全序,但是通过极小值的概念可以得出部分序,然后提出问题,如何由部分序能够得出该任务的全序?让学生进行讨论,教师可以引导学生在原序基础上通过增加一些条件,比如按任务时间的长短,或者按任务的字母顺序等,得到该偏序集的全序,进而确定任务完成的先后顺序——由此可以引出数据结构课程中的拓扑排序。假设两个任务点之间无法比较“大小”,例如完成任务A后,任务B和任务c之间无法确定哪个先做,可以按照时间短的先做,就可以确定先完成c再完成B了。可以通过找极小值的方式依次输出各个任务点,并且输出该极小值点后,把该点从图中删除,与其相关的线段也删除:首先该图中极小值是A,输出A后,把A删除,相应的AB,AC线段也删除,剩余的图中出现两个极小值,即B和c,再比较两者哪个时间短,c是3天,B是6天,则先输出c,然后把c及CG线段删除,然后再寻找极小值,以此类推,如果两个极小值的天数也一样,则按照字母顺序输出,这样就可以得到该偏序集的全序关系了,也就是所有的任务点之间都有“大小”一即先后顺序了:A,c,B,D,E,F,H,G,I,J,K,L,M,N。问题解决后,可以总结这就是数据结构中的拓扑排序。

使学生在任务驱动下,通过这样的案例,体会到离散数学课程与软件工程其它各门课程之间的关系,从而提高学习离散数学的兴趣与积极性,并为之后的专业课程的学习奠定良好基础,从而真正能够发挥离散数学作为软件工程专业基础课程的作用。

三、教学效果

基于软件工程培养目标的,任务驱动模式的离散数学课程的教学改革与实践在2012级学生中首次实施。在具体实施过程中,我们总结出有以下优势:

(一)本着离散数学是软件工程专业基础课程,与其他专业课程的密切关系,合理设计和组织离散数学课程教学内容,挖掘离散数学与软件工程各专业课程之间的切入点,研究有效融合离散数学教学内容与后续课程资源的恰当方式,使离散数学各个部分之间能够自然过渡,使知识之间能够自然承接。由与其他专业课程相关的案例中提出的问题,引出离散数学的相关理论,并用离散数学的知识去诠释该问题,在分析解决问题过程中强化离散数学在其中的支撑作用,将理论知识融入到具体的应用问题中,具体反映在后续课程中取得了很好的反馈效果。

(二)在教学准备中设计一个或几个典型案例,选取与软件工程专业课程密切相关的案例,案例可以分为基本案例和综合案例两种,基本案例与单个知识点对应;综合性案例则涵盖课程中若干个知识点,涵盖多个概念。这些案例要贯穿整个离散数学的教学内容中,要体现软件的形成过程中离散数学在其中的支撑作用。案例不要过多,一个案例要在各部分内容中重复出现,强化学生印象,同时可以使离散数学分散的教学内容有机地成为一个整体,使显示分离的教学内容按照隐示关联融合在一起。通过这种学生参与的案例的求解过程,极大地提高了学生的实践能力,在之后的软件建模和AcM大赛中,都取得了理想的成绩。

(三)采取任务驱动模式,学生积极性明显提高,参与感增强,兴趣提高,课堂效果明显比之前活跃,在期末考试中,虽然难度增强,却取得了比以往更好的成绩。

四、结语

基于软件工程培养目标的任务驱动模式下的离散数学的教学改革与实践,不仅增强了学生对于后续软件工程专业课程的学习及软件工程能力的培养,提高了学生独立分析问题及解决问题的能力,及对实际问题的建模能力,培养和提高了学生的抽象思维与逻辑推理能力,而且提高了学生对于离散数学课程的学习兴趣,提高了数学素养。但是在实践过程中,因为课时限制,对于案例的设计要求比较高,案例要求少而精,既要能充分体现离散数学对其他软件工程专业课程的支撑作用,又要是客观实际问题,能够引起学生兴趣,使任务驱动模式能够很好地执行下去。由此,对教师也提出更高的要求,要求教师开阔视野、丰富知识储备,提升认知水平和信息化教学能力,要对软件工程各专业课程内容都有不同程度的涉猎,这需要广大教学改革工作者共同努力。

猜你喜欢
离散数学改革与实践任务驱动
面向区域产业的软件工程专业教学模式改革与实践
Dijkstra算法设计与实现
基于一体化教学《电子产品生产与管理》课程的改革
建构主义教学法在离散数学教学中的应用初探
慕课风暴下“离散数学”课程的教学思考与对策
通识教育背景下行政文秘专业建设的改革与实践
离散数学课程教学方法改革
任务驱动式教学模式在电子技术课程中的应用
任务驱动教学法在《网络应用服务管理》教学中的应用
任务驱动, 启发学生自学