摘要:本文從感性認(rèn)識(shí)、算法分析、代碼講授、功能變化四個(gè)方面探討了編程語言的教學(xué)模式,并結(jié)合具體實(shí)例對這一教學(xué)模式進(jìn)行了說明。
關(guān)鍵詞:編程語言;教學(xué);教學(xué)模式
中圖分類號:G64 文獻(xiàn)標(biāo)識(shí)碼:B
文章編號:1672-5913(2007)02-0051-02
1引言
在計(jì)算機(jī)專業(yè)本、專科和非計(jì)算機(jī)專業(yè)的計(jì)算機(jī)教學(xué)中,學(xué)校幾乎都設(shè)置了高級語言程序設(shè)計(jì)或數(shù)據(jù)庫管理語言的程序設(shè)計(jì)課程。與一些應(yīng)用軟件或工具軟件相比,編程課程的教學(xué)具有較大的靈活性,這使得學(xué)生掌握起來有一定困難,教師教學(xué)也有一定的難度。采用何種教學(xué)模式進(jìn)行教學(xué)就成為編程語言教學(xué)的一個(gè)關(guān)鍵。筆者經(jīng)過多年的教學(xué)實(shí)踐,總結(jié)出了編程語言教學(xué)的感性認(rèn)識(shí)、算法分析、代碼講授、功能變化的教學(xué)模式,這些在實(shí)際教學(xué)中收到了很好的效果。
2編程語言教學(xué)模式探討
在下面的討論中,以Java語言編寫查詢記錄的程序?yàn)槔M(jìn)行說明。
2.1 感性認(rèn)識(shí)
這里的感性認(rèn)識(shí)是指先讓學(xué)生對要講授的程序有一個(gè)感性的認(rèn)識(shí)。即先運(yùn)行程序,顯示程序的運(yùn)行結(jié)果,讓學(xué)生了解程序的運(yùn)行界面、控件的布局、操作順序及整個(gè)程序的功能。使學(xué)生對要講授的程序有一個(gè)感性的認(rèn)識(shí),這對于理解算法及編程代碼都是非常有利的。
通過運(yùn)行界面,學(xué)生可以了解整個(gè)界面的布局,即各個(gè)控件的擺放位置及相互關(guān)系,之后在文本框輸入查詢條件(書名)并單擊“確定”按鈕后,即顯示出查詢結(jié)果,這讓學(xué)生了解操作順序并看到運(yùn)行的結(jié)果,同時(shí)也知道了整個(gè)程序的功能。
2.2 算法分析
根據(jù)上面演示的界面、操作順序及運(yùn)行結(jié)果,詳細(xì)分析程序的功能,在此基礎(chǔ)上,我們分別從界面設(shè)計(jì)、事件代碼兩個(gè)方面進(jìn)行算法分析,找出程序?qū)崿F(xiàn)的算法并畫出程序流程圖。
例如,對于查詢記錄程序,其界面設(shè)計(jì)的算法分析如下:由于是在窗口內(nèi)顯示界面,所以應(yīng)先創(chuàng)建一個(gè)窗口類Frame類的子類。在子類的構(gòu)造方法中創(chuàng)建標(biāo)簽、文本框、按鈕等對象;設(shè)計(jì)相應(yīng)的布局,通過面板等容器將這些對象添加到窗口中;添加諸如按鈕等對象事件的監(jiān)聽。
對于在文本框中輸入書名,并單擊“確定”按鈕,處理按鈕事件的算法分析如下:到數(shù)據(jù)庫中查找滿足條件的記錄,如果沒找到就顯示相應(yīng)的信息,并重新輸入查找條件;如果找到了就將找到的記錄放在相應(yīng)的面板等容器中并顯示。
其他如“打印”和“退出”等按鈕事件處理算法按相應(yīng)的要求給出。
根據(jù)上面的算法分析,畫出程序的流程圖如圖1所示。

