离散数学的内容体系与实验教学设计

所属栏目:离散数学论文 论文作者:/
摘要

  1 离散数学教学现状分析

  离散数学课程是计算科学与技术专业的一门必修课程之一[1]. 该课程以研究离散量的结构和相互间的关系为主要目标。 课程内容包含计算机科学技术和工程实践中需要的数学基础和理论方法,在计算机很多课程中都有着广泛的应用,例如程序设计语言、算法分析与设计、人工智能及其应用、数据库原理、计算机组成原理和计算机网络等课程[2]. 通过该课程的学习,学生不仅能够掌握如何对给定问题建立抽象模型的方法,培养学生的抽象思维和逻辑推理能力,而且为学生在学习计算机的其他课程奠定必要的数学基础。 该课程具有内容多、定义多,符号多、理论性强和高度抽象等特点,学生在学习过程中普遍认为该课程是一门难学的课程。 主要原因有以下几个方面[3]:

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

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

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

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

  尽管离散数学中的内容独立性强,但从抽象角度分析,这些内容之间存在一定的联系。 这些内容的教学目的是一致的,即训练学生的抽象思维能力,利用离散结构构建问题的抽象模型,并在此基础上建立解决问题的算法。 为克服传统教学中遇到的问题,很多高等院校已经在离散数学教学中引入一些实验教学,但是这些实验课时较少,且大多侧重于基础理论的验证性。 同时各个教学内容之间缺少相互联系[4-5]. 本文将对离散数学的内容体系进行分析,以任务驱动教学法为基础,探讨离散数学中实验教学的实验设计方法。

  2 离散数学的内容体系

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

  3 实验教学设计

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

  任务驱动教学模式改变传统的教与学的结构,使学生成为学习的主体。 将理论课程上的知识点融入到一个总体任务或多个子任务中。 每节课上课时,教师首先要把这堂课的任务布置给学生。 学生通过对任务进行分析、讨论,明确任务所涉及到的知识点,然后让学生进行自主探索、相互学习,利用有利的学习资源,找到解决问题的方法,进而完成指定的任务。

  在设置实验教学过程中,一方面要加强学生对理论知识的掌握,设计一些基础知识的验证性实验课。 另一方面,为培养学生的创新能力,需要拓展理论课堂教学,作为理论课教学的补充和加强。 因此,需要从基础性实验和综合实验两个方面开展实践教学。 为加强学生对基本定义、基本性质及其计算方法的掌握,可以将这些知识点融入到基础性实验中,使学生加深对抽象概念的理解和认识。 在基础性实验教学过程中,可以采用学生个人独立完成的形式,教师给每个学生分配一个任务,学生在教师指导下,在规定的时间节点内提交任务,完成相关的实验。 基础实验部分主要是理论知识的验证性实验。 上机实验应侧重基本知识和基本理论的掌握,以及相应编程思想的掌握和运用,让学生在C、Java 或其他语言环境下完成这些实验,做到理论与应用相结合。 选取部分点设计的基础性实验如表1所示:

  综合性实验一般需要多人共同完成,因此可以采用小组合作的方式进行。 教师通过创设一定的情境将任务呈现给小组学生,小组学生根据自身的学习特点和对知识的掌握程度进行合理分工,小组学生通过团结合作,对任务进行分析、资料收集、实验的实施等过程,最终在规定时间节点提交任务。 综合性实验对学生的综合素质要求很高,且其实验结果需要一定的时间进行实验、分析和评价,因此综合性实验未必需要在课堂上完成,可以留在学生的课后拓展实验。 在实验过程中,学生始终处于学习的主体地位,通过学生的自主学习和积极探究,提高学生对学习的兴趣,增加自主学习的能力和知识的综合运用能力。 在设计综合实验时,需要注意以下几点:

  首先,综合实验是基础性理论知识的拓展。 例如:如果理论课教学的内容是一般性的抽象概念,那么在实验教学中应安排一些具体的对象,以加深对抽象概念的认识和理解[6].

  其次,为加强学生的创新意识与创新能力,综合性实验应围绕离散数学在计算机科学中的应用来设计实验,提高计算机专业学生的数学素质和能力。 将离散数学中的各分支相结合,适当地安排一些创新实验项目[7].

  最后,积极鼓励学生使用多种程序设计语言完成实验,这样有利于加强学生对各种程序设计语言的理解。 同时,将高度抽象的离散数学理论与编程等结合起来,能够极大地提高学生学习离散数学的积极性,增强解决实际问题的信心。 表2中给出一些综合性实验的内容。

  通过对离散数学的课程教学中融入实验教学,很大程度上能够提高学生对教学内容的理解,同时也提高学生利用所学到的程序设计语言、数据结构和算法分析等内容解决实际问题的能力。 目前,与实验教学相关的教材和指导书已经出版,如由傅彦编写,高等教育出版社出版的《离散数学实验与习题解析》,是国家级精品科学《离散数学》主讲教材《离散数学及其应用》的配套实验与习题指导丛书。 这些教材的出现表明在离散数学中开设实验课程已经得到一定的重视,并在教学中取得很好的教学效果。

  4 总结
  
  本文主要基于任务驱动教学方法,对传统的离散数学教学中存在的问题进行分析,梳理离散数学中的各个章节的内在联系,将实践教学环节融入到离散数学的教学过程中。 其目的是提高学生对离散数学课程的认识,对离散数学科学在计算机科学中的地位有更加深刻的了解,为以后的学习和科学研究打下一定的理论基础。

  

'); })();