■王法遷
機房實踐教學問題簡議
■王法遷

《C語言程序設計》課程涉及的知識面一般包括C語言的語法、面向對象編程、常用API、異常處理、GUI編程等等內容,有相當的理論知識需要講解清楚。此外,一門編程語言需要經過大量的實踐,來逐漸熟練語言的使用,掌握其編程方法和技巧。鑒于此,一般情況下,會將理論課安排在多媒體教室講授,實踐課安排在機房讓學生進行上機實踐。但這種對理論教學和實踐教學的硬性劃分卻帶來了一些問題:
1.多媒體教室理論教學存在的問題
在多媒體教室講授理論知識部分時,多半采取講授知識加演示例題的模式。整個授課過程,基本上由放映課件PPT、演示例題和分析代碼組成,其中穿插與學生的互動。
但是,即使考慮到了為提高學生的積極性而采用了比較具有實用性、趣味性的示例,增強了與學生的互動,而對于電大學生而言,整個課堂教學仍然會顯得理論教學時間過長,枯燥無味,學生的注意力難以一直保持集中。
再者,教師在講授過程中,放映課件、演示程序以及分析代碼時,學生都是觀看投影,容易產生一種距離感,找不到重點,或是教師演示速度稍微快了一點,學生就容易跟不上。
最后,多媒體教室進行理論教學時,學生基本上沒有機會進行實踐,剛學到的知識和技術,可能得到下一次上機實踐課時才能應用,難保有相當的學生在實踐之前就遺忘了所學的內容,教學效果自然打了折扣。
2.機房實踐教學存在的問題
在多媒體教室講授理論、機房實踐演練模式下,上機實踐課主要是教師布置實踐任務,學生獨立完成實踐,在驗收實踐成果的過程中如果發現共性問題,再找時間集中解決問題,這樣的實踐課也存在一些問題。
首先,理論知識以及示例在理論課時已經講過,只會回顧一下重點,不會重復講解,因此,總有部分學生因為遺忘了之前講授的內容,在缺少理論知識做基礎、沒有示例程序做鋪墊的情況下,這些學生就難以獨立編寫程序,常常會覺得迷惘,不知該如何下手。
其次,在驗收實踐成果的階段去發現問題,然后再找時間解決問題,這個周期較長,不利于收到較好的效果。
所以將《C語言程序設計》的課堂教學劃分為理論課和實踐課兩部分,沒有很好地將理論與實踐結合起來,反而有些理論與實踐脫節的趨勢,難以達到很好的教學效果。
為尋求更有效的課堂教學模式,筆者在自己近年的教學實踐過程中進行了反思和總結,對《C語言程序設計》的課堂教學提出下述建議:
課堂教學的原則。將理論與實踐融合到一起,使學生在理解了必要的理論知識基礎上,及時進行實踐應用,掌握實踐技能。一步一個腳印,每次課堂教學都擬定一個教學目標,使得學生每一次課都有切實的收獲。
教學場所的選擇。應選擇同時具備多媒體教學功能和實踐功能的多媒體機房。教師和學生每人一臺計算機,具備多媒體教學軟件,能將教師機的屏幕廣播至每一臺學生機。講授過程中學生面對自己的屏幕就可以跟隨教師的講解,近距離清晰地看到教師的課件、程序的演示等等,能在學生頭腦中形成更鮮明更深刻的印象。在課內,學生就可以及時動手實踐,消化吸收所學內容,及時掌握實踐技能。
課堂教學過程的設計。對于《C語言程序設計》這樣實踐性較強的課程,建議采用如下案例式教學模式:(圖一)
以《C語言程序設計》的一次課為例,授課內容為C語言GUI程序設計之Swing程序設計的文本組件的應用。擬定課堂教學目標:Swing中常用文本組件的應用。確定授課場所:具備多媒體教學軟件的機房。
授課具體內容如下:
1)擺案例:列舉文本組件在GUI程序中的實際應用,典型的如登陸窗體,用戶注冊資料的填寫等等,可以引導學生思考類似案例,激發學生的好奇心從而增強學習動力。
圖C語言程序設計課堂教學過程設計
擺案例?演示案例?初步分析案例的實現?講解涉及的知識?詳細分析案例:從設計到代碼實現?學生實踐?發現問題、解決問題?小結?為學生課后的擴展學習提供幫助
2)演示案例:以登陸窗體的創建為例,演示程序的運行,讓學生知道一個登陸窗體應該是什么樣的,運行效果是怎樣的,從而引導學生思考如何設計實現這樣的效果。演示案例時要注意放慢速度,確保學生能看清程序運行的過程。對于案例的演示,教師是很熟練的,但學生是第一次看到這個程序的運行,他們并不知道下一步要做什么或者出現什么,因此,教師在演示案例時一定要留出時間給學生理解和消化。
3)初步分析案例的實現:結合登陸窗體的演示,分析該窗體的界面組成和功能需求。
4)講解涉及的知識:重點講解界面上文本組件的使用,常用的操作方法等等。
5)詳細分析案例:從登陸窗體的界面設計到功能實現,詳細分析其設計過程和編碼過程,在分析過程中注意給學生灌輸C語言GUI程序設計的基本流程、編碼方式等思想和技巧,使學生逐步熟悉C語言GUI程序設計技巧。
6)學生實踐:布置實踐任務,讓學生能夠即學即用,盡量當堂掌握所學知識,達到較好的教學效果。實踐任務的設計要注意難度的把握,由淺入深地逐步鍛煉學生運用知識的能力,比如說可以將演示案例適當調整要求以后再讓學生完成。
7)發現問題、解決問題:在學生動手實踐過程中,教師要觀察學生的完成情況,注意發現共性問題,并及時予以糾正,將今后出現該種錯誤的幾率盡量降到最低。
8)小結:適當回顧本次課的重點和難點,提出本次課的目標,讓學生明確該次課應該掌握哪些知識和技巧。那么,即使有學生課內沒有達到這一目標,他在課后仍然可以朝這個目標努力,而不至于下課后就失去了學習的重點,久而久之可能就越掉越遠了。
9)為學生課后的擴展學習提供幫助:這個環節可以貫穿在課堂教學過程中,比如說講解涉及的知識時不可能把一個組件的所有用法都講到,這個時候就可以引導學生閱讀C語言docs,瀏覽和學習各種組件的方法,這對C語言的學習是非常必要和有益的;在實踐環節,除了難度適宜的實踐以外,還可以設計一些稍有難度或涉及到課外知識的實踐,作為學生課后拓展學習之用,這樣可以讓學得相對較好的同學得到更好的鍛煉,也可以進一步激發學生學習的積極性。
(作者單位:武漢市廣播電視大學)
責任編輯 張 泉