



文章編號:1672-5913(2015)07-0047-04
中圖分類號:G642
摘要:分析傳統計算機專業實踐類課程所面臨的問題,針對課題陳舊、技術滯后等現狀,提出一種基于項目導向的實踐類課程教學方法,指出該方法不僅可以提高學生參與實踐類課程的積極性,有助于改善教學效果,還可以為教師實施科研項目提供一定的軟件測試依據。
關鍵詞:計算機專業;實踐類課程;項目導向教學法
0 引 言
計算機實踐類課程如程序設計、課程設計等是計算機專業的重要基礎性課程,對于計算機專業學生編程能力、思維模式和實踐能力的培養起到舉足輕重的作用。實踐類課程通常是在學生系統地學習某種高級程序設計語言的基礎上,教師通過設置和指導涵蓋綜合知識點的程序或軟件開發課題,期望學生通過課題的實踐鞏固高級程序設計語言語法和邏輯的一種直接而可行的方式。然而,大多數情況下,教師所設置的課題較為陳舊,多為各類信息管理系統或者傳統算法的設計與實現,少數甚至與當前計算機專業技術背景脫節,因此導致學生對實踐類課程的認知度下降,抑制學習和探索的興趣,從而影響實踐類課程的設置初衷和實際效果。
項目導向教學法是依托教師引導和學生實施而共同完成科研項目某個部分的教學方法,本質上屬于建構主義模式下的一種新型教學方法。著名的心理學家皮亞杰提出的建構主義學習理論認為,興趣對于學習的重要性不言而喻;教育心理學家認為,學習興趣是一種力求認識世界、渴望獲得各種知識的主觀意識傾向,這種傾向對于學習的效率和效果起著重要的作用。學生對課程產生興趣后會處于積極主動狀態,可以達到自主學習的目的。教師是意義建構的幫助者和促進者,而不是知識的提供者和灌輸者;學生是知識信息處理的主角,是意義建構的主動者,而不是被動接收者。
在項目導向教學法的實施過程中,教師需要根據實踐課程的時長和學生的接收程度抽象、簡化出科研項目中具體任務;學生以研究小組為單位,集體制訂研究計劃和任務分工,通過項目任務的理解、探索和解決等步驟達到提高專業技能和動手能力的目的。
1 計算機實踐類課程現狀及存在問題
1.1 計算機專業本科生特點
當前計算機技術發展迅速并逐步趨于成熟,日常生活中充斥著各種計算機的應用,極大地便利了人們的生活,因此大學生基本都具備一些計算機方面的常識,而作為計算機專業本科生則更加關注專業相關技術的最新進展及新型技術的出現,對專業知識有著更深更廣的涉獵,重視計算機專業基礎課程學習,在實踐類課程開始之前已經打下良好的基礎。此外,教師在對計算機專業學生的培養上通常更側重其獲取新知識、應用新知識、團結協作以及自主創新等方面能力。這些特點都為項目導向教學法的開展提供了必要條件,使得在實踐類課程中引入科研項目具有可行性。
1.2 現有教學法及缺點
現有應用于實踐類課程教學的教學方法主要包括任務驅動教學法、案例分析教學法和競賽驅動教學法。任務驅動教學是以任務為主線開展的教學方法,是一種探究式教學模式,在實施步驟上與項目引導教學法比較類似,但是任務驅動教學通常使用背離前沿技術的課題并且在實施過程中沒有教師的主導參與,包括研究背景介紹、課題抽取和多指標評價等,因此計算機專業學生的參與積極性不高,教學效果也受到限制。案例分析教學的核心是鼓勵學生表達對問題分析及解決過程的想法,通過教學雙方互動研討,學生在解決課題的實踐中掌握知識、熟練技能、側重實用,但這種方法缺乏團隊成員之間的交流和協作,沒有形成項目學習的共同體,不利于學生團結協作能力的培養和開放性思維的形成。競賽驅動教學法中成果評定一般都取決于最終程序的操作效果,因此學生往往關注程序的功能是否實現,而忽略程序實現方法的選擇和取舍。
1.3 項目導向教學法的引入
計算機實踐類課程期望能夠鞏固學生的專業知識、提高動手能力和強化創新意識,從而達到提高綜合實踐能力的目標,該過程中需要學生對課題具有自發的探索意愿,能夠發揮主觀能動性并學以致用,把零散知識碎片融會貫通。教師在該過程中扮演著課題提供者和引導者的角色,幫助學生盡快理解項目背景和課題要求,同時在學生實踐過程中對選用開發方法和軟件開發進程進行必要的管理和指導。項目導向教學法正能契合計算機實踐類課程的教學,因此筆者提出一種基于項目導向教學法的實踐類課程改革思路。
2 基于項目導向教學法的實踐類課程教學
以科研項目導向的實踐類課程教學通常包括課題設計與引導、項目實施、項目驗收和教師評價4個步驟,如圖1所示。
1)課題的設計與引導。
首先,教師應從科研項目中選取合適的內容作為實踐類教學的素材,必須兼顧學生的專業基礎以及課題的趣味性、可探索程度、技術涵蓋面等多個方面,合理選擇教學素材是項目引導教學法的關鍵之一;其次,由教師介紹科研項目的研究背景和內容,不僅可以拓展學生的視野,還可以幫助學生加快理解素材的內容與本質;最后,教師和學生共同完成對課題的理解,教師充當引導者角色,學生根據對科研項目背景的了解,嘗試以問答方式理解課題的內容,分析出所需要運用到的技術和知識點。
2)項目實施。
首先,學生需要進行分組(5-6人為宜),各組按照課題要求指定實施計劃,計劃中應包括項目的進度安排、個人分工和軟件總體目標等;其次,根據軟件總體目標進行功能模塊劃分,需要針對軟件各模塊確定需采用的算法及開發方法,必要時應對算法及方法進行一定的優化;最后,學生根據軟件設計結果進行實際的編碼開發,開發過程應嚴格遵守軟件工程的開發原則,當開發完成后需要進行軟件測試,軟件開發和軟件測試一般是一個多次循環迭代的過程,即測試結果應作為軟件修改和進一步開發的依據,直至軟件測試結果符合項目的預期。
3)項目驗收。
在項目實施環節中,除了根據項目要求開發軟件外,學生還需要在制訂計劃、確定算法和方法以及軟件測試階段撰寫相應的需求分析報告、軟件設計報告和軟件測試報告,因此項目的驗收包括對軟件成果和報告文檔的驗收,軟件成果要求程序結構合理、邏輯清晰、模塊劃分正確和輸入輸出準確,報告文檔要求內容嚴謹、格式規范,能夠反映學生對項目內容的理解和思考。
4)教師評價。
教師評價必須結合學生所開發軟件的運行結果正確性、算法巧妙性以及各類文檔規范程度等進行綜合評判,同時還必須關注每位學生在小組中的分工情況,對學生的理解能力、分析能力和動手能力進行評價,得到一個較為客觀的評價等級。
5)教學案例。
我們給出一個典型案例用以解釋該方法的具體實施過程,案例結合我們所承擔的國家自然科學基金項目“基于信號不規則性的水聲傳感器網絡關鍵技術的研究”,涉及水下聲通信傳感器網絡的部署、定位、拓撲控制及路由轉發等多項技術,分為以下6個步驟。
(l)教師選取并抽象該項目中拓撲控制技術的研究部分,將節點行為采用羅伯特·阿克塞爾羅德所提出的多方囚徒困境重復博弈方法:博弈雙方分別采用合作和背叛兩種行為將會得到不同的結果,如圖2所示。現需要用軟件表現出水下節點各種行為,模擬出節點的善良性、自私性、可報復性、寬容性等典型特點,參照圖2,其中R表示雙方合作時(即節點互相轉發數據報文)得分,S表示自己合作但對方背叛時(節點為對方轉發,但對方不為自己轉發數據)得分,T表示自己背叛但對方合作時(節點不為對方轉發,但對方為自己轉發)得分,P表示雙方都背叛時(互不轉發)得分。
(2)教師向學生解釋課題背景和意義、課題所需解決的主要問題及可能涉及的主要方法,指出在實施過程中可以使用的工具、語法和軟件設計方向。
(3)學生在理解課題之后需要分析問題并設計相應的策略,分別形成需求分析報告與軟件設計報告,交由教師進行審核。
(4)學生根據步驟3中的軟件設計,完成軟件程序的開發工作,教師驗收開發成果,開發程序界面及部分核心代碼分別如圖3和圖4所示。
(5)學生使用自己程序與他人程序進行對抗,每輪對抗結束,學生還可以根據本輪結果重復步驟3和4以調整策略和改善程序,進入下一輪對抗。
(6)教師在評價學生成績時根據學生的對抗得分及在課程參與過程中分析問題、調整策略和改進程序的表現,進行成績判定。
該項目中提取出的節點博弈課題并沒有一個標準答案,每個學生的最終得分取決于自己的程序策略和他人的程序策略,如何預測他人策略并以此設計自己的策略成為一個可以無限探索的方向。該課題是前沿技術的一部分并具有較強的趣味性,能夠引起學生積極參與課程的極大興趣,同時該程序結果也可為教師科研項目的繼續研究提供一定的實驗測試依據。
3 結語
當前計算機專業實踐類課程存在課題陳舊、偏離前沿技術、學生積極性不高等諸多問題,影響了最終教學效果。針對該問題,筆者提出一種以科研項目為導向的實踐課程教學方法,在計算機專業實踐類課程中引入科研項目中的部分內容,加以簡化抽取形成教學素材,由教師引導學生參與項目的研究與開發,不僅激發了學生的學習興趣,提高了實踐類課程的教學效果,還使學生對前沿研究及技術有了更深的了解,提高了學生的開放性思維能力及實踐動手能力。