郑艳梅,芦碧波
(河南理工大学 计算机科学与技术学院,河南 焦作 454000)
离散数学课程作为计算机相关专业的核心课程,在专业课程体系中起着重要的理论支撑作用,承担着奠定学生专业课知识基础的使命[1-3]。离散数学作为一门较为成熟的课程,市面上存在着大量的教材。纵观各教材,存在如下特点:①教材内容不一致,这应该源于不同作者对计算机行业发展所需数学知识理解的不同[4]。②内容的前后顺序多样化,这可能是因为作者认为离散数学各部分内容相对独立[5-6],或者基于对先导基础和后续进阶的不同理解。虽然不同的讲授顺序均能完成授课任务,但是若深究他们的内部联系,实质上可以通过成组比较分析相关内容,较为合理地安排离散数学内容的前后顺序。
在分析比较离散数学教材的内容顺序时,我们采用与文献[4]一致的教材样本,围绕14部教材[7-20](其中10部中文教材、4部英文教材),对数理逻辑、集合、关系、函数、图论、代数系统等6块离散数学的核心内容展开探讨。 文献[7]未包含集合内容,文献[8]未包含函数内容,文献[9—10]未包含代数结构内容。这4部教材由于未能全面覆盖上述6部分核心内容,在后续分析时予以舍弃,而仅对剩余的10部教材进行分析。
经分析整理可归纳出5种内容顺序(见表1)。为突显排序效果,我们将代数系统与布尔代数统一为代数结构。表1中的顺序仅表示内容设置的先后顺序,不代表章节序号,比如数理逻辑大都分为命题逻辑、谓词逻辑两章来讲[11-14],或者合为一章[15-16],也存在分为多章情形[17-20]。阴影标示部分为相邻类型间的排序差异,5种内容排序体现在如下4组内容的联系与先后顺序上:①图论与代数结构;②集合、关系与函数;③集合与数理逻辑;④数理逻辑与代数结构。
表1 离散数学内容的不同排序
所谓代数系统,即为由非空集合和该集合上的若干个运算而组成的系统[14]。这个集合可能是自然数、实数、多项式、矩阵、命题、图等,相应的运算可能为加、减、乘、除、与、或、非、交、补。以笔者实际教学经验,代数系统源于抽象代数,在离散数学的内容中,它将数理逻辑、集合、关系、图论等这些看似散乱、没有规律的内容,在更高的维度上进行统一和归纳概括。对于代数结构,其他5部分内容是以实例形式存在的。比如,在学习交换律时,笔者先引入通俗易懂的整数集合上的加法和乘法,然后介绍此定义,最后抛出问题:在离散数学课程中,你学过哪些运算是可交换的,并简述理由?如此授课效果甚佳,一方面介绍了新知识,同时也以代数结构的内容为线索对前序章节进行总结。更进一步来说,在判断一个偏序集是否为格或为布尔代数时,通常会用到哈斯图,所以图论在前、代数结构在后较为合理。
关系是集合中元素之间的某种相关性[14],因此关系定义在集合之上,没有集合也就没有关系可言。而函数是一类特殊的二元关系,可作为相对抽象的关系的具体化。可以说集合是关系的基础,函数是关系的具体化。
集合与函数在离散数学这门课程中,其重要地位经常被授课教师忽视,误将其当作已知知识,理所当然认为该部分无需再讲。实际上,在本课程中学生需要在更高的高度上来认识集合和函数。在高中阶段,学生仅仅是在使用集合、函数相关概念,仅将其作为进一步学习的工具,但是对于他们的由来从未细究过。
关于集合,授课教师一方面需要复习集合相关概念、集合间的运算、排斥相容定理等内容。更为重要的,是要让学生从谓词逻辑的角度来理解集合相关概念,点出常用的集合定义方法——谓词逻辑式,并需要用到真值的真假概念,同时也需要将集合的交、并、差、补等概念与数理逻辑中的析取、合取、否定等概念建立起联系[4]。
关于函数,一方面,需要学生认识到函数是关系的特例,是关系内容的结尾。另外,在后续章节包括关系、图论、代数系统部分均需用到函数的单射、满射以及双射性质。在此,笔者建议采用与关系相关的实例进行教学,授课1个学时,对关系部分相关内容进行结尾。
对于三者的顺序,以笔者经验,按照“集合—关系—函数”的顺序展开较为合理。先介绍作为关系必备知识的集合相关内容,然后引出核心内容——关系,最后介绍一类特殊的二元关系——函数。在关系之后介绍函数,一方面复习高中阶段学习过的有关函数的概念以及性质;另一方面将函数作为关系的特例,讲解若干以关系形式呈现的函数实例。这样既能加深学生对关系这个相对抽象的概念的理解,同时也让学生在更高层次上理解函数的由来。
关于数理逻辑与集合的两种先后顺序均有其合理之处。在介绍谓词逻辑中量词相关内容时,需频繁使用集合的交、并运算。另外,虽然学生在高中阶段已学过集合相关概念以及运算,但是在离散数学课程中,不但要求学生会使用集合这个工具,还需理解谓词逻辑可以作为集合的表示形式之一,集合是由谓词进行定义的,这是新增内容。以笔者实际教学经验,由于数理逻辑中所使用的集合相关内容均为高中已学知识,因而,数理逻辑在前、集合在后的顺序较为合理。或者,将集合论相关内容穿插在数理逻辑中进行介绍,在介绍完谓词逻辑概念后,先介绍集合论相关内容,接着介绍量词。这样在知识的先后顺序上可能更为合理,可作为类序II的改进类序II',即“数理逻辑谓词—集合—数理逻辑量词—关系—函数—图论—代数结构”。如此安排使得学生暂停用时相对较长的数理逻辑内容学习过程,转而学习集合内容,其所带来的新鲜感也能减轻学生的学习疲劳,但是有破坏数理逻辑整体性的嫌疑。
对于离散数学所包含的6块核心内容,学生已能够进行函数、集合的相关运算,也已知晓交换律、结合律、分配律,但对于其定义和来源知之甚少,同时,对数理逻辑、关系、图论、代数系统还是零基础。
基于这一现状,授课教师可以先介绍数理逻辑内容,在讲授命题逻辑时会用到交换律、结合律、分配律等各种性质,另外,在集合、关系和代数结构也会更新学生对于包括交换律、结合律、分配律在内的各种性质的认知。由此得出,数理逻辑在前、代数结构在后,甚至将代数结构放在课程的最后来讲,最为合理。
虽然所罗列的教材均以关系在前、图论在后的顺序介绍相关内容,但是在实际教学中,他们互为对方的基础知识。一方面图论是关系的表示和运算工具,借助有向图实现二元关系的表示、幂运算、三种闭包运算(自反闭包 、对称闭包、传递闭包),构造等价关系所对应的关系图以推导其等价类,构造哈斯图表示偏序关系等。另一方面,所谓图也即为边、顶点间的二元关系,不同的二元关系构成了不同的图。
若先介绍关系,则需要在介绍关系内容之中(关系的定义之后、关系的表示之前),补充图的基础知识,包括图的作用、图的生成、有向边、路径、连通性等相关概念。若先介绍图论,则需要在介绍有向图的定义之前,补充二元关系的定义,且在内容上仅围绕图论知识来讲,不能展开讨论其与关系相关内容之间的联系。在后续介绍关系内容时,再详细讲述。
以笔者实际教学经验,可以考虑关系在前、图论在后的顺序。在讲授关系相关内容时,将学生的注意力集中于关系相关内容,仅在必要处有针对性地插入图论相关内容。由于所需图论内容较为简单,学生理解起来并不费力,如此安排一方面保证了关系内容的连贯性和完整性,同时也为后续的图论内容完成了实例引入,使得学生学习图论相关内容时能达到事半功倍的效果。
基于前述的讨论,可以发现类序II较为合理,该顺序一方面能较好地保证前续和后继的关系,同时还能保证前后内容的连贯性,能起到事半功倍的效果。如果教师能够很好地把控授课节奏,也可以考虑如类序II',它是类序II的改进版本。笔者在实际教学中对上述两种类序均进行了尝试,就个人经验而言,依照类序II'进行授课效果更佳。