周 雪
?
程序設計實踐強化教學模式研究
周 雪
(廈門軟件職業技術學院,福建 廈門 361000)
秉承以學生為中心,教師為主導,因材施教,因需施教,理論教學觸入實踐訓練,強調應用能力培養的實踐性教學思想,從教學內容的選取、組織形式、案例貫穿、教學環境、教學考核等多個環節嘗試教學改革,討論如何以“強化實踐性”為出發點設計課堂教學過程,并構建與之相匹配的教學模式,通過教學實踐,教學效果良好。
程序設計;教學模式;實踐性教學;案例教學
C語言程序設計是大學普遍開設的一門重要基礎課程,在日常工作中也得到廣泛的應用。作為入門基礎課程,絕大多數高校都將其安排在大學一年級。但是,大一的學生大多缺乏對程序設計的概念認知,分析綜合能力基礎較差 ,因此對很多同學來說,程序設計這門課顯得很深奧。在課堂教學中,如何以“強化實踐性”為出發點設計教學過程,組織一個合適的教學體系,構建與之相匹配的教學模式,這是擺在我們面前的新課題。多年來,筆者一直從事C語言程序設計課程教學工作,在教學中根據學生的個性特點與需要,不斷調整教學方法,理論教學融入實踐訓練,注重培養學生的實踐應用能力。經過幾年的教學實踐取得較好效果。
(一)從程序設計“教什么”與“怎么教”入手
一個成功的程序設計教師關鍵在于對教學內容(教什么)和教學方法(怎么教)進行合理結合,但由于客觀情況千差萬別,沒有任何一種教學模式適用所有人。在程序設計課程教學中,傳統的教學方法一般按照知識點的邏輯順序來講述。如C語言程序設計,一般先講解程序設計基礎知識,再闡述程序設計的基本控制結構、數組、過程、文件讀寫等內容,最后講述數據庫應用。教學中,最關鍵的是要在實際編程過程中掌握正確的語法規則。
傳統的處理方式是“語法驅動”,將語法分成若干部分,按一定的順序講解語法并用示例說明該語法規則的使用。其優點是比較“自然”,順理成章。缺點是學生“只見樹木,不見森林”[1],學完課程后大部分學生只能勉強應付選擇題,獨立的編程能力幾乎為零,因為在整個教學過程中穿插的實例,都是為了教語法而舉例。
另一種處理方式是“任務驅動”,按由小到大、由易到難的原則講解一系列程序設計實例,直接學習編程方法,碰到什么講什么、學什么。這種方法的缺陷是不能很好地處理系統知識和實際應用細節的矛盾。
教學實踐中,筆者采用“任務驅動為主,語法驅動為輔”[2]的教學方式。通過情景設置提出問題,然后通過演示給學生看,讓學生對要學習的知識有感性認識。在此基礎上引出學習目標任務,再詳細分析完成該任務的具體方法、步驟及涉及到的一些語法規則和相關注意事項。最后再利用相關知識點解決一些案例,加深學生對知識點的理解與掌握。比如,在學習“循環”控制語句時,可以例舉一些簡單的任務:“求從1到100的和”、“從1到n的和”、“求100個任意數的和”、“求n個任意數的和”等等[3],讓學生掌握循環語句的使用,怎樣使用循環變量,怎樣控制循環條件,及每種循環的區別等等。這種教學思路,特別是對于難點的強化教學,十分奏效。
(二)案例教學貫穿整個教學過程
在程序設計案例教學過程中引入現實生活中的案例,進而設置適當任務,圍繞任務組織引導學生分析解決問題,找出解決問題的算法。在實現算法的同時,詳細講解程序設計中相關的知識點和注意事項,提高學生學習興趣。通過案例教學,使學生能夠靈活應用程序設計的相關理論,提高程序設計應用能力。筆者主張從第一堂課開始就讓學生接觸實踐性內容。實際教學中,筆者采用“小案例教學”和“大案例教學”相結合的方法,取得了較好效果。
1.教學前段的“小案例”教學
教學前段指程序設計基礎、基本控制結構、數組以及部分常用控件的教學。學生剛剛起步,重在模仿,可以讓學生采取類似于小學生描紅的辦法,通過一些貼近教學內容的、短小精悍的案例,經過多次重復的編輯、編譯和解釋執行過程,熟悉語言環境和人機對話的感覺。之所以強調“小案例”,主要是控制案例中既要涉及一定量的知識點,使學生必須“瞻前顧后”,把之前所學的知識串起來,但又不要涉及過多的知識點,避免因起步階段內容不熟、基礎不牢而顧此失彼。
2.教學后段的“大案例”教學
教學前段的案例大部分可以用短小、簡單、孤立的代碼完成[4],其與現實生活中應用還有很大差距。在教學后段講授過程、指針、結構體、文件讀寫等教學內容時,學生具備了教學前段知識的積累,有了一定的程序設計思路,因此在每一章結束后提供一個大項目的實例片段,各個實例片段既相互獨立又相互貫通,隨著后續所學內容的增多,逐步讓學生補充和完善其程序的功能,最終完成一個綜合實例。在這個過程中可以使學生切實認識到通過程序設計語言如何解決問題以及解決什么樣的問題等,進而對程序設計的教學目標更加明確,使學生對本課程的學習欲望增強,也為后續課程打下良好基礎。
用一個大案例貫穿所有知識,難免會遺漏一些零碎的知識點和一些典型的算法。對于這個問題,可以通過精心設計一些課后作業來彌補,同時設計的作業要有趣味性和實用性,以便保持學生的學習興趣。
程序設計課程教學由理論與實踐兩個環節組成。通常在多媒體教室授課,在機房上機。這種形式往往導致學生實際動手操作遠少于教師一言堂的授課學時,嚴重阻礙了對學生獨立編程能力的培養。另一種形式是將整個教學環節轉移到配備多功能設施的機房進行,教師可以根據教學進程,教師邊講學生邊練,適時調節課堂節奏。缺點是課堂秩序較難把控,學生不聽課,獨自上網甚至玩游戲而未能及時發現的情況常常發生,實際教學效果并沒有預料的理想。
目前仍采用多媒體教室授課、機房上機實踐相結合的做法。為了強化實踐性,特別在課堂教學電子教案制作和借助網絡教學環境實施課外輔導兩方面下功夫。
(一)潛心研制高質量電子教案
制作一門課程的電子教案是確定教學內容、研究教學方法、理清講課思路的過程,只有制作高質量的電子教案[5],才能進一步保障高質量的教學效果。
隨著多媒體教學的普及,電子教案已成為課堂教學的一個核心要素。要注意的是,課件不是將書本搬上屏幕,不是書本的再現。否則,教師不過是帶著學生在課堂上念書而已。課件應當是展示思維過程、展示計算過程、歸納設計思維、演化出結論的舞臺。將抽象思維變成形象化的情景,將看不見的東西展示在學生的視野中。
開發較為生動的課堂教學課件,采用一些動畫來動態演示算法步驟和控制語句的執行過程。如數組元素、排序、過程調用、遞歸等,生動的演示可將較為復雜的動態執行過程直觀地展示給學生,使整個教學過程在簡單明了、師生積極互動的氛圍中進行。
(二)通過網絡教學環境提高實踐性
教學環境在合理分配課時、協調各部分的教學內容、強化實踐性教學和提高學生應用能力等方面也有重要作用。首先,課內的上機實驗時數,必須保證教師到位,保質保量完成計劃內的若干驗證性和設計性實驗。實驗課的輔導工作由教師承擔,也可以分小組,由前期已有一定基礎的組長完成部分輔導工作,減輕教師壓力,也鍛煉學生自身的能力。其次,通過網絡教學的輔助方法,進一步提高教學效果。我們上傳的網絡資源中包括課程的電子教案、作業中的問題與參考答案、上機實踐素材、復習資料等,拓寬了學生的學習空間。學生在課外獨立、自由設計的綜合性作品,可以上傳到網絡,由教師進行點評并作為平時成績的一部分,以此激勵學生積極實踐,提高創新意識。
就我們學校目前的狀況看,網絡課堂還處于初級階段,雖然在展示文字的基礎上融入了視頻音頻,可以收發作業、提問與回答、論壇發帖等,但這個虛擬世界畢竟與現實世界相去甚遠,與學生的交互、溝通還達不到現實世界的情景。隨著我校信息化校園的不斷完善、異地教學平臺的構建和推廣使用,網絡教學環境可以大大地提高教學效率。
程序設計課程在大一設置,但是,他們在高中階段所應用的學習方法卻正好與程序設計的要求幾乎是對立的,因為他們在高中階段一般是先被灌輸某個數學定理和公式,再利用這些公式和定理推導出別的定理和公式或用這些定理和公式來解答日常數學問題。從邏輯方法上來講,他們更多的是應用分析和演繹的方法,而程序設計算法的本質上是一種綜合和歸納,與分析和演繹的算法正好相反。
如何讓學生改變其固有的邏輯方法,盡快形成新的思維習慣,這是高質量程序設計的關鍵。教學方法要改革,教學評價體系的改革也尤為重要。傳統的閉卷考試(尤其是試卷中的選擇題,要一改傳統的“斷章取義”式的出題法),只能鼓勵學生沿用過去的死記硬背的老方法,默許學生用孤立的方式去理解語法規則。若改用網絡上的程序設計考試來代替書面閉卷考試,就是告訴學生:程序設計技術只能來自實踐!
一個好的教學評價體系就是按照教學大綱要求,應用好的教學方法和手段來激發學生的學習積極性,提高教學效果,完成教學目標的要求。通過合理設計相關考核程序和環節,了解學生的學習狀況,及時調整教學進度,解決教學中遇到的問題,以達到最佳教學效果。我們對高級語言程序設計課程考核模式是:考核總評成績按平時占20%、期末考試占80%的比例分配。其中,平時考核貫穿于整個16周的教學中,包括出勤、作業、上機實踐、網上上傳本人作品等情況。期末考試形式為統一參加省計算機應用水平無紙化考試,題型以設計題和編程題為主,輔以少量的選擇題,在機房通過電腦實際操作調試完成考試。采用此考核模式既檢驗了學生對理論知識的認知程度,也考察出學生在遇到問題時自行分析和處理的綜合能力。避免忽視平時學生表現,忽視學生實踐能力培養,忽視學生上機調試等不良現象[6]。
教材是貫徹教育思想、保障教學要求和實現教學效果的基礎,也是教學改革中一項重要的基本建設內容[7]。我們根據以上教學模式的研究經驗,編寫了具有應用型大學特色的“C程序設計案例教程”、“C程序設計學習指導與上機實踐”等教材,以案例教學為主線,從內容組織和編排上強化了實踐性教學。
程序設計課程有自身的特點,內容多、學時少,不但要給學生傳授許多理論知識,而且還要不斷提高學生實際編程的能力。教材精心組織安排了一系列典型的、具有可操作性和一定實用價值的案例,把課程中所要掌握的概念、知識點、程序設計思想和方法、教學理念等貫穿其中,形成一個完整、科學的教學體系。教材提供了適于啟發式教學的電子教案,達到了學生容易學、實踐能力明顯提高的預期效果。
[1]趙斌,郝紅旗.《高級語言程序設計》課程教學研究[J].科技廣場,2010(10):209-211.
[2]刑小英.“C語言程序設計”項目課程的教學設計[J].福建電腦,2009,25(1):208.
[3]高維春.C語言程序設計項目教程[M].人民郵電出版社,2010.
[4]劉賢鋒.高職“C語言程序設計”課程整體教學設計探討[J].中國電力教育,2009(15):98-99.
[5]文海英,梁小芝.《C語言程序設計》課程教學改革探索與實踐[J].現代計算機(專業版),2012(11):50-52.
[6]周汝雁,陳慶海,黃冬梅.計算機應用基礎課程考核機制探索[J].計算機教育,2009(10):90-92.
[8]盧照,南麗麗,楊秀榮.《C語言程序設計》教學中問題和改進方法的探討[J].現代計算機(專業版),2012(1):34-36.
(責任編輯 李建武)
Research on Strengthening Teaching Mode of Programming Practice
ZHOU Xue
(Xiamen Institute of Software Technology, Xiamen, Fujian 361024, China)
Adhering to the teaching ideas of student-centered, teacher led, teaching in accordance with their aptitude and the needs, theory teaching involved in practice, emphasizing the practical ability cultivation, the author tries teaching reform from the aspects of selection of teaching content, organization form, the cases, teaching environment, teaching evaluation, discussing how to start from strengthening the practice to design classroom teaching process, and construct the matching mode of teaching. Through the teaching practice, the teaching effect is good.
program design; teaching mode; practical teaching; case teaching
G712
A
1008—6129(2016)06—0006—04
2016—10—15
周雪(1979—),女,吉林梅河口人,廈門軟件職業技術學院,講師。