劉紅敏 趙山林
(中北大學(xué) 電子與計算機(jī)科學(xué)技術(shù)學(xué)院,山西 太原 030051)
摘要:本文從教學(xué)實踐出發(fā),分析了當(dāng)前非計算機(jī)專業(yè)“C語言程序設(shè)計”教學(xué)中存在的問題。提出了在課程教學(xué)中如何采用案例教學(xué)法、基于認(rèn)知主義的內(nèi)容設(shè)計優(yōu)化以及以行動導(dǎo)向?qū)W習(xí)為指導(dǎo)原則來設(shè)計和組織課堂和實驗教學(xué)的改革措施,并應(yīng)用于教學(xué)實踐。實踐證明改革措施是非常有效的。
關(guān)鍵詞:教學(xué)改革;教學(xué)模式;案例教學(xué);認(rèn)知主義;行動導(dǎo)向?qū)W習(xí)
中圖分類號:G642 文獻(xiàn)標(biāo)識碼:A
1前言
“C語言程序設(shè)計”作為全國大部分高校非計算機(jī)專業(yè)的一門公共基礎(chǔ)課,在課程教學(xué)中,許多學(xué)生都認(rèn)為該課程涉及的概念比較復(fù)雜、規(guī)則繁多、使用靈活、容易出錯,學(xué)習(xí)起來普遍感到困難。特別是大多數(shù)高校將C語言作為非計算機(jī)專業(yè)學(xué)生進(jìn)校后首先接觸的第一門公共基礎(chǔ)課,這種現(xiàn)象尤為明顯。為此作者從自身多年教學(xué)實踐出發(fā),以培養(yǎng)學(xué)生用計算機(jī)解決問題的思維能力為基本點,對該課程的教學(xué)過程進(jìn)行了大膽的改革嘗試。
2傳統(tǒng)教學(xué)中存在的問題
筆者從事了多年的“C語言程序設(shè)計”教學(xué),發(fā)現(xiàn)傳統(tǒng)教學(xué)中教學(xué)效果總是不理想,因此對此進(jìn)行了深入分析,發(fā)現(xiàn)在傳統(tǒng)的“C語言程序設(shè)計”教學(xué)中存在以下幾個主要問題。
首先,教師將教學(xué)目標(biāo)主要放在了讓學(xué)生掌握語法規(guī)則上,而問題分析和算法思想等程序設(shè)計能力和素質(zhì)的培養(yǎng)不夠,導(dǎo)致學(xué)生學(xué)習(xí)積極性不高和缺乏對實際問題進(jìn)行分析、編程和處理的能力。
其次,傳統(tǒng)的教學(xué)過程與學(xué)生認(rèn)知過程存在偏差。目前,國內(nèi)的大多數(shù)C語言教材都考慮到知識結(jié)構(gòu)的系統(tǒng)性和全面性,大致按“算法-數(shù)據(jù)類型-基本結(jié)構(gòu)-數(shù)組-函數(shù)-指針-文件”的順序來組織教材。教師按照教材編排的內(nèi)容和順序,按部就班地進(jìn)行教學(xué)工作。這種組織方式雖然依邏輯思維方式進(jìn)行了歸類,但難點還是較為集中,跨度大,學(xué)生一下子很難接受。由于學(xué)生沒有編程基礎(chǔ),講授算法和數(shù)據(jù)類型時只能講的多,分析的少,“填鴨”式的將概念灌輸給學(xué)生,致使學(xué)生覺得C語言很難。隨后章節(jié)的講授也是先介紹C語言語法規(guī)則,然后再針對所學(xué)的語法規(guī)則講授例子,例子以語法應(yīng)用為重點,較少涉及具體的C語言編程應(yīng)用。這種從理論到實踐、理論和實踐脫節(jié)的教學(xué)過程不僅難以激發(fā)學(xué)生的學(xué)習(xí)興趣,導(dǎo)致課程知識很難被學(xué)生全面掌握和靈活運用。
最后,傳統(tǒng)實驗教學(xué)效果有待提高。C 語言的傳統(tǒng)實驗教學(xué)以語法為主線,實驗課多數(shù)是強(qiáng)調(diào)語法語句練習(xí),由于語法的單調(diào)枯燥容易使學(xué)生陷入到冗繁的語法規(guī)則之中而逐漸失去學(xué)習(xí)興趣。我們應(yīng)該認(rèn)識到學(xué)習(xí)語法不是我們學(xué)習(xí)程序設(shè)計語言的真正目的。程序設(shè)計教學(xué)的目的是培養(yǎng)學(xué)生分析問題和解決問題的能力,是在掌握語法的基礎(chǔ)上,通過上機(jī)實踐,真正地學(xué)會使用計算機(jī)語言來解決實際問題,培養(yǎng)學(xué)生的程序設(shè)計思想。
3C語言教學(xué)改革的探索
3.1改革教學(xué)模式,推行案例教學(xué)法等啟發(fā)式教學(xué)方法
針對傳統(tǒng)課堂教學(xué)中存在的問題,我們決心跳出以語法教學(xué)為主線的教學(xué)模式,吸收國外計算機(jī)課程教學(xué)的優(yōu)點,積極準(zhǔn)備推行個案分析,將復(fù)雜枯燥的語法知識分解到一個個生動實用的程序?qū)嵗?。在教學(xué)過程中以程序設(shè)計為主線進(jìn)行教學(xué),有意識地淡化計算機(jī)語言本身語法規(guī)則的介紹,而重點介紹程序設(shè)計方法,在分析程序和程序設(shè)計中熟悉語法、應(yīng)用語句,并把軟件工程學(xué)的思想貫穿于算法分析和程序設(shè)計的過程中。例如課程開始先提出溫度轉(zhuǎn)換和兩個瓶中的油水交換等現(xiàn)實中的問題并以程序來解決,程序中涉及到的整形和字符型等數(shù)據(jù)類型和賦值和算術(shù)等表達(dá)式做一講解,經(jīng)過多個程序的示例,學(xué)生對C程序的基本結(jié)構(gòu)和其中的語法知識有了一個了解,三種基本結(jié)構(gòu)都介紹以后,再將語法知識做一個總結(jié),學(xué)生很容易接受。
3.2基于認(rèn)知主義的內(nèi)容設(shè)計優(yōu)化
認(rèn)知主義強(qiáng)調(diào)人的認(rèn)知不是由外界刺激直接給予的,而是由外界刺激和認(rèn)知主體內(nèi)部心理過程相互作用的結(jié)果(內(nèi)部心理過程包括態(tài)度、需要、興趣和愛好以及原有的認(rèn)知結(jié)構(gòu)即過去的知識經(jīng)驗)。學(xué)習(xí)過程是每個人根據(jù)自己的態(tài)度、需要和興趣愛好并利用過去的知識經(jīng)驗對當(dāng)前的外界刺激(如教學(xué)內(nèi)容)主動做出的有選擇的信息加工過程。學(xué)生不再是外界刺激的被動“接收器”,而是主動地對外界刺激所提供信息進(jìn)行選擇性加工的主體。認(rèn)知主義強(qiáng)調(diào)教學(xué)設(shè)計首先要充分考慮學(xué)習(xí)者的認(rèn)知特征,并把重點放在教學(xué)組織策略上。強(qiáng)調(diào)教學(xué)內(nèi)容的組織和傳遞策略必須充分考慮學(xué)生原有的認(rèn)知結(jié)構(gòu)。
在課堂教學(xué)過程中,遵循學(xué)生認(rèn)知過程,對教學(xué)內(nèi)容重新進(jìn)行歸納,將難點再次分散,以縮小臺階,達(dá)到循序漸進(jìn)。例如,C語言數(shù)據(jù)類型、運算符、表達(dá)式種類繁多,放在一起講授,學(xué)生學(xué)習(xí)起來難度較大,我們將改變以往教學(xué)內(nèi)容講授順序,首先介紹程序結(jié)構(gòu),使學(xué)生對C語言程序結(jié)構(gòu)有個大致了解,然后通過一個簡單的求兩個數(shù)的和的例子介紹常用的常量形式和算術(shù)運算符以及相關(guān)的表達(dá)式,通過求絕對值的例子介紹關(guān)系運算等,使學(xué)生學(xué)習(xí)起來沒有想象中的那么難。緊接著再教學(xué)生編寫簡單的、實用的C程序設(shè)計,然后趁機(jī)引入基本輸入、輸出函數(shù)就順理成章了。這樣一來臺階小了,學(xué)生的信心也增加許多,學(xué)習(xí)積極性很快就被提高起來。對于生硬的語言敘述,課堂上改用生動的比喻,進(jìn)行詳盡引導(dǎo)。
程序設(shè)計方法的傳授是C 語言程序設(shè)計課程的另一重點。在教學(xué)中,不僅要貫徹自頂向下逐步求精的面向過程的程序設(shè)計思想,還要盡可能采用程序框圖等程序設(shè)計工具,來說明程序設(shè)計的過程和算法,來培養(yǎng)學(xué)生程序設(shè)計的能力和素質(zhì)。
3.3教學(xué)手段改革
傳統(tǒng)教學(xué)手段中,用粉筆書寫板書的時候,教師可能會根據(jù)學(xué)生的隨堂反應(yīng),有機(jī)而又靈活地掌握分寸,并且可能以恰如其分的比喻,幽默風(fēng)趣的語言,以姿勢助說話等多種形式把對課程的理解表達(dá)得淋漓盡致,抓住學(xué)生跟隨自己一步一步領(lǐng)會教材。但是,程序設(shè)計課程中問題分析、算法設(shè)計及程序都要在黑板上書寫,很難展現(xiàn)題目直接的銜接,并且課程進(jìn)度受到很大影響。
使用多媒體教室,省去了粉筆在黑板上的書寫時間,以計算機(jī)技術(shù)為核心的現(xiàn)代化教學(xué)手段至少比板書教學(xué)節(jié)省總學(xué)時的三分之一,但是現(xiàn)代化的CAI教學(xué)在很多情況下只能播放事先輯錄好了的講稿、教案或課件,在一個光線黑暗的教室里,教師無法看到學(xué)生的表情。CAI教學(xué)不足之處就是容易把板書教學(xué)可能實現(xiàn)的雙向交流變成單向傳遞。
基于上述分析,我們在教學(xué)過程中充分發(fā)揮兩種教學(xué)手段的優(yōu)勢,采用多媒體與黑板結(jié)合的教學(xué)方式,對理論知識利用幻燈片給出,例題講解只要由教師利用黑板對問題進(jìn)行分析,引導(dǎo)學(xué)生寫出算法,在語言編譯環(huán)境下直接進(jìn)行編程調(diào)試,使學(xué)生能直觀地看到編程的方法與效果,極大地提高了學(xué)生的學(xué)習(xí)興趣。
3.4以行動導(dǎo)向?qū)W習(xí)為原則設(shè)計和組織實驗課程教學(xué)活動
所謂行動導(dǎo)向?qū)W習(xí)就是有目的地、系統(tǒng)地組織學(xué)生在實際或模擬的專業(yè)情境中,讓學(xué)生參與設(shè)計、實施、檢查和評價職業(yè)活動的經(jīng)歷來發(fā)現(xiàn)、探討和解決職業(yè)活動中的問題,在體驗與反思學(xué)習(xí)行動的過程中,獲得完成職業(yè)活動所必需的知識與能力。
上機(jī)實踐是“C語言程序設(shè)計”教學(xué)中不可缺少的教學(xué)環(huán)節(jié)。充分有效的上機(jī)實踐不僅能糾正學(xué)習(xí)中的理解偏差、加深知識要點的理解,還能增強(qiáng)學(xué)生的上機(jī)實踐的積極性和問題處理能力,切實提高編程能力與編程水平。
在進(jìn)行實驗課程教學(xué)設(shè)計和組織時,我們以行動-學(xué)習(xí)-行動這條主線來組織教學(xué)。具體過程如下:
(1) 編寫一些趣味性較高的程序,演示給學(xué)生看,通過例子告訴學(xué)生我們所需要學(xué)習(xí)的知識要點;
(2) 在介紹了C語言程序編輯器的使用方法后,帶領(lǐng)學(xué)生走進(jìn)實驗室,依照例題,進(jìn)行簡單的程序設(shè)計,對出程序中的錯誤,教師現(xiàn)場輔導(dǎo)給予解決;
(3) 授課教師總結(jié)實驗中的共性問題,課堂上講解此類問題的解決方法,再講解所涉及的語法點,這樣學(xué)生由于一開始已經(jīng)有了感性認(rèn)識,就比較容易理解和記住語法規(guī)則;
(4) 在理解和記住語法規(guī)則的基礎(chǔ)上,教師再設(shè)計一些簡單的題目,讓學(xué)生走入實驗室,經(jīng)過這樣循環(huán)往復(fù),對于簡單的程序設(shè)計,學(xué)生很快就可以掌握了;
(5) 隨著學(xué)習(xí)的深入,當(dāng)接觸到較復(fù)雜的程序設(shè)計時,可以由教師策劃一些案例,具體行動由學(xué)生自己計劃、實施、檢查以及修正和評價。對于一個較為復(fù)雜的程序,過去教師往往是給學(xué)生提示設(shè)計思路,這就會局限學(xué)生的思維和行動。在教學(xué)中我們可以分小組進(jìn)行討論,讓學(xué)生自己拿出程序設(shè)計思路和程序設(shè)計的算法,畫出流程圖,然后教師給予指導(dǎo)和點評。
4結(jié)論
上述教學(xué)內(nèi)容、教學(xué)手段與教學(xué)方法的改革,是根據(jù)實際教學(xué)過程中學(xué)生存在的問題提出的,并在“C語言程序設(shè)計”課程教學(xué)實踐中運用。實踐證明,這些教學(xué)改革效果良好,提高學(xué)生的學(xué)習(xí)熱情,讓學(xué)生從枯燥無味的語言學(xué)習(xí)中解放出來,既讓學(xué)生能深刻理解課程的理論知識,又培養(yǎng)學(xué)生的創(chuàng)新思維,提高了實驗技能,培養(yǎng)了自學(xué)能力和創(chuàng)新能力,并鍛煉了毅力,從而從被動學(xué)習(xí)走上主動學(xué)習(xí)。我們將繼續(xù)努力探索,使“C語言程序設(shè)計”課程教學(xué)日趨完善,使C語言課程的教學(xué)效果再上一個臺階。
參考文獻(xiàn):
[1] 張錦祥. 高級程序設(shè)計語言課程教學(xué)改革與實踐[J]. 浙江教育學(xué)院學(xué)報,2007(4):71-76.
[2] 趙山林,高媛.C語言程序設(shè)計[M]. 北京:人民郵電出版社,2004.
[3] 王冬. 高職C語言程序設(shè)計教學(xué)改革探索[J]. 計算機(jī)教育,2007(9):94-96.
[4] 萬蓉. 基于行動導(dǎo)向《C語言程序設(shè)計》的教學(xué)實踐[J]. 成都航空職業(yè)技術(shù)學(xué)院學(xué)報,2008(2):17-22.
The Reform and Practice of C Language Programming
LIU Hong-min, ZHAO Shan-lin
(School of Electronics and Computer Science and Technology,North University of China,Taiyuan 030051,China)
Abstract: Analyzed the problems existing in the teaching of C language programming teaching on non-computer major from the teaching practice. proposed the reform of the content is designed and optimized based on case teaching and knowledgetarism, design and organize teaching of experiment and classroom ground on action guide study, applied to teaching practice. It is very effectual by practice.
Key words: teaching reform; teaching mode; case study; knowledgetarism; action guide study