离散数学课程教学目标的细化与课程内容整合

2020-07-17 02:47周晓聪乔海燕李绿周
教育教学论坛 2020年24期
关键词:离散数学

周晓聪 乔海燕 李绿周

[摘 要] 针对离散数学课程主题多、内容抽象,从而使得课程教学内容选材目的不明确,课程内容之间以及与计算机专业其他课程联系不够紧密等问题,提出应该围绕培养学生离散建模能力这一核心目标,对计算机专业的离散数学课程教学目标做进一步的细化,并基于细化的教学目标对课程内容进行整合,强化课程内容各主题之间的联系以及与程序设计课程之间的联系。

[关键词] 离散数学;课程教学目标;课程内容整合

一、引言

离散数学是计算机类专业的核心基础理论课程,包括数理逻辑、集合论、图论、组合数学、数论、抽象代数多个主题,是计算机类专业许多核心课程,如数据结构、编译原理、数据库原理、人工智能等的先导课程[1]。

离散数学课程由于涉及多个主题,因此不同教材、不同学校和教师在课程内容选取方面存在很大差异。虽然传统上大家都认为数理逻辑、集合论、图论和代数系统是离散数学的核心模块,但是课程中是否还应该包含证明方法、算法、数论或者组合数学等则存在分歧,而且即使是数理逻辑、集合論、图论或代数系统这些核心模块,到底应该讲授哪些内容也没有明确的标准。这不仅使得教师在选择教材时有些困难,也使得学生觉得课程内容比较“散”,很难抓住课程的重点,加上课程内容本身也比较抽象,更降低了学生的课程学习兴趣[2,3]。

为解决这个问题,需要进一步思考离散数学课程的教学目标,并对教学目标进行细化,使得课程内容的选材能够紧紧围绕教学目标进行,并在此基础上对课程教学目标达成度进行量化评价,以适应新工科形式下课程教学质量的监控[4]。

离散数学课程的核心目标是培养学生的离散建模能力[5],应对该教学目标做进一步的细化,将离散数学的课程内容更紧密地结合在一起,并强化与计算机学科其他专业课程的联系。在细化课程教学目标的基础上,还要量化评价课程目标达成度。

二、课程目标细化

在新工科建设背景下从工程教育的角度探讨课程的教学目标,就是要从工科专业毕业学生所要制作产品的构思、设计、实现和运行所需要的知识和技能出发,思考课程讲授的知识和培养的能力在信息技术产品的生命周期中所能发挥的作用。信息技术产品,包括软件产品、硬件产品或软硬件结合产品的构思、设计、实现和运行的生命周期过程中最核心的内容是离散模型的构建与转换。信息技术产品必然涉及计算机的应用,因此信息技术产品的构思和设计必然是对所要解决工程问题的离散建模,实现和运行是将这样的离散模型转换为在计算机平台上实现和运行的软件或硬件。按照教育部高等学校计算机科学与技术专业教学指导委员会编著的《高等学校计算机科学与技术专业人才专业能力构成与培养》中对计算思维能力的能力点描述,其中最基本的能力也是离散模型的构建与运行[6]。

如果说离散建模能力是计算机类专业学生制造信息技术产品所需要的最基础的能力,那么离散数学课程则是培养学生离散建模能力的基础课程,因此应当将培养学生离散建模能力作为离散数学课程的核心教学目标[5]。

为了将离散数学课程教学内容进行整合,使得教师在选择教材和教学内容方面目标更为明确,需要围绕这一核心教学目标做进一步的细化。离散数学课程首先应为建立离散模型提供包括逻辑语言、集合语言、算法语言、图论语言和代数语言在内的离散数学语言描述离散模型,其次应初步树立学生的离散化、模块化、层次化、公理化和系统化的计算机专业意识,并培养学生运用关系思维、逻辑思维、计算思维、量化思维和递归思维等思维方式去建立离散数学模型的初步能力。

语言、思维和意识既有区别也有联系,但这是哲学家讨论的事情,这里只是想强调语言是一种表达与交流的工具,思维则是一种活动与过程,而意识则是一种观念与态度。对于一个离散数学模型而言,粗略地说,它不仅包括构成模型的元素和元素之间的构成结构,也包括模型为完成某种功能或解决某个问题而实施的操作或说行为。模型元素和模型结构是模型静态的一面,而模型行为是模型动态的一面。最后,一个模型之所以是完成某种功能或解决某个问题的模型,它的结构和行为必然要满足某种约束。因此,具体来说,围绕离散建模所需要的语言就是用于描述模型元素、结构、行为和约束的词汇或符号体系,所需要的思维方式则指引人们如何去得到模型的元素、结构、行为和约束,而所需要的意识则决定人们以怎样的价值观念去看待得到的模型元素、结构、行为和约束,也即以怎样的方式去描述模型元素、结构、行为和约束才是人们心目中“好”的模型。

