李鑫丽
摘要:文中介绍了虚拟现实技术在信息技术导论课程中计算思维训练中的应用。将虚拟现实技术运用到计算机基础教育中,不仅能让学生从逼真的虚拟空间获得体验和感受,也能帮助教师使用虚拟现实的思维方式开展教育教学改革、教育教学改革工作。
关键词:虚拟现实;计算机典型问题;计算机思维
中图分类号: TP311 文献标识码:A
文章编号:1009-3044(2021)04-0230-02
在计算机技术发展迅猛的今天,无论是中小学还是大学都开设了计算机相关的课程。中小学的計算机课程偏向于认识、概念性的介绍;高校偏向于计算机思维和高级技术。信息技术导论这门课是本科教学中不可或缺的一门课,本门课一般安排在大一第一个学期,各个学校有不同的课程名称,有的学校称之为“计算机导论”、有的叫“信息导论”,在公共课中叫“大学计算机”“计算机基础”“计算机应用基础”等。鉴于本门课的开设范围广,技术更迭较快,讲应用的同时需要把计算思维贯穿其中。
1 概述
计算思维是2006年3月美国卡内基·梅隆大学周以真教授提出的。计算思维是如何使用计算机解决实际问题。首先需要将实际问题进行抽象,得到相关的抽象数据和抽象过程。其次抽象过程需要按照算法的规则给出,符合算法特征,给出确切的描述。最终用计算机实现算法、解决实际问题。计算思维是把我们遇到的问题抽象出来,用计算机来实现的过程。这种思维是抽象的不好理解的,计算机中有很多典型问题可以有助于计算思维的练习,比如:七桥问题、找零问题、汉诺塔问题、旅行商问题、背包问题等。这些问题时计算机领域的典型问题,需要用到概念抽象、解决问题的过程抽象。而抽象的东西很难被刚入校的大学生所理解。如何能更好地帮助他们理解这些典型问题呢?我们可以采用很多方式,比如用ppt中动画的形式进行演示、课堂中轻同学到讲台上扮演不同角色、Flash动画等。但是这些形式没有把互动性、沉浸感、重复性综合起来。我们力图用更加先进的技术引导学生更好地锻炼他们的计算思维。而虚拟现实正好符合我们的需求。
虚拟现实技术是21世纪发展最快的计算机技术之一,通过虚拟技术制作出的作品可以很好地锻炼学生的计算思维。我们做了一些尝试,用虚拟现实技术演示不好理解的计算机典型问题:如背包问题、找零问题、旅行商问题、汉诺塔问题、哲学家就餐问题、七桥问题等。每一个典型问题都会应用到很多领域,采用抽象的方式很难达到让同学们完全理解的程度,而采用虚拟现实技术去演示、推进、让同学们有沉浸感的体验问题的解决方案,会达到事半功倍的效果。
2 利用虚拟现实技术实现的计算机典型问题
2.1 汉诺塔问题
问题描述:汉诺塔是一种游戏,游戏的规则说明如下。在铜板上有三根木杆,标号分别为A、B、C。在A木杆上从小到大的顺序放置一些盘子,要求经过B木杆移动到C木杆,移动的时候保持每根木杆上的盘子都是从小到大的顺序,大盘子在下、小盘子在上,每次只能移动一个盘子,移动盘子的时候可以放在A、B、C任意一根木杆上。盘子的个数就是汉诺塔游戏的阶数。如有4个盘子就是4阶汉诺塔。
问题演示:汉诺塔问题涉及了计算机中的递归算法,递归算法是生活中常见并且是计算机算法中的核心算法,将所描述问题可视化,能使类似问题在实际教学中的应用有更好的前景。对比传统的教学来说,不仅是对教学的创新,也是一种对未来可能的探索,是一种不断在实验实践中探索的过程。可以加强学生对递归算法的认识,通过三维动画演示和结果显示可以锻炼学生的计算思维。场景运行及算法演示过程如图所示。
2.2 哲学家就餐问题
问题描述:
假设有五位哲学家坐在一张圆桌上,每个人都可以做两件事:要么吃饭、要么思考。这两件事情是互斥的,即吃饭的时候不思考,思考的时候不吃饭。而给出的条件是:圆桌的中央摆放一盘意大利面条、相邻的哲学家之间摆放有一个叉子、哲学家如果想吃面必须用两个叉子、哲学家只能直接从他的左边或右边取叉子、两个哲学家不能同时使用一个叉子、哲学家们不能沟通交流。
哲学家按照以上规则就餐时,可能会发生叉子资源耗尽的时候。当每个哲学家都在同一个时刻拿起自己左边的叉子时,每个哲学家都不可能拿右边的叉子,这时他们的状态就是“死锁”。这时我们需要考虑如何协调才能使得每位哲学家都可以就餐吃到面。哲学家在计算机领域中的应用场景是:当应用程序中并发线程执行时,如何协调共享资源的使用。
在计算机应用场景中,缺少叉子就是进程和进程之间缺少共享的资源。
一种比较常用的技术就是采用共享资源加锁。即当一个程序访问共享资源时,将共享资源进行加锁;如果另外一个程序想要访问相同的共享资源,就必须等待资源的解锁。而多个程序需要访问多个共享资源才能完成任务时,也可能出现死锁。如一个程序需要访问三个共享资源时,它会向系统申请资源,如果申请到其中的两个,而第三个共享资源已经被第二个程序申请到。如果第二个程序只需要用一个资源,那第一个程序需要等到第二个程序解锁其申请到的资源即可。但是如果第二个程序执行时需要访问第一个程序中用到的三个共享资源,这时因为第一个程序已经为前两个资源加锁,需要等待第三个资源的解锁;第二个程序则是为第三个共享资源加锁,一直等待前两个资源的解锁。那就出现了死锁。
针对该问题,科研人员做出了有很多解法:服务生解法、资源分级解法、Chandy/Misra解法等。
服务生解法的核心是:引入餐厅服务生,只有服务生允许其中的哪位哲学家拿叉子,被引导的哲学家才能拿起叉子进食。由于服务生知道叉子的空闲状态,所以他能够做出正确的判断与引导。
引入餐厅服务生后,他可以把座位排序,如1、2、3、4、5。排好座次后,可以让坐在1、3号的哲学家先进食,这时服务生是最清楚叉子的使用状态的。此刻1号和2号之间、 2号和3号之间、 3号和4号之间、5号和1号之间的叉子处于使用状态,4号和5号之间的叉子处于空闲状态,如果4号或5号也想进餐,服务生会提示他们只能申请到一个叉子,没有进餐的条件,从而避免了死锁。
我们使用虚拟现实技术来演示哲学家就餐问题来演示哲学家问题,让学生能够进行抽象思维训练。
2.3 七桥问题
在18世纪初普鲁士的哥尼斯堡有一条贯穿全城的河流,在河上有两个小岛,有七座桥把两个岛与河岸联系起来。哥尼斯堡的居民经常沿桥过河散步,每次散步后都最少会重复走一座桥。于是有人提出:我们能否一次走遍所有的桥,而每座桥只经过一次,最后能回到出发点,这就是最初的七桥问题。
这个问题似乎很简单,但是人们经过无数次的尝试仍然没有找到答案。于是请教了大数学家欧拉。欧拉在自己的论文中证明了七桥问题是没有解的。同时给出了解决问题的思路和存在答案的充分必要条件。最终,数学家欧拉向圣彼得堡学院提交了七桥问题的论文,在他的论证中开创了数学的一个新分支——图论和几何拓扑。
欧拉解决问题的思路是这样的:首先把七座桥和他们相连接的陆地和岛屿进行抽象,把陆地和岛屿抽象成点,连接陆地的桥抽象成边。这样就把七桥问题抽象成了数学图论问题:从一个点出发,经过所有的边,并且所有的边仅经过一次,是否能回到出发点。如图所示。
目前,无论是基础科学,如数学、物理、化学、生物等,还是应用学科如信息、经济、社会,都能用图论的理论方法给予解决。图论也是计算机学科数据结构和算法中最重要的框架,是计算机专业学生必不可少的学习内容。
我们在课程中,用漫游的方式让学生身临其境的体会七桥漫步,让他们自己寻找问题的解决方案,并抽象出图形解决问题。
3 结语
用虚拟现实技术展示计算机典型问题,不仅可以让学生沉浸体验、感同身受,也能在他们体验的同时给出合理的解决方案,给予学生计算思维的启迪。在授课中获得了良好的效果。
虚拟现实技术是新出现的信息技术,作为新的知识载体与认知工具,将虚拟现实技术运用到教育领域中,不仅能让学习者从逼真的虚拟空间中获得体验与感受,也能帮助教师使用数字时代的思维方式去开展教育教学工作。
參考文献:
[1] 王秋红.虚拟现实技术在室内设计教学中的应用[J]. 黑龙江科学,2020(15) :94-95.
[2] 徐英萍.虚拟现实技术在高等职业教育中的应用研究综述[J].软件导刊,2020,19(7):281-284.
[3] 朱惠娟,戴丽丽,徐谦,等.计算机组成原理虚拟仿真实验的设计与实现[J]. 电子技术与软件工程,2020(14): 38-41
[4] 尹进.虚拟现实在计算机实验中的应用研究[J].数码世界,2020(7):7.
【通联编辑:李雅琪】