闞運奇


摘 要:目前大學畢業生可以跨專業報考研究生,所以很多計算機專業的研究生本科所學專業有很多種,該類型研究生普遍存在程序設計基礎薄弱、編程能力較弱的問題,所以在學習程序設計類課程時較為吃力,需要設計教學方案提高程序類課程設計的教學效果。因此,文章研究了基于案例驅動的研究生程序設計類課程教學方案。
關鍵詞:研究生課程;程序設計;教學方法
大學畢業生可以跨專業報考研究生,目前部分研究生本科所學專業非計算機專業,該類型研究生雖然本科階段學習過“C語言”“匯編語言”等基礎類課程,但是由于學習的程序設計類課程數量較少、時間短,并且程序設計實踐環節薄弱,導致該類研究生普遍程序設計基礎薄弱,編程能力較弱,在學習程序設計類課程時較為吃力,無法掌握程序設計的方法并進行程序設計。目前有針對該問題的教學成果發表[1-5],可提高非計算機專業研究生學習程序設計課程的效果,取得了較好的教學效果。本文提出了一種基于案例驅動[6-10]的研究生程序設計類課程教學方案,教學過程由興趣引導,并以案例作為驅動深入淺出地講解程序設計知識,提高非計算機專業研究生的學習效果。
程序設計類課程是計算機研究生課程的主要組成部分,包括“并行計算”“數據圖像處理”“仿真系統”等課程[11],是每個研究生需要學習的課程。本文以“并行計算”為例,探討分析了一種程序設計課的教學方案[12-17],能提高學生的學習興趣,使研究生對程序類語言課程有更好的理解,流程如圖1所示。
1 興趣引導
很多非計算機專業研究生對于程序設計較為陌生,個別學生有排斥的心理,對于程序課程的理解不夠,針對這種情況,可以選取生活中的小案例,引導其對程序設計產生興趣,比如在并行計算課程講授初期,課程組選取了求圓周率的小程序作為引導案例,該案例的原理較為簡單,應用基礎數學原理即可完成求解過程,并且求解的方式有多種,大部分學生對于該問題的求解并不陌生,很容易掌握。
2 案例驅動
當學生掌握常規求解方案后,即引入利用“隨機點”的求解思路,讓學生對于該方案進行思考,與前一方案進行對比分析。
方案二思路,利用隨機點求近似圓周率值方法,如圖2所示。
(1)在正方形中畫一個圓,用AS表示方形的面積,AC表示圓的面積,r表示半徑。(2)在正方形內隨機生成點。(3)確定既在正方形內又在圓形內點的數量。(4)在圓形內點的數量除以在正方形內點的數量,結果付給r。(5)圓周率約等于4r。(6)隨機生成的點越多近似度會更高。
對比兩種方案的優劣,總結其求解的主體思想,然后在方案一的基礎上,再給出方案二的求解方案報告,最終形成兩種求解方案。
3 由淺入深訓練學生編程能力
通過引導、訓練與講解讓學生掌握圓周率的逐求解思路,并在潛移默化中形成算法的設計,這樣可以使學生明白程序設計并不困難,進而對程序設計產生一定的興趣。
在此基礎上,可以鼓勵學生用C語言等基礎編程語言編寫簡單的串行代碼,在編寫過程中要提醒學生注意語法格式要正確。前期經過算法的訓練,學生已經有較為清晰的思路,再降低編寫代碼的難度,也增強了學生的信心。在學生編寫代碼結束后,要詳細地檢查代碼,發現錯誤要及時給予糾正,并鼓勵其用多種方法來實現求解方案。通過多次訓練,學生逐漸對編寫程序擁有信心。
在學生掌握了串行代碼的基礎上,開始講解并行程序設計思路,其原理即是:將原由一個進程執行的任務分解成N個進程能執行的任務。
該原理較為簡單,思路清晰,學生比較容易掌握,在掌握了并行設計思想以后,以實踐課的形式讓學生配置并行計算環境,并進行并行程序執行的實驗。
講解實現并行程序的函數,讓學生掌握函數的使用方法以及函數的變形函數。由于并行計算是以串行計算為基礎,所以學生理解和實踐起來并不困難。
整個并行計算的課程貫穿了求解圓周率的兩個方案,讓學生對課程的各個知識點的學習更加連貫,同時也降低了學習的難度。
4 結語
部分研究生本科所學專業非計算機專業,該類研究生普遍程序設計基礎薄弱,編程能力較弱,在學習程序設計類課程時較為吃力,無法掌握程序設計的方法并進行程序設計。本文提出了一種基于案例驅動的研究生程序設計類課程教學方案,教學過程由興趣引導,并以案例作為驅動深入淺出地講解程序設計知識,提高非計算機專業研究生的學習效果。為鞏固教學的效果,下一步可以針對研究生課程設置的特點討論程序設計類課程的實踐方案。
[參考文獻]
[1]趙欣.《面向對象技術》研究生課程教學改革探討[J].大連大學學報,2018(3):134-137.
[2]石連栓.留學研究生程序設計課程教學的探索與實踐[J].計算機教育,2018(2):132-134.
[3]魏唯,劉威,董學陽.非計算機專業VisualC++研究生課程建設探索[J].教育教學論壇,2016(4):180-181.
[4]徐新海,唐玉華,林宇斐.跨專業并行計算基礎課程教學設計[J].計算機教育,2014(23):106-109.
[5]齊曉慧,王永川,董海瑞.研究生“線性系統理論”課程教學改革與實踐[J].中國電力教育,2010(32):82-84.
[6]曹佳.綜合實驗為驅動的教學法在研究生網絡編程類課程中的應用[J].計算機教育,2016(5):44-47.
[7]蔡美玲,劉相濱.面向計算思維能力培養的Excel案例驅動式教學探究[J].教育觀察,2018(19):80-83.
[8]杜春.基于案例驅動的Java教學的探討[J].電腦知識與技術,2018(28):123-125.
[9]高銘悅,潘正高,吳文平.基于案例驅動的數據挖掘課程教學方法研究[J].鄂州大學學報,2018(5):102-103,106.
[10]姚麗莎,李春梅,張怡文.分層項目驅動案例教學模式的C++程序設計課程改革[J].科技視界,2018(25):133-134,147.
[11]阮露.并行設計思想在專用車公司中的應用研究[J].汽車實用技術,2018(12):93-94.
[12]郭笑,吳志勇,周建宏,等.大范圍土壤含水率數據融合并行計算方法研究[J].水電能源科學,2018(11):22-25.
[13]周雪,于平,翁愛華,等.基于MPI和OpenMP的重力及重力梯度數據并行正演算法研究[J].世界地質,2018(3):897-904.
[14]張路青.基于MPI的數據融合并行化容錯技術研究[J].艦船電子工程,2018(8):46-49,60.
[15]劉帥.多分量地震數據各向異性疊前時間偏移并行算法研究[D].北京:中國地質大學,2018.
[16]張志國,張慧娟,徐洪洲.基于MPI的遙測源碼多站拼接并行化算法研究[J].艦船電子工程,2018(4):111-113.
[17]任燕.基于MapReduce與距離的離群數據并行挖掘算法[J].計算機系統應用,2018(2):151-156.