因此,熟练掌握逻辑语言、集合语言、算法语言、图论语言和代数语言等离散建模语言是离散数学课程的核心知识性目标,而初步具备离散化、模块化、层次化、公理化和系统化的专业意识,能初步运用关系思维、逻辑思维、计算思维、量化思维和递归思维去构建离散模型是离散数学课程的能力性目标。这些语言、思维和意识的讲授、运用和培养紧扣离散数学课程的教学目标,也是将离散数学课程教学内容紧密结合在一起的纽带。

这些离散数学语言为描述离散模型的元素、结构、行为和约束提供了一些基本方法,以及基于基本方法描述更复杂的模型元素、结构、行为和约束的复合方法。

逻辑语言用于描述模型的约束,其核心词汇是“命题”和“真值”,它提供的逻辑运算和量词用于从原子命题构造复合命题,表达模型的约束。集合语言用于描述模型的元素与结构,核心词汇是“集合”“函数”与“关系”,提供了集合、函数和关系的运算以描述模型中复杂的元素和结构。算法语言用于描述模型的行为,核心的词汇是“指令”“输入”和“输出”,提供了顺序、分支和循环三种控制结构从基本操作(指令)构造复杂的操作以描述模型的复杂行为。图论语言可用于可视化地描述模型的结构,核心词汇是“顶点”“边”和“关联”,提供了对顶点与边之间的关联进行约束,以及在顶点和边上附加结构的方式用于描述模型的复杂结构。代数语言可用于描述模型的结构与约束,核心词汇是“运算”“代数”和“同态”,代数的构造可用于刻画模型的复杂结构,代数同态以及运算所满足的规律可用于刻画模型及模型之间满足的约束。

在这些离散数学语言中,逻辑语言、集合语言和算法语言是核心,可以说,任何离散模型的描述都離不开逻辑、集合和算法。图论语言和代数语言是拓展,图论语言丰富了模型结构的描述方式,并使得模型的结构可更具体地、形象地展示,代数语言则可提升模型结构描述的抽象层次,使得可以更深层次地思考模型元素之间的关系,以及模型与模型间的关系。

关系思维、逻辑思维、计算思维、量化思维和递归思维指导人们如何理解、组织和运用离散数学语言去构建模型。在对应用问题进行建模时,这些思维方式的运用可以帮助或指导人们能更好地找到建模的切入点,并使得自己的思考更为周密、严谨。

关系思维强调建模时要抓住事物之间的关键关系。实际上,模型的结构就是模型元素之间某种关系的总和。逻辑思维是关系思维的深化,强调对模型的性质与约束应该使用严谨的逻辑语言表达,并要认真考察它们之间的逻辑关系,特别是命题之间的推理关系。计算思维强调要关注模型的可实现性,模型元素及其结构应该是离散化表示并且能在计算机中存储,模型动态行为应该有明确的算法,在确定模型基本操作的基础上使用算法语言严谨地描述。量化思维强调要关注模型的规模以及模型动态行为的效率。对于离散模型,量化思维是一种重要的思维方式,因为这时模型的元素和行为是离散化的,计算模型元素个数及行为的步骤数不仅可行,而且对于使用计算机进行求解也十分重要。递归思维强调要关注模型在结构或行为方面的自相似性,思考如何将大规模的模型结构或行为归结为小规模的模型结构或行为,从而简化或者更自然地描述模型结构或行为。

关系思维和逻辑思维显然是人们在构建模型时最常用的思维,而计算思维、量化思维和递归思维则是计算机专业学生构建离散模型时重要的思维方式,它们注重模型的计算机实现及其效率等问题。

离散化、模块化、层次化、公理化和系统化是在构建离散数学模型时应该树立的计算机专业意识,引导人们去构建有利于计算机自动实现的“好”模型。正如《普通高等学校本科专业类教学质量国家标准》计算机类专业质量标准中所指出的,培养学生树立这些专业意识是计算机专业基本的毕业要求之一。

