胡亚红 沈逸凡
摘要:本文作者针对离散数学理论性强、抽象性强的特点和学生反映课程算法学习困难的问题,提出了离散数学可视化实践教学环境的研究,希望利用信息化手段减轻学生学习负担,提高学习兴趣和效率。该环境包括概念讲解、算法可视化演示、学生课后自主实践和算法函数资源下载等,旨在帮助学生深入学习理解课程内容,并将理论知识应用于解决实际问题。教学实践表明,该环境能够降低学生学习难度、提高学习兴趣和解决实际工程问题的能力。该教学环境的框架设计具有通用性,能够直接应用于其他课程教学环境的建设。
关键词:离散数学;可视化;实践教学;函數库
中图分类号:G642 文献标识码:A 论文编号:1674-2117(2020)01-0088-05
引言
计算机科学与技术、软件工程、物联网等计算机大类专业都将“学生具有将数学、自然科学、工程基础和专业知识用于解决相关领域的各类复杂工程问题的能力”作为培养目标和毕业要求。基于OBE(Outcomes-based Education)的教育理念,在平时的教学中就特别需要注意对学生此类能力的培养。离散数学作为计算机大类各个专业的必修专业基础课程,旨在培养学生抽象思维能力、逻辑思维能力和数学建模能力,培养学生利用课程知识去解决实际生活中的问题。同时,离散数学也是后续的专业课程(如数据结构、计算机网络、数据库原理等)重要的先修课程,因此,学好离散数学对学生来说其重要性不言而喻。
但是离散数学的教学内容丰富、理论性强而且较为抽象,教学又多以理论讲授为主,这就使得高校数学的教学不可避免地存在着一些问题。不少学生反映课程中算法多,理解起来十分困难,还有学生表示虽然学习了算法,但是不知道怎么使用,觉得学习离散数学没有什么用处。针对以上问题,本文提出构建离散数学的可视化实践教学环境,希望利用信息化手段减轻学生学习负担,提高学习兴趣和效率,同时提高他们应用理论解决工程问题的能力。
相关研究工作
可视化教学指在教学过程中利用图形、图像、动画、视频等视觉表征手段和视觉认知辅助媒体展示教学内容,让学生充分观察、体验、发现、干预,以培养学生的认知能力和创新能力。[1]目前已有不少将可视化技术引入教学中的成功应用,可视化在语文、英语、电磁场与微波技术、生物学等课程的教学中能够有效提高学生的学习质量和学习兴趣。[2-6]数学高度抽象和概括的特性,使得它难以被直接感知、理解和内化,需要利用数学对象的外部表征方式来进行其本质属性的呈现。[7]从已有的研究成果可以看出,可视化能够将计算过程中及计算结果的数据转换为图形或图像显示出来,降低学生的认知负担,有助于提高他们的学习热情。将可视化引入到离散数学的教学中,也将有效帮助学生理解离散数学中的各种算法和概念。
函数由一组完成一定任务的语句组成,一个函数实现一个核心功能。使用函数能够轻松地完成结构化的程序设计、代码复用,减轻程序开发人员的负担。进行程序设计时只需要提供函数需要的输入,就可以方便地得到希望的输出。目前尚未见到专为离散数学开发的函数库,因此,笔者提出对离散数学函数库的开发,希望能够大大减轻学生学习离散数学时的编程压力,帮助学生将学习重点放到课程本身。
离散数学可视化实践教学环境框架
1.系统框架
离散数学可视化实践教学环境系统框架如图1所示,教学环境包括离散数学基本概念讲解、核心算法可视化演示、学生课后自主实践和函数资源下载等主要功能。
离散数学的特点是内容丰富、概念多、定理多,对初学者来说查找到指定概念的内容是一件费时费力的事情。为了帮助学生方便地学习课程内容,离散数学中重要的内容以树形结构在本系统中予以呈现。算法演示功能是本系统的核心功能,提供了离散数学中重要算法的可视化实现。学生通过观看算法运行的动画和对应的解释文字,更容易理解算法的思想和执行方式。自主实践模块针对课程内容设计了贴近生活的应用问题,学生通过动手解决问题,可以充分培养自主学习能力,并大大提高学习兴趣。函数资源模块提供离散数学中重要算法的代码,学生下载后可以直接进行函数调用,降低了编程难度。
2.系统功能
本系统的用户分为三类,即管理员、教师和学生,不同的用户拥有系统不同的权限,如上页图2所示。
管理员负责系统内用户的账户管理,包括教师和学生账户的创建、账户信息的修改。教师用户特有的功能是进行实践教学环境内课程资源的管理,包括算法函数的上传、学习资料的上传和系统中已有资料的增加、删除和修改。学生用户在系统中可以进行离散数学知识的学习,可以通过观看算法的动画演示熟悉算法,通过课后的自主实践巩固所学,还可以下载自己需要的算法函数。
3.系统核心功能
离散数学实践教学环境使用WAMP(Windows, Apache,MySQL,PHP)进行开发,前端开发语言使用HTML和JavaScript,后端开发语言为PHP,三维动画开发工具选用了Three.js引擎。系统界面友好,使用方便,能够吸引学生使用。
(1)系统登录
本系统的登录界面设计简洁,如上页图3所示。系统取名Beatus,意在鼓励学生勇于挑战自己,不断进取。背景上变化莫测的图形,给人以神秘感,更能激发学生进入系统学习的好奇心。
进入系统后,呈现给用户的是上页图4所示的页面,系统的基本功能都展示在这个页面里。页面右边的内容展示区里旋转变换的球体能够吸引用户的眼球,提高学生的学习兴趣。
(2)概念速查
离散数学概念讲解模块的界面如图5所示。离散数学中涉及的主要内容以树形的结构显示,章节与课本结构一致,便于学生进行学习。学生要学习的知识点以图文并茂的形式显示在屏幕右边的内容展示区,重点的概念以醒目的红色标出,便于查找。
(3)算法动画演示
本系统的核心内容之一是离散数学中重要算法执行过程的可视化展示,图6给出了最小生成树的Prim算法实现过程。
Prim算法是完成最小生成树的经典算法之一,算法每次选定一个节点加入最终的生成树,同时需要选择符合一定要求的边加入生成树。算法动画演示过程中,辅助的文字说明跟随算法的执行状态对算法进行解释,不同颜色的节点和边表示出算法的执行情况。当前正在处理的节点用橙色标出,橙色的边表示已经加入最小生成树的边,蓝色的边是算法执行步骤中与当前节点相关联的、未加入最小生成树的边。
哈夫曼算法是图论中重要的算法,用于完成各种最优编码的设计。笔者在教学中发现不少学生没有掌握如何生成一棵哈夫曼树,因此本系统设计实现了哈夫曼算法的可视化,以加深学生对算法的理解。使用哈夫曼算法为权值为1,3,3,4,6,9,10的节点生成哈夫曼树的部分执行过程如图7所示。
真值表是命题逻辑中最基本也是最重要的概念,使用真值表能够解决命题逻辑中许多核心问题,因此生成真值表也是学生必须掌握的内容。下页图8给出了使用逆波兰串自动生成真值表的过程。这个过程的可视化展示,不但让学生了解如何生成真值表,还能使学生了解计算机如何使用堆栈处理表达式,为其后续课程的学习打下良好的基础。
(4)代码模板
本系统完成了离散数学中多个算法的编程实现,学生可以在代码模板中查看对应的代码进行学习,也可以进行函数下载,直接放入自己的程序中进行调用。
(5)课后练习
学以致用、培养学生使用课内知识解决工程实际问题是离散数学的教学目标之一,因此本系统提供了一定数量的应用型题目供学生进行课后的练习。
4.系统使用效果
本系统界面友好,使用方便,可视化的算法演示和经典算法的函数资源下载大大降低了学生学习离散数学的难度,有效提高了学生的学习热情。不少学生在使用后表示离散数学其实是很有趣的一门课程,也明白了今后将如何利用课程所学去解决实际问题。
总结
为了解决学生在离散数学学习过程中遇到的概念多、算法多、算法难以理解、不知道怎么使用学到的知识等问题,本文研究构建了一个离散数学的可视化实践教学环境。学生可以方便地进行知识点的查找学习,了解课程核心算法的执行过程,也可以利用本系统提供的资源自行解决实际工程问题。教学实践表明,本系统能够有效提高学生将离散数学的知识用于解决相关领域的各类复杂工程问题的能力。同时,由于本系统设计的特点,本系统的架构也可以直接用于其他课程的教学环境建设。
笔者后续将进一步扩充系统资源,完成更多算法的可视化演示和算法的函数实现,同时也将原创更多能启发学生思维的课后实践题目,充分发挥本系统的作用。
参考文献:
[1]张丽.试分析可视化教学的合理性及局限性[J].山东工业技术,2019(11):212.
[2]支秀玲,邵红霞,潘銮凤,等.可视化教学在分子生物学实验教学中的应用[J].中華医学教育杂志,2019,39(03):173-175.
[3]崔笑,张彬,周大臣,等.三维可视化重建技术辅助肝脏外科临床教学效果比较[J].教育进展,2019,9(03):325-328.
[4]钱得祥.知识可视化在小学语文教学中的应用探讨[J].学周刊,2019(19):102.
[5]周建华,李栋华.《电磁场与微波技术》可视化教学探讨[J].考试周刊,2019(39):160-161.
[6]明有发,杨丽霞.可视化在高中英语教学的运用[J].考试周刊,2019(12):99.
[7]张加红.多元联系表征视角下的高中数学可视化教学[J].中国数学教育:高中版,2018(11):15-18.
作者简介:,女,副教授,博士,主要从事大数据处理的研究。
基金项目:浙江工业大学课堂教学改革项目“留学生离散数学课堂教学改革实践”(项目编号:KG201715)。