李鑫麗



摘要:文中介紹了虛擬現(xiàn)實(shí)技術(shù)在信息技術(shù)導(dǎo)論課程中計(jì)算思維訓(xùn)練中的應(yīng)用。將虛擬現(xiàn)實(shí)技術(shù)運(yùn)用到計(jì)算機(jī)基礎(chǔ)教育中,不僅能讓學(xué)生從逼真的虛擬空間獲得體驗(yàn)和感受,也能幫助教師使用虛擬現(xiàn)實(shí)的思維方式開展教育教學(xué)改革、教育教學(xué)改革工作。
關(guān)鍵詞:虛擬現(xiàn)實(shí);計(jì)算機(jī)典型問題;計(jì)算機(jī)思維
中圖分類號(hào): TP311? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2021)04-0230-02
在計(jì)算機(jī)技術(shù)發(fā)展迅猛的今天,無論是中小學(xué)還是大學(xué)都開設(shè)了計(jì)算機(jī)相關(guān)的課程。中小學(xué)的計(jì)算機(jī)課程偏向于認(rèn)識(shí)、概念性的介紹;高校偏向于計(jì)算機(jī)思維和高級(jí)技術(shù)。信息技術(shù)導(dǎo)論這門課是本科教學(xué)中不可或缺的一門課,本門課一般安排在大一第一個(gè)學(xué)期,各個(gè)學(xué)校有不同的課程名稱,有的學(xué)校稱之為“計(jì)算機(jī)導(dǎo)論”、有的叫“信息導(dǎo)論”,在公共課中叫“大學(xué)計(jì)算機(jī)”“計(jì)算機(jī)基礎(chǔ)”“計(jì)算機(jī)應(yīng)用基礎(chǔ)”等。鑒于本門課的開設(shè)范圍廣,技術(shù)更迭較快,講應(yīng)用的同時(shí)需要把計(jì)算思維貫穿其中。
1 概述
計(jì)算思維是2006年3月美國卡內(nèi)基·梅隆大學(xué)周以真教授提出的。計(jì)算思維是如何使用計(jì)算機(jī)解決實(shí)際問題。首先需要將實(shí)際問題進(jìn)行抽象,得到相關(guān)的抽象數(shù)據(jù)和抽象過程。其次抽象過程需要按照算法的規(guī)則給出,符合算法特征,給出確切的描述。最終用計(jì)算機(jī)實(shí)現(xiàn)算法、解決實(shí)際問題。計(jì)算思維是把我們遇到的問題抽象出來,用計(jì)算機(jī)來實(shí)現(xiàn)的過程。這種思維是抽象的不好理解的,計(jì)算機(jī)中有很多典型問題可以有助于計(jì)算思維的練習(xí),比如:七橋問題、找零問題、漢諾塔問題、旅行商問題、背包問題等。這些問題時(shí)計(jì)算機(jī)領(lǐng)域的典型問題,需要用到概念抽象、解決問題的過程抽象。而抽象的東西很難被剛?cè)胄5拇髮W(xué)生所理解。如何能更好地幫助他們理解這些典型問題呢?我們可以采用很多方式,比如用ppt中動(dòng)畫的形式進(jìn)行演示、課堂中輕同學(xué)到講臺(tái)上扮演不同角色、Flash動(dòng)畫等。但是這些形式?jīng)]有把互動(dòng)性、沉浸感、重復(fù)性綜合起來。我們力圖用更加先進(jìn)的技術(shù)引導(dǎo)學(xué)生更好地鍛煉他們的計(jì)算思維。而虛擬現(xiàn)實(shí)正好符合我們的需求。
虛擬現(xiàn)實(shí)技術(shù)是21世紀(jì)發(fā)展最快的計(jì)算機(jī)技術(shù)之一,通過虛擬技術(shù)制作出的作品可以很好地鍛煉學(xué)生的計(jì)算思維。我們做了一些嘗試,用虛擬現(xiàn)實(shí)技術(shù)演示不好理解的計(jì)算機(jī)典型問題:如背包問題、找零問題、旅行商問題、漢諾塔問題、哲學(xué)家就餐問題、七橋問題等。每一個(gè)典型問題都會(huì)應(yīng)用到很多領(lǐng)域,采用抽象的方式很難達(dá)到讓同學(xué)們完全理解的程度,而采用虛擬現(xiàn)實(shí)技術(shù)去演示、推進(jìn)、讓同學(xué)們有沉浸感的體驗(yàn)問題的解決方案,會(huì)達(dá)到事半功倍的效果。
2 利用虛擬現(xiàn)實(shí)技術(shù)實(shí)現(xiàn)的計(jì)算機(jī)典型問題
2.1 漢諾塔問題
問題描述:漢諾塔是一種游戲,游戲的規(guī)則說明如下。在銅板上有三根木桿,標(biāo)號(hào)分別為A、B、C。在A木桿上從小到大的順序放置一些盤子,要求經(jīng)過B木桿移動(dòng)到C木桿,移動(dòng)的時(shí)候保持每根木桿上的盤子都是從小到大的順序,大盤子在下、小盤子在上,每次只能移動(dòng)一個(gè)盤子,移動(dòng)盤子的時(shí)候可以放在A、B、C任意一根木桿上。盤子的個(gè)數(shù)就是漢諾塔游戲的階數(shù)。如有4個(gè)盤子就是4階漢諾塔。
問題演示:漢諾塔問題涉及了計(jì)算機(jī)中的遞歸算法,遞歸算法是生活中常見并且是計(jì)算機(jī)算法中的核心算法,將所描述問題可視化,能使類似問題在實(shí)際教學(xué)中的應(yīng)用有更好的前景。對(duì)比傳統(tǒng)的教學(xué)來說,不僅是對(duì)教學(xué)的創(chuàng)新,也是一種對(duì)未來可能的探索,是一種不斷在實(shí)驗(yàn)實(shí)踐中探索的過程。可以加強(qiáng)學(xué)生對(duì)遞歸算法的認(rèn)識(shí),通過三維動(dòng)畫演示和結(jié)果顯示可以鍛煉學(xué)生的計(jì)算思維。場(chǎng)景運(yùn)行及算法演示過程如圖所示。
2.2 哲學(xué)家就餐問題
問題描述:
假設(shè)有五位哲學(xué)家坐在一張圓桌上,每個(gè)人都可以做兩件事:要么吃飯、要么思考。這兩件事情是互斥的,即吃飯的時(shí)候不思考,思考的時(shí)候不吃飯。而給出的條件是:圓桌的中央擺放一盤意大利面條、相鄰的哲學(xué)家之間擺放有一個(gè)叉子、哲學(xué)家如果想吃面必須用兩個(gè)叉子、哲學(xué)家只能直接從他的左邊或右邊取叉子、兩個(gè)哲學(xué)家不能同時(shí)使用一個(gè)叉子、哲學(xué)家們不能溝通交流。
哲學(xué)家按照以上規(guī)則就餐時(shí),可能會(huì)發(fā)生叉子資源耗盡的時(shí)候。當(dāng)每個(gè)哲學(xué)家都在同一個(gè)時(shí)刻拿起自己左邊的叉子時(shí),每個(gè)哲學(xué)家都不可能拿右邊的叉子,這時(shí)他們的狀態(tài)就是“死鎖”。這時(shí)我們需要考慮如何協(xié)調(diào)才能使得每位哲學(xué)家都可以就餐吃到面。哲學(xué)家在計(jì)算機(jī)領(lǐng)域中的應(yīng)用場(chǎng)景是:當(dāng)應(yīng)用程序中并發(fā)線程執(zhí)行時(shí),如何協(xié)調(diào)共享資源的使用。
在計(jì)算機(jī)應(yīng)用場(chǎng)景中,缺少叉子就是進(jìn)程和進(jìn)程之間缺少共享的資源。
一種比較常用的技術(shù)就是采用共享資源加鎖。即當(dāng)一個(gè)程序訪問共享資源時(shí),將共享資源進(jìn)行加鎖;如果另外一個(gè)程序想要訪問相同的共享資源,就必須等待資源的解鎖。而多個(gè)程序需要訪問多個(gè)共享資源才能完成任務(wù)時(shí),也可能出現(xiàn)死鎖。如一個(gè)程序需要訪問三個(gè)共享資源時(shí),它會(huì)向系統(tǒng)申請(qǐng)資源,如果申請(qǐng)到其中的兩個(gè),而第三個(gè)共享資源已經(jīng)被第二個(gè)程序申請(qǐng)到。如果第二個(gè)程序只需要用一個(gè)資源,那第一個(gè)程序需要等到第二個(gè)程序解鎖其申請(qǐng)到的資源即可。但是如果第二個(gè)程序執(zhí)行時(shí)需要訪問第一個(gè)程序中用到的三個(gè)共享資源,這時(shí)因?yàn)榈谝粋€(gè)程序已經(jīng)為前兩個(gè)資源加鎖,需要等待第三個(gè)資源的解鎖;第二個(gè)程序則是為第三個(gè)共享資源加鎖,一直等待前兩個(gè)資源的解鎖。那就出現(xiàn)了死鎖。
針對(duì)該問題,科研人員做出了有很多解法:服務(wù)生解法、資源分級(jí)解法、Chandy/Misra解法等。
服務(wù)生解法的核心是:引入餐廳服務(wù)生,只有服務(wù)生允許其中的哪位哲學(xué)家拿叉子,被引導(dǎo)的哲學(xué)家才能拿起叉子進(jìn)食。由于服務(wù)生知道叉子的空閑狀態(tài),所以他能夠做出正確的判斷與引導(dǎo)。
引入餐廳服務(wù)生后,他可以把座位排序,如1、2、3、4、5。排好座次后,可以讓坐在1、3號(hào)的哲學(xué)家先進(jìn)食,這時(shí)服務(wù)生是最清楚叉子的使用狀態(tài)的。此刻1號(hào)和2號(hào)之間、 2號(hào)和3號(hào)之間、 3號(hào)和4號(hào)之間、5號(hào)和1號(hào)之間的叉子處于使用狀態(tài),4號(hào)和5號(hào)之間的叉子處于空閑狀態(tài),如果4號(hào)或5號(hào)也想進(jìn)餐,服務(wù)生會(huì)提示他們只能申請(qǐng)到一個(gè)叉子,沒有進(jìn)餐的條件,從而避免了死鎖。
我們使用虛擬現(xiàn)實(shí)技術(shù)來演示哲學(xué)家就餐問題來演示哲學(xué)家問題,讓學(xué)生能夠進(jìn)行抽象思維訓(xùn)練。
2.3 七橋問題
在18世紀(jì)初普魯士的哥尼斯堡有一條貫穿全城的河流,在河上有兩個(gè)小島,有七座橋把兩個(gè)島與河岸聯(lián)系起來。哥尼斯堡的居民經(jīng)常沿橋過河散步,每次散步后都最少會(huì)重復(fù)走一座橋。于是有人提出:我們能否一次走遍所有的橋,而每座橋只經(jīng)過一次,最后能回到出發(fā)點(diǎn),這就是最初的七橋問題。
這個(gè)問題似乎很簡(jiǎn)單,但是人們經(jīng)過無數(shù)次的嘗試仍然沒有找到答案。于是請(qǐng)教了大數(shù)學(xué)家歐拉。歐拉在自己的論文中證明了七橋問題是沒有解的。同時(shí)給出了解決問題的思路和存在答案的充分必要條件。最終,數(shù)學(xué)家歐拉向圣彼得堡學(xué)院提交了七橋問題的論文,在他的論證中開創(chuàng)了數(shù)學(xué)的一個(gè)新分支——圖論和幾何拓?fù)洹?/p>
歐拉解決問題的思路是這樣的:首先把七座橋和他們相連接的陸地和島嶼進(jìn)行抽象,把陸地和島嶼抽象成點(diǎn),連接陸地的橋抽象成邊。這樣就把七橋問題抽象成了數(shù)學(xué)圖論問題:從一個(gè)點(diǎn)出發(fā),經(jīng)過所有的邊,并且所有的邊僅經(jīng)過一次,是否能回到出發(fā)點(diǎn)。如圖所示。
目前,無論是基礎(chǔ)科學(xué),如數(shù)學(xué)、物理、化學(xué)、生物等,還是應(yīng)用學(xué)科如信息、經(jīng)濟(jì)、社會(huì),都能用圖論的理論方法給予解決。圖論也是計(jì)算機(jī)學(xué)科數(shù)據(jù)結(jié)構(gòu)和算法中最重要的框架,是計(jì)算機(jī)專業(yè)學(xué)生必不可少的學(xué)習(xí)內(nèi)容。
我們?cè)谡n程中,用漫游的方式讓學(xué)生身臨其境的體會(huì)七橋漫步,讓他們自己尋找問題的解決方案,并抽象出圖形解決問題。
3 結(jié)語
用虛擬現(xiàn)實(shí)技術(shù)展示計(jì)算機(jī)典型問題,不僅可以讓學(xué)生沉浸體驗(yàn)、感同身受,也能在他們體驗(yàn)的同時(shí)給出合理的解決方案,給予學(xué)生計(jì)算思維的啟迪。在授課中獲得了良好的效果。
虛擬現(xiàn)實(shí)技術(shù)是新出現(xiàn)的信息技術(shù),作為新的知識(shí)載體與認(rèn)知工具,將虛擬現(xiàn)實(shí)技術(shù)運(yùn)用到教育領(lǐng)域中,不僅能讓學(xué)習(xí)者從逼真的虛擬空間中獲得體驗(yàn)與感受,也能幫助教師使用數(shù)字時(shí)代的思維方式去開展教育教學(xué)工作。
參考文獻(xiàn):
[1] 王秋紅.虛擬現(xiàn)實(shí)技術(shù)在室內(nèi)設(shè)計(jì)教學(xué)中的應(yīng)用[J]. 黑龍江科學(xué),2020(15) :94-95.
[2] 徐英萍.虛擬現(xiàn)實(shí)技術(shù)在高等職業(yè)教育中的應(yīng)用研究綜述[J].軟件導(dǎo)刊,2020,19(7):281-284.
[3] 朱惠娟,戴麗麗,徐謙,等.計(jì)算機(jī)組成原理虛擬仿真實(shí)驗(yàn)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 電子技術(shù)與軟件工程,2020(14): 38-41
[4] 尹進(jìn).虛擬現(xiàn)實(shí)在計(jì)算機(jī)實(shí)驗(yàn)中的應(yīng)用研究[J].數(shù)碼世界,2020(7):7.
【通聯(lián)編輯:李雅琪】