离散化意识引导人们在建模时将复杂的问题进行分解,从而清晰地罗列和枚举模型的元素、结构、行为和约束。模块化意识引导人们在建模时思考模型元素间关系的紧密程度,尽量将要考虑的范围局部化,从而更好地把握住复杂的问题。层次化意识引导人们在对复杂问题进行分解时应该逐步求精和细化,从而形成不同的抽象层次。公理化意识引导人们在繁杂的模型元素、结构、行为或约束中找到最基本的构件,并思考是否存在利用基本构件构造复合构件以描述复杂的模型元素、结构、行为和约束的规则。系统化意识引导人们将模型的元素、结构、行为或约束从某种角度进行系统化的思考,形成有机整体,从而不遗漏、不重复,使得模型能在某种程度上全面地刻画要解决的问题。

可以说,这些专业意识的核心在于引导人们如何对复杂的问题进行建模,离散化、模块化、层次化体现了利用计算机求解问题时自顶向下分解逐步求解的基本思想,公理化和系统化则进一步提升人们对复杂问题的全面把握和深刻理解。

三、课程内容整合

传统上离散数学包含多个主题,不同的离散数学教材选取的内容有较大的差异,多数离散数学教材给出的不同主题的知识内容之间联系也不够紧密,使得学生在学习时不仅难以抓住课程内容的重点,也无法将课程内容构建成完整的知识体系。

基于《普通高等学校本科专业类教学质量国家标准》的计算机类专业质量标准和工程教育专业认证对计算机类专业毕业生的毕业要求,特别是新工科背景下对离散数学这样的计算机专业基础课程的要求,应该以培养学生的离散建模能力作为离散数学课程的核心教学目标,并进一步细化为课程教学应使学生能熟练掌握逻辑语言、集合语言、算法语言、图论语言和代数语言等离散建模语言,初步具备离散化、模块化、层次化、公理化和系统化的专业意识,并能初步运用关系思维、逻辑思维、计算思维、量化思维和递归思维构建离散模型。

基于上述细化的课程教学目标,可以对课程内容进行更好的整合。具体来说,课程内容选材的目的可以更明确,标准可以更清晰,课程内容之间的联系可以更紧密,与其他课程,特别是程序设计课程之间的联系也可以更密切。

将课程教学目标细化为让学生熟练掌握逻辑语言、集合语言、算法语言、图论语言和代数语言等离散建模语言,这使得在课程内容选材方面目的更为明确,即离散数学课程的知识内容主要是作为描述离散模型的语言,并围绕模型元素、结构、行为和约束如何表达和分析进行展开。例如,逻辑语言的核心是用于表达模型约束的命题以及它的真值如何确定,因此离散数学课程的命题逻辑和谓词逻辑部分都要围绕这个核心来选材,像逻辑的形式化演算系统,特别是它的元性质的讨论就不应该属于离散数学课程讨论的内容;集合语言的核心是用于表达模型元素的集合、表达模型结构的关系和函数,以及如何确定集合的元素和不同集合元素之间的对应,因此就不需要探讨公理集合论;算法语言的核心是用于表达模型行为的基本操作及其控制结构,因此在课程中应明确给出描述算法控制结构的方法,并在给出具体算法时明确算法的基本操作;图论语言的核心是使用顶点、边及它们之间的关联关系表达模型的结构,因此在讨论树、平面图、欧拉图、哈密顿图等特殊图的时候应该从如何给顶点、边、关联关系附加更多的约束和结构从而丰富模型结构的表达角度来进行;代数语言的核心是代数运算及其性质以及代数之间的同态,因此群、环、域具体的代数系统至多作为代数系统的例子而不应该对它们本身的理论做过多的阐述。总之,离散数学课程应该从将逻辑、集合、算法、图论和代数这些主题的相关知识作为表达与交流语言的目的去选材,而无须过于深入地探讨这些主题本身的理论。

在确立课程内容选材的主要目的是展示逻辑、集合、算法、图论和代数如何作为数学语言去描述离散模型之后,对于课程具体内容的选材标准应该是内容是否有利于培养学生的关系思维、逻辑思维、量化思维、计算思维和递归思维等离散数学思维方式和树立学生的离散化、模块化、层次化、公理化和系统化等计算机专业意识。例如,逻辑公式之间的等值、推理(蕴含)关系、代数之间的同态,以及逻辑运算、集合运算、关系运算、函数运算、递归与递推等都体现了关系思维;基本的证明方法和归纳证明思想等对如何进一步运用逻辑思维非常有帮助;基本计数方法是培养学生量化思维的主要途径;构造验证逻辑推理有效性的形式证明序列对于培养学生的模块化、层次化、公理化和系统化的专业意识也非常有用。最后,离散数学许多内容都涉及算法,或者使用计算机程序帮助学生学习离散数学知识都有助于培养学生的计算思维,与此同时,教师在讨论这些内容时也要特别注意引导学生树立离散化、模块化、层次化、公理化和系统化等专业意识。

