摘 要: 本文對計算機專業課程尤其是軟件類型課程的教學方法進行了探討。基于問題的教學,也稱作問題式學習在實踐教學過程中的應用。以計算機專業核心課程——編譯原理為例,本文作者提出了一些問題式教學實踐的具體方法,并對PBL教學與傳統教學方法進行了對比分析。
關鍵詞: PBL 計算機專業 計算機軟件教學 編譯原理
1.引言
當前我國計算機軟件行業存在著大量人才缺口,但是,擺在中國軟件界和教育界面前的現實問題是,大量的畢業生面臨擇業困境,而大批IT企業卻難以招收到適用的人才。如何盡快協調教育與就業之間的矛盾,PBL(Problem-Based Learning)應該是當前計算機軟件教育的一個重要突破口。
軟件人才排在頭三位的專業技能:算法、數據、結構編程。編譯系統是一個很經典的、很成熟的軟件系統,無論從其復雜度還是技術含量來說,都是很適合教學的系統。“編譯器的編寫涉及程序計算機體系結構、設計語言、語言理論、算法和軟件工程等學科”,既有分析,又有綜合,所以是非常好的實現能力培養的專業課程。
好的軟件人才必須從程序級走向系統級。在程序設計、數據結構與算法等課程后,還要從系統的級別上來對程序、算法的認識進行再提高。通過對編譯系統和操作系統的認識和理解,能夠很好地提高學生的系統能力,
本文以計算機專業的核心課程《編譯原理》為例,對基于問題的教學模式進行探討。
2.PBL教學方式的優點
“基于問題的學習(Problem-Based Learning)”,簡稱PBL,它是一種主動學習模式。此方法強調以學生的主動學習為主,而不是傳統教學中強調的以教師講授為主,比如將學習與更大的問題掛鉤;使學習者投入于問題中;設計真實性任務;鼓勵自主探究;激發和支持學習者的主動思維;鼓勵爭論;鼓勵對學習內容和過程的反思,等等。其最終目標是使學生成為能自主學習的人才。主要優點如下:
(1)PBL教學是選擇貼近實際應用的問題,這些問題對學生有一定的難度,能夠鍛煉學生解決問題的技能和思維能力。這樣就能確保學生在以后的工作和學習中將自身的能力有效地應用到實際問題的解決中。
(2)要求學生以分組的方式來完成問題,使學生在探索研究過程中能充分地進行討論和交流,學生是問題的解決者,PBL教學模式就是賦予學生自我學習的能力和培養他們獨立解決問題和團隊合作的精神。
(3)PBL教學實踐性很強,傳統的先理論后實踐的教學模式很難滿足模擬現實軟件項目開發的流程,可以考慮采用現在很有效的“理論、實踐一體化”教學模式,以便于項目任務的分解和實現。
3.基于PBL的編譯原理教學模式的設計與開展
3.1明確《編譯原理》的課程目標
編譯原理課程中有很多經典的算法,教師應讓學生采用軟件工程的思想方法開發一小型的算法類軟件項目,全面體會軟件工程的思想,深刻理解所學算法對其在軟件設計中的幫助,以及對今后工作的指導作用,另要求在開發的每個階段都要編寫相應文檔,課堂上隨機點取多名學生上講臺講解設計思路,教師引導學生共同分析,最終使學生具備系統全面的代碼編寫能力和開發文檔編寫能力。
3.2選定問題
選定問題是PBL教學活動開展的前提,我們應該選擇本課程的典型算法,把它們當作一個個小型的軟件項目提出并處理。
3.3制定問題(項目)開發計劃
教師在分組后和各組成員一起討論確定問題的主要研究,分析問題解決過程中可能遇到的難點,任務怎么分配,驗收方式等,回答成員提出的問題,給組長以一定的權利及充分的支持。
項目開發詳細計劃制定前,教師應針對各小組的問題提出指導性的要求,然后要求各小組獨立完成《問題目標與開發思路》文檔。接著要求學生分組討論問題的實際可行性,寫出《可行性研究報告》文檔,這一階段,教師要能指導學生目前不是具體解決某個問題,而是研究問題的范圍,分析這個問題是否值得去探索,是否有實際可行的解決辦法。教師應先充當系統分析員的角色在課上分析一份可行性研究報告,估計問題的成本和效益,并且在此基礎上更具體、更準確地確定問題的目標和規模。接下來要求學生分組通過各種渠道搜集資料,完成《問題需求分析》文檔。這一階段,教師仍然要引導學生不要具體解決某個問題,而要確定為了解決這個問題,必須做什么?主要是確定所探索的問題必須具備哪些功能。
完成了以上幾個階段后,學生小組開始制定詳細開發計劃,計劃的內容主要包括:對問題學習和資料搜集所需的時間和開展對應的活動,小組成員的具體任務分配,整個問題的開發進程安排。計劃應當是小組成員共同分析問題需求的基礎上,討論、協商確定的,教師應在此階段重點檢查小組開發計劃的合理性及可行性,為后面問題的具體設計和解決打好基礎。
3.4問題的詳細設計方案與代碼實現
這個階段問題小組需要面對的是應該如何解決這個問題,在小組成員的充分討論后,拿出一個最佳方案后就得出該軟件的結構,確定問題的模塊組成和各個模塊間的關系,小組完成《概要及詳細設計說明書》并上交。
接著負責各個專門模塊開發的小組成員詳細設計每一個模塊,并對數據的結構進行設計并提交《模塊詳細設計說明書》。然后根據選擇的算法流程來完成代碼編寫、測試、集成等開發工作。
這一階段是PBL教學模式的主體,基本上學生軟件開發所需要的技能和知識的掌握是在這一階段完成的。教師在這一階段起著很重要的作用,要為學生答疑解惑,還要及時發現問題并能引導學生如何去解決問題。要根據具體教學目標的要求,重點進行算法指導和協作開發方面的指導,還要多加鼓勵學生利用圖書館、網絡等資源自主的學習。
3.5交流與評價
問題完成后,可以組織各種活動來對學生作品進行展示,如進行問題答辯,問題評比等活動。通過這樣的活動讓學生能交流學習過程中的經驗和體會。
最后學生完成《問題(項目)開發報告》,并對整個問題(項目)開發過程作出自我分析和自我總結,教師對問題進行評價。
4.PBL教學與傳統教學方法的比較
5.結語
我們基于PBL教學模式在編譯原理課程教學上的嘗試已取得初步成果,我們在教學中不僅出色地完成了教學任務,而且使學生對軟件方面所學的知識進行了較高層次的概括與總結。問題完成之后,學生已經基本能夠進行獨立的軟件開發。PBL教學模式能極大地鍛煉學生的自主學習能力。以問題的設計與代碼實現階段為例,學生不僅要運用到編譯的知識,而且要綜合運用軟件工程、數據結構等其他課程知識來分析解決問題,真正做到了學以致用。因此,證明基于問題的教學是一個能夠幫助學生提高專業素質的教學模式。
相信隨著教師教學水平的提高和教學手段的改進,PBL教學模式將有廣闊的發展前景。
參考文獻:
[1]藍進.PBL教學法在市場營銷專業實訓中的應用[J].教育與教學研究,2009,(05).
[2]劉景福,鐘志賢.基于項目的學習模式研究(PBL)[J].長春:外國教育研究,2002,(11).
[3]唐瑋,張麗英.PBL模式在會計基礎教學中的應用[J].合作經濟與科技,2010,(04).
[4]張小玲.以問題為先導的教學模式在眼科學教學中的應用研究[J].西北醫學教育,2009,(02).
[5]肖波,尹憲明,蔡小紅.康復治療技術專業臨床醫學課程教學改革的實踐與探索[J].衛生職業教育,2008,(23).