摘要:項目教學法是在建構主義的學習理論指導下,教師以實際的工作項目為對象,引導學生進行分組討論、協作學習,最后完成項目的教學方式。在“Java程序設計”課程教學中采用游戲項目進行教學可以提高學生的學習積極性和自主性,培養學生的實踐動手能力和創新能力。
關鍵詞:建構主義;游戲;項目教學法;Java程序設計
中圖分類號:G712
文獻標識碼:A
1 在“Java程序設計”課程教學中實施項目
教學法的必要性
教學的型態大體上可分為兩種:一種為填鴨式,一種為建構式。前者即傳統的教學型態。教師采用一套固定的教材給學生傳授知識,大多數的學生都只是默默地接受和背誦記憶。該型態在學生程度相差度不大的情形下有較好的成效,但是很難保證每個學生都能接受這些教學內容。因此,填鴨式教學型態使得學生學習起來很費力,而且所學知識遺忘得也很快。建構主義(constructivism)最早是由瑞士著名心理學家皮亞杰(J.Piaget)提出的,建構主義學習理論認為,知識不是通過教師傳授得到的,而是學生在一定的情境下,借助他人(包括教師和同學)的幫助,利用必要的學習資料,通過意義建構的方式而獲得。根據建構主義的學習理論,教師在教學過程中,必須以學生為中心,充分發揮學生的主體性和創新精神。建構式教學的特色是:提供一定的學習范圍,其中有若干相關教材,但沒有既定的學習步驟,學習者要主動建構個人的學習路徑。
項目教學法是在建構主義的學習理論指導下,以實際的工作項目為對象,教師進行示范、引導,并將其分解成小項目,學生對小項目進行討論、協作學習,最后完成該項目的教學方式。項目教學的含義是在教學過程中引入綜合案例(項目),按照工作過程將其分解成小模塊,并與相應知識點關聯,使學生通過任務驅動、問題的解決來領會知識的內涵和應用,同時拓展對深層知識的學習和應用,即按“項目—模塊—任務—問題—知識點”的思路實施教學,最終實現由“知識點—問題—任務—模塊—項目”的完整學習過程。傳統的計算機程序設計教學模式基本上是以教師、教材為中心,采用老師講學生聽的模式。通常是學期初學生對編程還興趣滿滿,學習的積極性很高,隨著課程的深入,到期中就基本上沒什么興趣了。
Java語言是一種概念復雜,理論性和實踐性均很強的程序設計語言,要求學生有較好的程序設計基礎。程序設計教學的最終目的是要培養學生分析和設計程序的思維方法和能力,也就是要會用語言這個工具去解決實際問題。傳統的教學方法大都是從理論入手,雖然能系統完整地講解各章各節和各個知識點,但由于內容比較枯燥,對于基本素質、自學能力和自控能力都不是很強的高職學生來講,僅能夠灌輸一點基本概念和理論,根本談不上能用語言這個工具去編寫實際的程序。因此,我們在教學過程中必須改變傳統的以“知識為本位”的教學目標,代之以“能力為本位”的教學目標,必須改變傳統的灌輸式教學方法,代之以重視學生能力和創造性培養的項目教學法。為了提高學生的編程興趣,加強學生的編程實踐動手能力,筆者在“Java程序設計”課程教學實踐中,結合教學內容和教學對象的實際情況,采用游戲項目進行教學,極大地提高了學生的學習積極性和主動性,使他們的動手能力、解決實際問題的能力得到了較大的提高。
2 游戲項目在“Java程序設計”課程教學中
的應用
對比發達歐美國家學校的課堂,我們的課堂存在一個明顯的缺陷,就是刻板、枯燥、循規蹈矩,盡管這些年來不斷地加以改進,但收效仍不夠明顯。興趣是最好的老師,只有感興趣了,才能充分調動其主觀能動性,才能最大限度地挖掘人的潛能。有相當一部分學習基礎差的學生,他們的學習積極性不高,覺得目前傳統的教學方法枯燥無味,學起來沒勁,有一種無法抗拒的厭學情緒。而對象棋、麻將、撲克等傳統游戲以及網絡游戲,則是非常迷戀,甚至可以通宵達旦、廢寢忘食地沉迷其中,因為玩是他們的天性。基于學生必須要學習規定的知識和技能,又要承認和尊重他們的天性這兩個方面的要求,筆者將二者巧妙合理地結合起來,在“Java程序設計”課程教學過程中采用游戲項目,有效地提高了學生的學習興趣,收到了良好的教學效果。
2.1 教學設計
“Java程序設計”是一門集知識和技能于一體,實踐性很強的課程,對于高職院校的學生來說,注重的是學生的實際編程能力,教學活動中必須遵循“以學生為主體,教師為主導”的原則。采用“項目驅動”教學方法時,一定要強調教學過程與軟件開發進程的一致性,其教學過程必須精心設計,以適應學生的學習進度與接受能力。在教學設計中需注意以下幾個問題:
(1) 授課項目的選擇。“Java程序設計”課程一般僅開設一個學期,在選擇項目時,必須考慮項目的規模和難度,項目過大,教師只能抽取其中小部分進行講解和輔導,影響授課的完整性。如果項目難以完成或技術含量過高,會直接影響學生的自信心,可能使得部分學生知難而退;但如果項目過小或過于簡單,又很難激發學生學習Java語言的熱情。因此,項目規模的大小選擇應適中,既要包括Java語言的基本語法知識,又要體現Java圖形編程和用戶界面設計等實用性強的內容。如講授Java類庫時,可采用擲硬幣游戲或擲骰子游戲;講授多線程模塊的內容時,可采用“蜘蛛紙牌”游戲;講授圖形用戶界面內容時,可利用“中國象棋”游戲或“五子棋”游戲。下面以“俄羅斯方塊”游戲詳細說明項目的選擇和設置。
俄羅斯方塊是一款風靡全球的電視游戲和掌上游戲機游戲,它曾經造成的轟動與經濟價值可以說是游戲史上的一件大事。這款游戲最初是由蘇聯的游戲制作人Alex Pajitnov制作的,它看似簡單但卻變化無窮。這個游戲考驗的是玩家的反應靈敏度和對幾何圖形的直覺度。
俄羅斯方塊游戲項目的編程主要訓練學生以下幾個方面的能力:Java語言基本編程能力、Java圖形和用戶界面編程能力、Swing組件應用能力、Java程序調試和發布能力等。根據能力的要求,將該項目劃分為若干個模塊項目,每個模塊項目中根據需要再劃分為若干個由基本知識、基本操作構成的實訓項目。項目劃分圖如下:

項目劃分好后,教師要進行課前準備工作,教師最好自己先將該游戲設計開發出來,為項目教學法的實施做好前期的準備工作。在項目實施前,教師可以向學生作簡要的實施動員工作,向學生說明項目的意義與作用,引導學生正確對待電腦游戲,收集相關資料,從而激發學生完成項目開發的興趣。
(2) 授課教師的軟件開發能力。授課項目直接影響到教學效果,因此,項目的設計、框架的構建非常關鍵。要想完成軟件項目,授課教師除了具備扎實的Java語言知識外,還必須具備軟件開發的經驗,這不僅要求授課教師能“講課”,還要求其具有軟件開發能力,這樣,在處理授課項目時,才會顯得得心應手。所以,采用項目驅動教學法講授“Java程序設計”的教師,最好來自于軟件開發企業的第一線,或者與企業合作,聘請企業的軟件工程師及資深人員作為兼職教師。由于來自于生產第一線的教師非常清楚企業需要什么樣的知識和技能,也就可以培養出社會所需的人才;其次,讓現有教師到軟件企業去參加培訓,以期達到應有的授課水平。
(3)授課項目的分解。授課項目的實現要體現整體目標,而我們的授課時間分散于一個學期,這就勢必將大的項目,根據授課進度計劃,逐層分解為一個個可實現的子任務。項目分解時要采用遞進的方法,將各種知識點、重點及難點分布于具體的子任務中,根據學生的實際情況進行實施,這樣既具有較強的可操作性,又能讓學生有成就感。
2.2 教學實施
采用項目驅動教學方法進行“Java程序設計”課程教學時,要遵循靈活多樣的原則。教師在授課前,不僅要確定授課項目,還要指導學生選擇實訓項目,這個過程應該在“Java程序設計”課程正式授課前完成。
(1) 學生分組。項目驅動教學法與傳統的課堂講授法之間本質的差別,就在于所傳授的知識是否具有系統性和連貫性,后者的課程試驗只是為了驗證課本上或教師精心準備的實例,各部分知識間往往是分散的,可由學生單獨完成;而前者更注重項目的整體性和知識的綜合性,為了完成項目,學生必須花費大量的時間和精力。另外,我們還應考慮他們每個人的能力與水平差異,并從培養學生團隊合作精神出發,根據學生的現狀分組,每個組選出一個小組長,即項目經理(Project Manager),對該組的項目負責。每個組的成員一般在3人~5人,組長給每個組員分配任務。這種項目分組的方式,既鍛煉了學生的團隊合作精神,又可以起到“以強扶弱”的作用;既能充分調動學生的主觀能動性,提高學生的組織、協調能力,又可減輕教師的負擔。
(2) 學生實訓項目的選擇。在授課初期,鼓勵每個學生自行尋找項目,了解用戶需求,再匯集到組長處,經過小組討論,集思廣益,在教師的指導下,根據每個小組成員的實際情況,確定一個理想的、可行的軟件開發項目,并按功能劃分模塊,最后將模塊分配給每個小組成員。所劃分的模塊在很多方面具有相似性,如:用戶界面的設計、數據庫的連接、系統的框架結構等,采用的方法是一樣的,只是具體內容不同而已,將項目分塊完成,可以使每個學生得到全方位的鍛煉。
(3) 授課方法。使用項目驅動教學法講授“Java程序設計”課程時,需要與項目的軟件開發流程一致,具體方法如下:
① 搭建軟件開發平臺,確定開發工具及輔助開發工具。不但要使學生了解程序設計的目標,還要使其知道實現目標的各種輔助條件。在給高職院校的學生講授“Java程序設計”課程時,最好先使用可視化的開發工具(如:Eclipse加MyEclipse插件或SWT Designer插件),有“所見即所得”的效果,框架結構部分已由開發工具自動生成,編寫的代碼比較少,又很直觀;當學生有一定的程序設計基礎后,再讓學生并行使用非可視化的開發環境,以得到更好的鍛煉。講授程序設計課程時,一定要從軟件工程的角度出發,鼓勵學生適當使用一些其他的輔助工具,如代碼版本管理、數據庫結構設計、項目進度管理等,以提高學生綜合應用知識的能力,培養企業真正需要的人才。
② 詳解軟件開發環境。軟件企業為了提高軟件開發速度,縮短開發周期,普遍使用可視化的集成開發環境,往往將開發工具、數據庫、Web服務器等集成到一起,這就增加了高職院校學生理解的難度,加之Java的開發環境基本上是英文版本的,授課教師一定要詳細講解開發環境中的關鍵內容,力爭讓學生全面理解,為后續開發掃清一切障礙。
③ 設計用戶界面。采取先易后難、循序漸進的方法,先行安排界面設計。由于未涉及程序代碼的編寫,學生容易入門,不會感到有太大的困難,極易產生滿足感、成就感,以此激發進一步學習的熱情。
④ 編寫程序代碼。講授程序代碼編寫時,一定先要根據功能的要求,給出每部分的大體框架,然后再細化。這部分涉及Java程序設計的語法知識,應按照事先劃分好的子任務,根據學生的實際接受能力,用通俗的語言對每一個知識點進行講解。切忌貪多求全,盡量消除學生對編寫程序代碼的畏懼心理,讓他們產生自信心和自豪感,建立起很好的編程思想。
⑤ 學習結果的考核方式。傳統的學習考核方式已不適合使用項目驅動教學法授課的課程。在整個授課過程中,學生都在漸進式地完成屬于自己的項目部分,其結果如何直接反映了每位學生的學習態度、知識的掌握程度等。授課教師可對學生所作項目每個月檢查一次,作為平時成績;期末,要求學生對項目作演示匯報,由相關學科的教師組成專家組對每個項目評分,再結合學生相互評定的分數,作為學期總評成績的一部分,既體現了公平性,又體現出權威性。
3 采用項目教學法應注意的問題
項目教學法是行為引導型教學方法中的一種。在整個教學過程中既發揮了教師的主導作用又體現了學生的主體作用,使課堂教學的質量和效益得到大幅度的提高。但在具體使用時還應重點注意以下幾點:
3.1 項目的選擇與教材的處理
項目的選取是學習的關鍵。選取項目要以教學的內容為依據,可大可小,既要包含基本的教學知識點,又能調動學生解決問題的積極性,讓學生既能運用學過的知識,又可以創造發揮。教師和學生可以共同參與項目的選取。作為教師對知識點進行講解的實例,所選取的項目必須簡單和典型,以此實例作為學生初始學習的例子,便于學生對知識的遷移;另外,一個項目要有一定的難度,可促使學生學習和運用新的知識、技能,解決過去從未遇到過的實際問題。
現行的多數教材基本上是根據學科知識系統編寫的,教師實施項目教學法時,不能完全按照教材一章一節地講授,所以要求教師在進行教學時,必須重點選好示范項目,緊密結合教材內容,適當編寫講義,甚至編寫教材。
3.2 正確處理項目教學法與傳統教學法的關系
項目教學法并不是日常教學的全部,它只是教學環節中一個非常重要的部分卻不可能替代全部的正規教學,它側重于對學生能力的培養,在應用性比較強的課程教學中表現出一定的優勢;而傳統教學法具有完整的理論體系,所以學生對知識點和知識體系的掌握都比較牢固,這在理論課程的教學中表現出一定的優勢。在具體運用中兩者可以交叉使用,重視項目的完成,但不能忽略基礎知識的掌握;注意吸取傳統教學法的長處,把總目標細分成一個個小目標,每個小目標體現在項目中的小模塊上,從而讓學生建構一個系統的、全面的知識框架。
3.3 教師的角色定位
在教學過程中,教師的地位是經常變化的,當學生學習新技能時,教師是知識的傳授者,當學生運用已學技能時,教師是導航員,當學生自主活動時,教師是觀察員,當學生以小組進行活動時,教師又需要充當協調員。
教師應當創設學生學習的資源和協作學習的環境,讓學生有多種的機會在不同的情景下應用所學習的知識,充分運用現代教育技術的手段給學生提供多種學習的資源;協商突破各個難題,使學生群體的思維與智慧為每個學生所共享,從而達到全體學生共同完成意義的建構。教師應當做好對各項目的評估總結,在評估中要指出問題的所在及解決的方法,要總結比較各組的特點,引導他們學習別人的長處來改進和提高自己的設計,使學生的各種能力在評估中得到提高。教師應當發揮好協助作用,讓學生根據自身行為的信息來實現自我反饋。
4 結論
項目教學法把理論教學與實踐教學有機地結合起來,不僅有利于學生對書本上的理論知識加深理解和掌握,而且使他們懂得怎樣靈活應用這些知識。采用基于游戲的項目驅動教學法進行“Java程序設計”課程的教學,能激發學生的學習興趣,消除學生編寫程序的恐懼心理;能充分發掘學生的創造潛能,全面培養學生分析問題和解決問題的能力,提高學生對程序設計的意義建構,充分體現了職業院校教學“以能力為本位”的價值取向。
參考文獻:
[1]張建偉,陳琦. 從認知主義到建構主義[J].北京師范大學學報(社會科學版),1996(4).
[2]蔣志勇,張文. 項目教學法在《微機系統實現與維護》課程教學中的應用探索[J].桂林航天工業高等專科學校學報,2007(3).
[3]陶雙雙. 項目教學法應用中的體會與建議[J].中國職業技術教育,2007(10).
[4]姜大源. 職業教育學研究新論[M].北京:教育科學出版社,2007.