对课程教学目标的细化也有利于强化各主题之間的联系。将离散数学的核心主题作为离散数学建模语言进行讲授,并且从是否有利于培养学生的离散数学思维方式和计算机专业意识本身选材就使得这些主题的知识内容通过离散数学模型的描述、建模过程与分析等结合在一起。进一步,从培养学生离散思维方式的角度可以进一步地挖掘各主题之间的联系。例如,利用关系思维,可从代数同态的角度探讨逻辑运算与集合运算之间的联系,而对于集合、关系和函数的性质可让学生讨论如何使用严谨的逻辑语言表示;对于证明方法,包括归纳证明的讨论应该注重与逻辑,特别是验证推理有效性的形式证明序列的构造相联系。总之,在离散数学的各个主题,可都注重逻辑语言、集合语言、算法语言、图论语言和代数语言的应用,从而将各个主题的知识更加有机地联系在一起。

最后,对课程教学目标细化的探讨也有助于强化离散数学课程内容与其他计算机专业课程,特别是程序设计课程之间的联系。离散数学课程一般在本科一、二年级开设,对于这时的计算机专业学生而言,程序设计课程是他们最重要的专业课程,因此强化离散数学课程与程序设计课程之间的联系既可行又必要。一方面,离散数学课程中计算思维的培养显然有助于程序设计课程的学习,算法、证明的书写与程序的编写一样需要注重自顶向下分解逐步求解,以及离散化、模块化、层次化、公理化和系统化意识的运用,进一步,针对逻辑思维、计算思维、递归思维等的培养最好能以程序的理解、分析和设计作为例子,使得学生能运用离散数学知识更好地理解程序的设计与运行。另一方面,离散数学课程也需注重算法的实现以及可视化演示,帮助学生形象地、直观地学习离散数学知识,提高学生的课程学习兴趣。

四、结语

离散数学是计算机专业的核心基础课程,但是传统上离散数学包含多个主题,课程内容多而杂,而且它们之间的联系比较松散。对课程目标进行细化有助于明确课程内容选材的目的和标准。将新工科背景下离散数学课程的核心目标应定位为离散建模能力的培养,并进一步细化为让学生熟练掌握逻辑语言、集合语言、算法语言和代数语言,并培养学生运用关系思维、逻辑思维、量化思维、计算思维和递归思维的能力,树立学生离散化、模块化、层次化、公理化和系统化的计算机专业意识。

基于细化的教学目标,我们对离散数学课程内容的选材目的和标准,以及如何加强离散数学课程内容之间的联系和离散数学课程与程序设计课程之间的联系进行了探讨。下一步,将基于对离散数学课程教学目标和课程内容选材目的和标准的探讨,编写在新工科背景下以培养学生离散建模能力为目标的离散数学教材,并进一步探讨如何将课程教学目标进行量化,以定量地评价教材使用效果和课程教学目标的达成度。

参考文献

[1]Rosen K H.Discrete Mathematics and Its Applications[M].北京:机械工业出版社,2012.

[2]蒋运承,詹捷宇,马文俊.计算思维角度下的离散数学课程教学思考[J].计算机教育,2019(1):9-12.

[3]王会英.离散数学课程的多维任务驱动式教学[J].计算机教育,2019(3):48-51.

[4]朱大勇,李树全,侯晓荣.面向工程教育的离散数学教学改革探讨[J].计算机教育,2017(5):38-41.

[5]周晓聪,衣杨,乔海燕.新工科背景下离散数学课程目标定位与课程改革[J].计算机教育,2019(4):141-144,149.

[6]教育部高等学校计算机科学与技术教学指导委员会.高等学校计算机科学与技术专业人才专业能力构成与培养[M].北京:机械工业出版社,2010.

猜你喜欢
离散数学
一位合格的离散数学教师所应具备的能力
地方高校离散数学的统一教学
建构主义教学法在离散数学教学中的应用初探
《离散数学》课程教学改革与实践
离散数学实践教学探索
独立学院离散数学教学改革探讨
基于实践教学的《离散数学》课程改革