蘭麗
摘 要: 通過分析項目驅動法教學模式的不足,根據(jù)C語言課程實踐性強的特點,提出了遞進式項目驅動教學法。該方法以若干個綜合項目為載體,將項目分解為多個循序漸進的子項目,把教學內容的重點難點由淺入深地分解到各個子項目中,并進行詳細的教學設計和實驗設計,使教學環(huán)節(jié)據(jù)此遞進式開展。將該方法應用于C語言教學實踐,能夠提高學生興趣和應用能力,有效地提升C程序設計課程的教學質量。
關鍵詞: 遞進式項目教學法; C語言; 項目教學; 教學改革
中圖分類號:G642 文獻標志碼:A 文章編號:1006-8228(2016)08-76-03
Abstract: By analyzing the shortcomings of project teaching mode, combining with the characteristic of strong practice of C language courses, this paper puts forward the gradually progressed project teaching method. The method makes some integrated projects as the teaching support, the projects are divided into some progressive sub-projects, and the difficulties and key points of teaching content is decomposed into each sub-project. At the same time, the detailed teaching design and experiment design are carried out. The teaching process is implemented from shallower to deeper. The teaching method is practiced on the C language teaching. The practice shows that the proposed teaching method can improve the students' interest and application ability, and effectively improve the teaching quality of C language course.
Key words: gradually progressed project teaching method; C language; project teaching; teaching reform
0 引言
項目驅動法,是師生通過實施一個完整的項目工作而進行的教學活動[1-2]。課程教學小組在2011級和2012級學生的C語言程序教學中嘗試以項目驅動的方式來教授課程,通過設計項目驅動來引入新知識的學習,但在實際實施過程中,效果卻是差強人意,究其原因有以下幾點。
⑴ 項目按章節(jié)組織,無連貫性
以項目驅動的教學模式所選項目一般是按照章節(jié)來進行[3],但是各章節(jié)使用的項目實例缺乏聯(lián)系,由于C語言概念、原理和規(guī)則繁多,若采用無內在邏輯聯(lián)系的項目實例不斷引入新的知識點和概念,會造成學生思維不連貫,導致“實例不實”。
⑵ 項目實例為語法而設計,與實際脫離
C語言語法多且細,為解釋語法而設計的相互之間無任何邏輯聯(lián)系的項目,并不能幫助學生理清知識脈絡、形成知識完整結構,當然更不能提高思維能力及應用能力。
⑶ 項目實例分解粗糙,無內在邏輯關系
在運用項目驅動法時,一個項目實際上可分為多個子任務,但是子任務的分解往往僅考慮功能因素,而忽視這些子任務所涉及的知識點之間的內在聯(lián)系。
因此,筆者在教學實踐中采用遞進式項目教學改進目前項目驅動法所存在的問題,該方法通過設計層層遞進、不斷深化的實際項目案例,逐步引出相關知識點,在任務驅動下,由淺入深,啟發(fā)引導學生循序漸進地編寫規(guī)模逐漸加大的程序,讓學生在不知不覺中逐步加深對C程序設計方法的了解和掌握。
1 遞進式項目教學法
“循序漸進”是遞進式項目教學的核心思想,教師從實際問題出發(fā),選取一個實際項目案例并將其分解成多個子任務,將重點和難點分散在各個子任務中,新知識點通過每一個子任務引入,每一個子任務都是前一個任務的深化,借助前后相關的任務驅動項目實例將相關知識點像珠鏈一樣串聯(lián)起來,形成邏輯清晰的脈絡和主線,案例內容緊密結合實踐,舉一反三,融會貫通,在任務驅動下,由淺入深、啟發(fā)引導學生循序漸進地編寫規(guī)模逐漸加大的程序,這樣做有利于讓學生對各個知識點細嚼慢咽、溫故知新,使學生在不知不覺中逐步加深對C程序設計方法的了解和掌握,避免教學“實例不實、為解釋語法而設計”。
遞進式項目教學法的關鍵是,章節(jié)之間所選項目要與內在聯(lián)系,對于每一格項目實例還需分解為多個子任務,且這些子任務能夠按照知識點難易程度逐步擴展。這樣,由于所選擇項目案例是緊密聯(lián)系實際的,而每個子任務包含的知識點也是前一個子任務知識點的擴展,每一個項目的完成都是為下一個項目奠定基礎。因此,學生總能從一個比較容易解決的已熟悉的內容進入到新知識點的學習,這樣可以極大的提高學生學習新知識和解決問題的自信心,通過每個簡單子任務的求解,不斷體會到掌握新知識,以及知識為我所用的成就感,進而將這種成就感轉化為源源不斷的動力和源泉,進而形成一種良性循環(huán)的學習過程。
2 遞進式項目教學法的教學設計
2.1 遞進式項目的設計
C程序設計課程的教學中所設計的遞進式項目如表1所示,項目的設計由淺入深,循序漸進,每個項目案例的設計所涵蓋的知識點和難點不同,但又相互關聯(lián),層層遞進。項目案例1主要為使學生掌握C語言語法基礎及順序結構而設計,項目案例2主要是針對選擇結構程序及循環(huán)結構,項目案例3主要涵蓋了數(shù)組、函數(shù)、結構體數(shù)組及指針的知識點。而第1和第2個項目案例所涉及的知識點及解決問題的方法,在項目案例3都將再次深入使用。這樣,既化解了難點,又使前后知識點遙相呼應,各個擊破,有利于學生“細嚼慢咽、溫故知新”。
2.2 遞進式項目的任務分解
項目子任務的分解是遞進式項目法能否促進教學的關鍵,以判定學生成績等級這個項目案例為例,這種循序漸進式的教學過程如下。
任務1:利用這個案例講解多分支選擇結構和條件語句。
編寫程序,讓用戶輸入一個學生的數(shù)學課程成績(浮點數(shù)或整數(shù)),要求計算機判斷并輸出該成績的等級:“優(yōu)秀”、“良好”、“中等”、“及格”和“不及格”,其中90分以上為優(yōu)秀,80~89分為良好,70~79分為中等,60~69分為及格,60分以下為不及格。
任務2:利用這個案例講解循環(huán)結構和循環(huán)語句。
編寫程序,先提示用戶輸入學生人數(shù),然后依次輸入所有學生的數(shù)學課程成績(浮點數(shù)或整數(shù)),每輸入一名學生的成績,要求計算機判斷并輸出該成績的等級:“優(yōu)秀”、“良好”、“中等”、“及格”和“不及格”,其中90分以上為優(yōu)秀,80~89分為良好,70~79分為中等,60~69分為及格,60分以下為不及格。
任務3:利用這個案例講解嵌套的循環(huán)。
編寫程序,先提示用戶輸入學生人數(shù),然后依次輸入所有學生的三門課程:數(shù)學、英語、C程序設計課程成績(浮點數(shù)或整數(shù)),每輸入一名學生的三門課程成績,要求計算機判斷并輸出該成績的等級:“優(yōu)秀”、“良好”、“中等”、“及格”和“不及格”,其中90分以上為優(yōu)秀,80~89分為良好,70~79分為中等,60~69分為及格,60分以下為不及格。
通過上面這個教學項目案例,將選擇結構、循環(huán)結構、嵌套的循環(huán)結構這些相關的知識點串聯(lián)起來,做到知識點之間環(huán)換相扣、融會貫通。
在課堂講授完這個教學項目案例之后,讓學生在實驗課上再對其進行舉一反三,用類似的方法,完成一個小學生計算機輔助教學系統(tǒng)。具體的設計是:
任務1—隨機出一道乘法題,直到答對為止。
任務2—隨機出一道乘法題,最多給3次機會。
任務3—隨機出10道乘法題,計算總分和回答正確率。
任務4—隨機出10道四則運算,計算總分和回答正確率。
任務5—隨機出10道四則運算題,回答正確率不滿足要求則重做。
任務6—隨機出10道四則運算題,回答正確率不滿足要求則重做,輸出不同的個性化評價。
其他項目案例的分解思想與判定成績等級案例相似,在此不一一贅述。
2.3 遞進式項目課堂實施的設計
利用遞進式項目授課時,課堂實施的步驟要逐層展開。
⑴ 提問引出任務。在授課過程中,采用現(xiàn)場編程的方法,不是直接講授項目案例的正確答案,而是一個任務一個任務的解決,上一個任務完成,通過提出新問題的方式引入下一個任務,例如,在求學生成績等級這個項目案例的第一個任務完成時,教師可提出問題“若現(xiàn)在需判定多名同學的數(shù)學成績的等級”,引起同學思考,進而引入循環(huán)的概念及循環(huán)的實現(xiàn)方法。
⑵ 任務分析。在任務解決的過程中,不斷從錯誤程序的分析入手,通過演示錯誤程序的分析和調試過程,帶領學生一起分析查找程序中的錯誤,講解程序設計的基本方法、程序測試方法以及程序調試和排錯方法,啟發(fā)引導學生發(fā)現(xiàn)錯誤發(fā)生的原因、實質、排錯方法及解決對策,這樣才能給學生留下更深刻的印象,不僅利于培養(yǎng)學生的分析、思考和解決實際問題的能力,而且還能充分調動學生課堂學習的積極性。
3 遞進式課程實驗設計
實踐教學對于C語言的教學至關重要,直接關系到課程教學質量,為了配合遞進式項目課堂教學,在實踐教學過程中,我們設計了如下遞進的實驗項目表,來使學生循序漸進地掌握C語言語法及應用方法,鞏固上課所學知識。
實驗內容設計兼具趣味性和實用性,以鞏固和綜合運用主要知識點為主線,采用循序漸進、任務驅動方式,指導學生先從一個小規(guī)模的程序入手,通過逐漸增加任務的難度,來分步驟完成一個規(guī)模較的實驗程序的設計。
4 結束語
本文探討了將遞進式項目教學法“循序漸進”的核心思想應用于C語言程序設計課堂和實踐教學過程。由于該教學方法能夠充分尊重學生學習和思維的特點,因此在2013和2014級學生教學改革實踐中,取得了良好的教學效果,得到了學生的肯定,學生的考試成績明顯提高,參加計算機等級考試通過率均有較大提升。實踐證明,遞進式項目教學在提高學生學習興趣、主動性及培養(yǎng)“計算思維”能力方面都大有裨益。下一步將在全課程組推廣,并不斷改進與完善。
參考文獻(References):
[1] 張悅.項目驅動教學法在C語言課程中的應用[J].職業(yè)教育研究,2007.2:164
[2] 趙用熹,黃云峰.基于項目驅動法的單片機課程體系設計[J].中國電力教育,2013.4:55-56
[3] 趙寧. 基于遞進式案例教學法的Java課程教學改革研究[J].計算機教育,2013.23:73-76