于樹科,李 揚,祁宏宇
(江蘇商貿職業學院藝術與電子信息學院,江蘇南通 226000)
2010 年《國家中長期教育改革和發展規劃綱要(2010-2010年)》和2012 年教育部印發的《國家教育事業發展第十二個五年規劃》中指出要“大力發展職業教育”“遵循技術技能人才成長規律,著力培養學生的職業技能”“重點培養產業轉型升級和企業技術創新需求的發展型、復合型和創新型的技術技能人才”。
C#程序設計課程直接面向企業實際應用需求,是我校高職高專計算機應用技術專業、軟件技術專業、物聯網應用技術專業所共有的一門高級語言類基礎課程,具有十分重要的地位和作用。該課程與C 語言程序設計課程緊密銜接,著重培養學生面對實際項目的需求分析能力、數據結構及算法設計能力、面向對象的程序編寫及調試能力等;并且該課程具有知識點豐富多樣、抽象性強、實踐性強等特點,需要培養學生使其具有較強的系統思維及邏輯思維能力。
傳統的以教師主導、理論講解為主的教學方法,在教學實踐過程中存在許多的問題與不足,很難適應C#程序設計課程的特點。為了解決以上問題,本文圍繞項目教學法(PBL,project-based learning)在C#程序設計課程教學過程中的應用,從項目任務的提出、項目目標的結構化分解、項目過程中知識點的應用和項目評估4 個方面進行詳細闡述[1]。
傳統的教學方法以教師作為教學過程中的主導,過多地依賴于書本,強調學習者的理解記憶能力,難以適應C#程序設計課程的特點,難以獲得良好的教學效果。
C#語言雖然取消了C 語言中的指針,刪除了一些復雜的語法元素,不允許直接對內存進行操作,但仍然具有較高的靈活性,表現為數據類型及運算符豐富多樣、語法靈活、類和方法眾多等。傳統的教學方法以教師為主導,多注重語法和知識點的講解,學生的學習過程顯得十分枯燥,課堂上學生不易集中精力,再加上學習內容具有較強的抽象性,學生難以理解,這些都極大增加了學生學習的畏難情緒,很難激發學生的學習積極性。
傳統的教學方法注重課程的學科性、理論性、系統性,而提供給學生實際動手的機會明顯不足,學生往往感覺實踐與教學是相對獨立的,并沒有使兩者緊密結合,從知識點到應用環節也沒有很好地融會貫通,使得學生的實踐應用能力難以得到充分鍛煉。但是,對于職業教育來說,應用型人才的培養才是高職教育的重要目標,教學無疑應以實踐能力的培養和技能的全方位訓練為主,理論教學需更好地為實踐服務。
當學生面對實際的企業應用時,能運用軟件工程的思維方式,系統理解程序設計的整體框架流程,就顯得至關重要。傳統的教學方法很難將軟件工程的思維框架充分表達,并被學生有效地吸收且深入地理解。學生通常經過一個學期的學習后仍然很難獨立面對具體的實際應用目標,承擔程序的開發和測試。
針對上述問題,我們采用項目教學方法來貫穿C#程序設計課程的始末,以學生為主導,從項目問題的提出、項目任務的結構化分解、項目過程中相關知識點的學習和應用、項目教學評價4 個階段來實施,增加學生的主動參與性,提高學生的學習積極性,為學生提供更多的實踐機會,使學生能更加系統、深入地理解程序設計的整體框架流程。
項目教學法是師生通過共同實施某項目而進行的教學活動[2]。教師將一個相對獨立的任務項目交予學生,讓學生完成信息的收集、方案的設計、實施以及完成后的評價。教師在整個教學過程中起咨詢、指導與答疑解惑的作用。學生是教學過程的主導者,需要了解和把握項目的每一個環節。
杜威首先提出了項目教學法的概念。基于項目的學習強調以學生為中心,鼓勵學生詢問并提煉問題,對項目進行設計和計劃,組織管理項目工作,并鼓勵團隊協作。支持項目教學法的理論基礎有建構主義學習理論、杜威的實用主義理論和情景學習理論[3]。建構主義學習理論認為學習的過程不是被動地接受知識,而是學習者基于已有的知識,在一定的情境下,通過對信息的搜集、整理、分析實現對新知識的探究性學習。杜威的實用主義教學理論提倡“做中學”,即通過完成工作任務的過程來獲得新的知識和技能。情境學習理論認為知識是情境化的,學習是個體與情境相互作用的過程。項目教學法通過設立項目任務來構建學習情境,由學生主動完成資料收集、整理、分析,細化項目任務,并在老師的咨詢或指導下完成主動的邊做邊學的整個過程。
項目教學法全面應用于C#程序設計課程需要從宏觀和微觀2 個方面把握。在宏觀方面,教師需要縱觀課程全局,熟悉課程整體架構,了解重點與難點的分布,設計出適當的綜合項目去覆蓋課程中的知識要點。在微觀方面,教師需要深入把握課程的各個知識模塊,并針對每個知識模塊設計具有針對性的微小型項目,推動課程的展開。接下來,本文將從宏觀和微觀兩個方面進行詳細闡述。
C#程序設計課程的總體架構可分為5 個主要部分:基本語法元素;結構化程序設計;界面設計;面向對象程序設計;測試。基本語法元素部分包括基本數據類型、運算符和表達式;結構化程序設計部分包括順序結構、選擇結構和循環結構;界面設計包括控件、窗體、GDI+圖形等;面向對象程序設計包括類和方法;測試部分包括異常處理及調試。在傳統的教學過程中,5 個部分的教學順次進行。使用項目教學法則可以在項目中有選擇性得涵蓋并融合這5 部分的內容或某幾部分的內容,項目的設計也可以從淺入深,從易到難。例如,綜合實訓項目圖片管理器、俄羅斯方塊游戲等。
以設計圖片管理器為例[4],項目教學法可分為5 個步驟:
(1)項目目標任務
制作一個圖片管理器,用戶可以使用它對圖片進行匪類管理。
(2)項目的需求分析
①需要良好的人機交互界面;
②對圖片分目錄管理,用戶可創建、刪除目錄;
③對目錄下的圖片以縮略圖的方式瀏覽,并可在瀏覽過程中刪除一張或多張圖片;
④同目錄圖片可以順序瀏覽,向上或向下切換,可以自動播放方式瀏覽。
(3)項目詳細分解
①界面設計:主窗體MainForm、創建目錄窗體FrmCreate-Folder、導入圖片窗體FrmLoadPic 等,并在各窗體上分布控件;
②類設計:表示圖片的類PicInfo 類、表示目錄的類Folder類;
③方法事件設計:例如窗體Load 事件,按鈕、復選框等控件事件等。
(4)項目實施與測試
代碼編寫、調試及測試。
(5)項目評價
該項目教學實施的整體過程如下:首先由教師根據學生學習情況及教學目標確定項目的總體任務目標;引導學生進行以小組為單位的討論及合作,進一步確定項目的需求;緊接著,引導學生或以學生為主體、教師作為咨詢者的方式,通過進一步深入分析,將項目進行細粒度的分解;由學生進行代碼編寫、調試及測試;最后,由教師引導學生進行項目評價,指出項目實施中做得好的地方,并指出存在的問題與不足,并可對項目進行進一步的深化、改進。
微觀設計是指針對某個具體的知識要點或課程模塊進行項目設計,例如,針對循環結構進行項目設計。這些小的項目設計貫穿整個教學過程,具有很強的靈活性,可以只覆蓋預期教學目標中的知識要點,也可以將覆蓋預期的知識要點與已學過的某些知識要點相結合。教師可根據學生的實際學習情況和教學進展及學時分配情況靈活設計一系列小型項目。
將項目教學法運用于C#程序設計課程的教學中,有助于提高學生的學習興趣,有效增強學生的實踐能力,并使學生對所學知識體系有了更加深入系統的理解,引導學生以團隊方式自主完成實際項目,遵循培養技術技能型人才的規律,取得了良好的教學效果。
[1]張學林,陳齊超,段珊,等.項目教學法在“C 語言課程設計”中的研究與應用[J].實驗技術與管理,2011(2):164-167.
[2]陳婷.C 語言程序設計實驗教學改革探究[J].實驗技術與管理,2010(10):182-184.
[3]徐涵.項目教學的理論基礎、基本特征及對教師的要求[J].職教論壇,2007(11):9-12.
[4]陳廣,林灃,倫墨華.C# 程序設計基礎教程與實訓[M].北京:北京大學出版社,2013.