孫小華

摘 ? 要:在高職院校移動應用開發專業“高等數學”課程綜合實踐中加入相關知識進行教學探索。文章以移動應用開發中經常用到的碰撞檢測為例,在“高等數學”課程綜合實踐中進行教學,可以提高高職院校移動應用開發人才的培養質量,為其今后的實習與工作打好相關的數學理論基礎,提升移動應用開發專業學生的數學實踐能力。
關鍵詞:高等數學;課程綜合實踐;移動應用開發;碰撞檢測
近年來,在“互聯網+”戰略“大眾創業、萬眾創新”的推動下,我國移動應用市場的應用數量呈現爆發性增長。根據工信部的調查統計,截至2018年12月,我國市場中的移動應用累計數量達到449萬款。移動互聯網產業的高速發展產生了大量的移動互聯網開發人才需求,據統計,2014年我國移動互聯網行業應用開發人員需求量是200多萬,但由于移動應用開發人才培養的滯后,實際從業人員不到70萬人。為此,2015年教育部在《普通高等學校高等職業教育(專科)專業目錄(2015年)》中新增加了移動應用開發專業(專業代碼:610212)。國內已經有一些高職院校申請開設移動應用開發專業,有的院校已開設了軟件開發專業(移動應用開發方向)。
目前,移動應用開發技術人才培養的任務主要由各類教育培訓機構如達內科技、北大青鳥、華清遠見等完成,學員沒有經過體系化、延續化的培訓,從業人員的素質與數量都遠遠落后于行業發展需求,無法滿足社會需求。而且移動應用開發專業涉及的信息技術發展迅猛,知識更新很快,除了傳統的技術之外,還涉及HTML5、云計算、傳感器等方面的知識。在進行移動應用軟件開發的過程中,開發人員經常需要用到許多數學知識,如坐標系變換、碰撞檢測、數據排序等。高職院校軟件開發專業(移動應用開發方向)雖然一般都開設了“高等數學”課程,但重點內容是微積分及其應用,沒有涉及移動應用開發中實際需要用到的數學知識。因此,為了提高高職院校移動應用開發人才的培養質量,為他們今后的實習與工作打好相關的數學理論基礎,亟需提升移動應用開發專業學生的數學實踐能力,在高職院校移動應用開發專業“高等數學”課程綜合實踐中加入相關知識進行教學探索[1]。
1 ? ?學情分析
參加“高等數學”課程綜合實踐的學生為移動應用開發專業的大一學生,已初步掌握了“高等數學”和移動應用開發相關專業的基本理論知識(如Java語言等),初步具備了移動應用開發專業的基本專業技能,但缺乏綜合實踐和交叉應用的能力。
2 ? ?項目基本情況
在市場上所有移動應用中,游戲類應用規模處于領先。截至2018年12月月底,游戲類應用數量約138萬款,數量規模排名第一。在游戲應用中,經常涉及利用圓或球的邊界進行碰撞檢測問題,所以在“高等數學”課程綜合實踐中嘗試加入碰撞檢測問題的求解。
課程綜合實踐要求學生利用實踐期間講授的碰撞檢測知識,并結合移動應用開發專業的課程配置,根據綜合實踐提供的相關資料,編寫二維平面碰撞檢測的代碼,并撰寫一份專題應用報告,培養學生解決模型問題的思路和方法,形成“理論構建—數學建檔—解決問題”的數學素質教育的教學模式。一方面,使學生具備運用較為嚴謹、有邏輯層次、較為精練準確的數學思維和語言分析問題、簡化問題以及描述問題的數學化能力,另一方面,提高學生處理一般實際問題的應用能力與創新能力[2]。
3 ? ?項目流程
本項目由教師負責制定、編撰理論教學與應用實踐內容。對參與項目的學生講解碰撞檢測的原理和基本方法,進行“高等數學”應用報告寫作指導,將參與項目的學生分成小組,推薦參考資料,布置學生按組進行文獻查閱、概要設計、詳細設計、代碼編寫、測試等,全程跟蹤指導各小組完成撰寫實踐應用報告。
碰撞游戲中的元素是否碰到一起,比如打飛機游戲,沒躲避炮彈就算飛機被擊中,移動應用要能檢測出來,然后執行相應的處理程序。游戲里的碰撞檢測分為2D和3D兩種情況,在課程綜合實踐中,主要要求學生進行2D情況下的碰撞檢測。
在移動應用程序中,碰撞檢測主要有矩形判斷、圓形判斷、多矩形判斷3種方式。在對碰撞檢測的精度要求高的情況下,可以采用像素檢測算法達到精確檢測的目的,但采用像素檢測算法計算量大,對手機的性能要求高[3]。
如圖1所示,在矩形判斷方式中,可以把游戲中敵我雙方人物都當作矩形,來檢測兩個矩形是否相交。圖1中把其中一個人物當作中間的矩形,以手機屏幕左上角為坐標原點O,以水平向右方向為x軸正方向,豎直向下方向為y軸正方向。此矩形的左上角與右下角的坐標分別為(x1,y1)和(x2,y2),如果此時把另外一個人物也當作矩形處理,設其左上角與右下角的坐標分別為(x1',y1')和(x2',y2'),那么,此時另一人物處在圖中陰影部分的矩形所示位置時,兩矩形不相交,即兩人物不碰撞。圖1陰影部分的矩形所示位置包含以下幾種情況:
(1)陰影部分矩形全部在中間矩形左邊,即x2' (2)陰影部分矩形全部在中間矩形右邊,即x1'>x2。 (3)陰影部分矩形全部在中間矩形上邊,即y2 (4)陰影部分矩形全部在中間矩形下邊,即x1'>x2。 這時判斷兩個矩形是否相交,通過取反操作進行,因為相交==!(不相交),即: !(x2' 圓形判斷比較簡單,判斷兩個圓心距離d12是否大于兩個圓的半徑之和“r1+r2”即可。對多矩形判斷,需要封裝多個矩形來一一判斷是否有碰撞。 在給學生講解完碰撞檢測的原理之后,學生需要針對3種碰撞檢測方法生成相應的數學模型,并寫出偽代碼。然后采用Java編程語言編寫簡單的Demo軟件。 4 ? ?教學反思 通過在移動應用開發專業開展“高等數學”課程創新創業綜合實踐,可以加強培養學生以下3方面的實際應用能力。 4.1 ?數學化能力 初步具備運用較為嚴謹且有邏輯層次的、較為精練準確的數學思維和語言分析問題、簡化問題以及描述問題的能力。將專業知識及實際問題提煉成數學問題,結合相關的數學知識進行消化、理解。 4.2 ?處理實際問題的能力 初步具備運用適當的數學思想、方法和技巧建立數學模型來解決所遇到的一般實際問題的能力,初步具備查閱應用文獻資料時對數學語言的辨識能力。一篇完整的應用報告是學生小組集體的成果,是問題數學化再到最優方案設計的過渡。 4.3 ?應用創新能力 在后續的專業學習和實習中具備初步運用數學知識的創造能力,科學論文寫作時具備初步綜合運用數學語言的能力。 [參考文獻] [1]弗林特,科迪克.游戲中的數學與物理學[M].2版.周建娟,譯.北京:清華大學出版社,2014. [2]吳亞峰,蘇亞光,于復興.Android游戲開發大全[M].3版.北京:人民郵電出版社,2015. [3]喬納森.Android游戲編程入門經典[M].宋松,王小飛,譯.北京:人民郵電出版社,2013.