摘 要 文章在分析离散数学课程教学现状的基础上,进一步分析了在该课程教学中加强实践环节的必要性,并就如何在离散数学课程中开设实验进行了深入探讨。多年的教学实践证明,在离散数学课程中加强实践环节,有助于培养学生理论与实际相结合的能力。
关键词 计算机专业;离散数学;实验教学;算法
1 引言
加强学生实践能力的培养,是提高大学教育水平的重要方面。教育部教高[2001]4号和教高[2005]1号文件反复强调了实践教学的重要性,并对实践教学提出了明确的要求[1]。十一五期间,教育部相继发表了《高等学校计算机科学与技术专业发展战略报告暨专业规范》、《高等学校计算机科学与技术专业核心课程教学实施方案》、《高等学校计算机科学与技术专业实践教学体系与规范》,针对计算机科学与技术专业,在这些文件中进一步强调了加强学生实践和动手能力培养的重要性,并给出了具体的实施方案。大学生的实践能力培养实际上就是理论与实际相结合能力的培养,也就是说,学生不仅要学好理论知识,而且会应用。如何贯彻和落实教育部文件精神,进一步强化学生理论与实际相结合能力的培养,就成为每个教师必须认真思考和及早解决的迫切问题。
离散数学是现代数学的一个重要分支,是计算机科学与技术的理论基础,该课程被国家教指委指定为计算机科学与技术专业的核心课程,课程的重要性显而易见。但由于离散数学课程概念多、理论性强、高度抽象,致使在实际教学中出现学生学习兴趣不高、学习目的不明确、学习效果不理想等现象。因此,如何激发学生对这门课程的学习兴趣,从而调动学生的学习积极性,进而提高课程的教学质量,对学生后续课程的学习和进一步的科学研究都有重要意义。
文献[2-6]从不同的角度、不同的方面,对离散数学的实践环节进行了探讨。本文在作者多年离散数学教学经验的基础上,结合离散数学课程教学的实际,分析了离散数学课程的教学现状及其在教学中加强实践环节的必要性,并就如何在离散数学教学中加强实践环节进行了更深入地探讨。多年的教学实践证明,在离散数学课程中加强实践环节,有助于培养学生理论与实际相结合的能力。
2、离散数学教学现状
目前国内离散数学课程大致可以分为三个层次:(1)少数顶尖院校(如北大、清华、南京大学等)为强化基础理论,将该课程拆分为多门课程,如北大分为三门课程:集合论与图论、数理逻辑、代数系统与组合数学,他们的课时达200学时左右。(2)大多数部属重点院校的离散数学课程,兼顾信息科学技术所涉及的离散结构数学模型的讲授,内容较为宽广深入,讲授课时大约在80-120学时。(3)相当一部分院校要求降低,只讲授和信息技术应用有关的离散结构数学模型,讲授课时大约在45-90学时。经调查,在离散数学教学中,绝大多数院校只重视理论教学,很少开设或根本不开设上机实验,结果导致学生都不愿意学习该课程,拟制了学生学习该课程的积极性和主动性,进而影响了学生理论与实际相结合能力的培养。
我校计算机系下设三个专业:计算机科学与技术、信息管理与信息系统、网络工程,都将离散数学作为专业基础必修课。计算机科学与技术专业从2004年开始在离散数学教学中增加了上机实践环节,大约10课时左右。多年的教学实践证明,在离散数学教学中增加实践环节受到了学生的一致好评,取得了良好的教学效果。从2007年开始,我校开始了新一轮的人才培养模式改革,旨在强化学生实践能力的培养。我系计算机专业作为改革试点之一,在新的课程体系中进一步强化了实践环节的教学。对作为核心课程的离散数学,我们进一步完善了上机实践环节,将实践课时增加到16-24学时。2年的教学实践证明,学生的理论与实际相结合的能力较前有了更大程度的提高。
3、离散数学增加实践环节的必要性
随着计算机学科发展的深入,研究与开发的起点在不断提高。现今在计算机的研究和实践中遇到的许多重大问题已经表明,这些问题不仅是技术问题,而且是理论问题,至少是技术方面的理论问题。因此,无论学生今后从事理论研究,还是应用开发或者是技术管理工作,都必须打下坚实的理论基础,以适应学科迅速发展和知识更新的需要。一方面,离散数学课程给后续课,如数据结构、编译原理、操作系统、数据库原理和人工智能等,提供必要的数学基础;另一方面,通过学习离散数学,培养和提高学生的抽象思维和逻辑推理能力,为学生今后继续学习和工作,参加科学研究,打下坚实的数学基础。离散数学教学不仅传授给学生离散数学知识,更重要的是能够培养学生的数学思维能力,培养学生分析问题、解决问题的能力。因此,对于计算机专业的学生来说,学好离散数学是非常重要的。引用一位计算机专家说过的话来说就是:在计算机学科中,虽然数学不是万能的,但没有数学是万万不能的。
在信息技术环境下,传统的教育思想也应当发生转变,发展以学生为执行进行合作学习的思想,发展以问题共同解决为中心的思想,发展以培养能力为中心、强调终身学习的思想。“问题”是数学发展的动力,所以对解题方法的教学历来受到教师的重视,现代数学教育更强调“问题解决”,在解决问题过程中锻炼思维、提高应用能力。而传统的数学教育由于多方面的限制,片面强调了教学演绎推理的一面,忽视了数学作为经验科学的一面。现在,计算机强大的处理能力、动态情景可以为学生“做”数学题提供必要的工具和手段,使学生可以自主地在“问题空间”里进行搜索,来做“离散数学实验”。教师可以将更多的探索、分析、思考的任务交给学生完成。因此,在离散数学课程中加强实践环节教学,是十分必要的,理由可归纳如下:
(1)符合认知事物的规律
人们对事物的认知,总是从感性认识到理性认识,从实践升华到认识,再实践,再认知,是一个螺旋上升的过程。离散数学很多知识过于抽象,学生难以理解。通过上机实践可以帮助学生加深对相应理论知识的理解与消化,进一步加深理解离散数学在计算机解决问题中的重要作用,提高利用计算机解决实际问题的能力和软件开发的能力。
(2)增强了课程之间的衔接
以C语言程序设计、离散数学、数据结构为例。在第二学期学生学了C语言程序设计之后,第三学期没有与之相关的课程,若在离散数学中增加了上机实践环节,学生可以利用所学的C语言知识解决实际问题,即起到了加深理解离散数学基础知识的作用,又能通过编程解决实际问题提高学生的动手实践能力,可谓是一举双得。数据结构中操作对象间的四种关系集合、线性结构、树形结构和图状结构,分布在离散数学的相关章节中。通过设计离散数学相关实验在计算机上加以实现,不仅巩固了学生的离散数学理论知识,而且有助于学生对数据结构等课程的学习。在C语言程序设计、离散数学、数据结构三门课程中,离散数学起到了承上启下的作用。