李鑫麗



摘要:文中介紹了虛擬現實技術在信息技術導論課程中計算思維訓練中的應用。將虛擬現實技術運用到計算機基礎教育中,不僅能讓學生從逼真的虛擬空間獲得體驗和感受,也能幫助教師使用虛擬現實的思維方式開展教育教學改革、教育教學改革工作。
關鍵詞:虛擬現實;計算機典型問題;計算機思維
中圖分類號: 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.
【通聯編輯:李雅琪】