圖1程序流程
對上面的流程圖教師要進(jìn)行詳盡的講解,使學(xué)生真正了解程序的算法,這對后面書寫程序代碼非常重要。因?yàn)榇a的編寫就是將算法變成能運(yùn)行的程序。
因?yàn)樵S多程序可以有多種算法,在教師講授自己的算法之前,可先讓學(xué)生寫出自己對這個(gè)問題的算法分析(這就要求學(xué)生要事先預(yù)習(xí)教學(xué)內(nèi)容)并畫出流程圖,再對學(xué)生的算法進(jìn)行簡單評價(jià)。
2.3 代碼講授
根據(jù)上面的算法分析,教師可采用下面兩種方式講授程序代碼:一種是逐條給出并在講解過程中啟發(fā)學(xué)生如何寫代碼,這時(shí)可以啟發(fā)學(xué)生思考要想完成算法的某一功能應(yīng)如何給出代碼。教師可以先讓學(xué)生給出代碼,然后按學(xué)生給出的代碼演示運(yùn)行結(jié)果,看是否達(dá)到了算法的要求,如果達(dá)到要求應(yīng)給予積極的評價(jià);沒有則應(yīng)和學(xué)生一起分析問題出現(xiàn)在哪里,找出正確的思路,直至給出正確的代碼。學(xué)生給出的代碼可能會(huì)有多種,可選擇有代表性的幾個(gè)進(jìn)行演示及分析,不要只講正確的代碼方案,不正確的代碼方案也可作為反例提醒同學(xué)們注意,這樣對于鼓勵(lì)學(xué)生參與互動(dòng)教學(xué)有積極的作用。另一種是代碼全部給出,之后按算法要求講解每一條語句的作用,再講解每一段的作用并解釋它實(shí)現(xiàn)了算法的哪一個(gè)功能。前者占用課堂時(shí)間較長,但對啟發(fā)學(xué)生的編程思維有好處;后者占用課堂時(shí)間短,提高了課堂效率,但學(xué)生掌握程序代碼效果不如前者。教師在教學(xué)中可根據(jù)學(xué)生情況、教學(xué)內(nèi)容的復(fù)雜程度及課時(shí)數(shù)進(jìn)行選擇。在講解過程中教師一定要結(jié)合算法,注意講清每條語句或每一段代碼能完成算法中的哪一步。在此過程中,為了說明某條語句或某段代碼的作用,可邊講解邊演示其運(yùn)行的結(jié)果,這樣效果會(huì)更好。
2.4 功能變化
在講解清楚上面的程序之后,可對程序的語句或程序段進(jìn)行修改,例如刪除某些語句、修改某些語句,并演示刪除或修改變化后的運(yùn)行效果,使學(xué)生加深對某些語句或程序段功能的理解,以拓展本程序的知識(shí)點(diǎn)。同時(shí)教師要注意鼓勵(lì)學(xué)生大膽探索新的算法,對于雖不完美,但經(jīng)過指導(dǎo)也能實(shí)現(xiàn)程序功能的算法要給予積極的表揚(yáng)和肯定,推崇學(xué)生自己動(dòng)腦、動(dòng)手進(jìn)行程序設(shè)計(jì)與修改是非常必要的。
3結(jié)束語
以上只是作者在教學(xué)中總結(jié)出的一點(diǎn)體會(huì),在以往的教學(xué)中應(yīng)用這種模式進(jìn)行實(shí)踐并收到了較好的效果。學(xué)生不但學(xué)會(huì)了編程語言,同時(shí)也學(xué)會(huì)了編程思想及編程方法。在畢業(yè)設(shè)計(jì)中,學(xué)生做出了較好的管理信息系統(tǒng),并在“大學(xué)生科研訓(xùn)練計(jì)劃”的信息系統(tǒng)開發(fā)中取得了較好的成績。當(dāng)然,編程語言教學(xué)模式多種多樣,許多同行都有自己的優(yōu)秀的教學(xué)模式,筆者會(huì)在今后進(jìn)一步學(xué)習(xí)和吸取這些經(jīng)驗(yàn),不斷提高自己的教學(xué)效果和水平。
參考文獻(xiàn):
[1]印旻.Java語言與面向?qū)ο蟮某绦蛟O(shè)計(jì)[M].北京:清華大學(xué)出版社,2000.
[2]耿祥義.Java2實(shí)用教程[M].北京:清華大學(xué)出版社,2004.
[3]Bruce Eckel .Thinking in Java(Third Edition)[M].北京:機(jī)械工業(yè)出版社,2004.
[4]Harvey M.Deitel,Paul J.Deitel .Java大學(xué)教程[M].北京:電子工業(yè)出版社,2004.
投稿日期:2006-07-13
作者簡介:馬龍軍 (1957.3-),男(漢族),吉林通化市人,教授,研究方向:計(jì)算機(jī)信息管理與信息系統(tǒng)。