摘要:本文從感性認識、算法分析、代碼講授、功能變化四個方面探討了編程語言的教學模式,并結(jié)合具體實例對這一教學模式進行了說明。
關(guān)鍵詞:編程語言;教學;教學模式
中圖分類號:G64 文獻標識碼:B
文章編號:1672-5913(2007)02-0051-02
1引言
在計算機專業(yè)本、??坪头怯嬎銠C專業(yè)的計算機教學中,學校幾乎都設(shè)置了高級語言程序設(shè)計或數(shù)據(jù)庫管理語言的程序設(shè)計課程。與一些應用軟件或工具軟件相比,編程課程的教學具有較大的靈活性,這使得學生掌握起來有一定困難,教師教學也有一定的難度。采用何種教學模式進行教學就成為編程語言教學的一個關(guān)鍵。筆者經(jīng)過多年的教學實踐,總結(jié)出了編程語言教學的感性認識、算法分析、代碼講授、功能變化的教學模式,這些在實際教學中收到了很好的效果。
2編程語言教學模式探討
在下面的討論中,以Java語言編寫查詢記錄的程序為例進行說明。
2.1 感性認識
這里的感性認識是指先讓學生對要講授的程序有一個感性的認識。即先運行程序,顯示程序的運行結(jié)果,讓學生了解程序的運行界面、控件的布局、操作順序及整個程序的功能。使學生對要講授的程序有一個感性的認識,這對于理解算法及編程代碼都是非常有利的。
通過運行界面,學生可以了解整個界面的布局,即各個控件的擺放位置及相互關(guān)系,之后在文本框輸入查詢條件(書名)并單擊“確定”按鈕后,即顯示出查詢結(jié)果,這讓學生了解操作順序并看到運行的結(jié)果,同時也知道了整個程序的功能。
2.2 算法分析
根據(jù)上面演示的界面、操作順序及運行結(jié)果,詳細分析程序的功能,在此基礎(chǔ)上,我們分別從界面設(shè)計、事件代碼兩個方面進行算法分析,找出程序?qū)崿F(xiàn)的算法并畫出程序流程圖。
例如,對于查詢記錄程序,其界面設(shè)計的算法分析如下:由于是在窗口內(nèi)顯示界面,所以應先創(chuàng)建一個窗口類Frame類的子類。在子類的構(gòu)造方法中創(chuàng)建標簽、文本框、按鈕等對象;設(shè)計相應的布局,通過面板等容器將這些對象添加到窗口中;添加諸如按鈕等對象事件的監(jiān)聽。
對于在文本框中輸入書名,并單擊“確定”按鈕,處理按鈕事件的算法分析如下:到數(shù)據(jù)庫中查找滿足條件的記錄,如果沒找到就顯示相應的信息,并重新輸入查找條件;如果找到了就將找到的記錄放在相應的面板等容器中并顯示。
其他如“打印”和“退出”等按鈕事件處理算法按相應的要求給出。
根據(jù)上面的算法分析,畫出程序的流程圖如圖1所示。
圖1程序流程
對上面的流程圖教師要進行詳盡的講解,使學生真正了解程序的算法,這對后面書寫程序代碼非常重要。因為代碼的編寫就是將算法變成能運行的程序。
因為許多程序可以有多種算法,在教師講授自己的算法之前,可先讓學生寫出自己對這個問題的算法分析(這就要求學生要事先預習教學內(nèi)容)并畫出流程圖,再對學生的算法進行簡單評價。
2.3 代碼講授
根據(jù)上面的算法分析,教師可采用下面兩種方式講授程序代碼:一種是逐條給出并在講解過程中啟發(fā)學生如何寫代碼,這時可以啟發(fā)學生思考要想完成算法的某一功能應如何給出代碼。教師可以先讓學生給出代碼,然后按學生給出的代碼演示運行結(jié)果,看是否達到了算法的要求,如果達到要求應給予積極的評價;沒有則應和學生一起分析問題出現(xiàn)在哪里,找出正確的思路,直至給出正確的代碼。學生給出的代碼可能會有多種,可選擇有代表性的幾個進行演示及分析,不要只講正確的代碼方案,不正確的代碼方案也可作為反例提醒同學們注意,這樣對于鼓勵學生參與互動教學有積極的作用。另一種是代碼全部給出,之后按算法要求講解每一條語句的作用,再講解每一段的作用并解釋它實現(xiàn)了算法的哪一個功能。前者占用課堂時間較長,但對啟發(fā)學生的編程思維有好處;后者占用課堂時間短,提高了課堂效率,但學生掌握程序代碼效果不如前者。教師在教學中可根據(jù)學生情況、教學內(nèi)容的復雜程度及課時數(shù)進行選擇。在講解過程中教師一定要結(jié)合算法,注意講清每條語句或每一段代碼能完成算法中的哪一步。在此過程中,為了說明某條語句或某段代碼的作用,可邊講解邊演示其運行的結(jié)果,這樣效果會更好。
2.4 功能變化
在講解清楚上面的程序之后,可對程序的語句或程序段進行修改,例如刪除某些語句、修改某些語句,并演示刪除或修改變化后的運行效果,使學生加深對某些語句或程序段功能的理解,以拓展本程序的知識點。同時教師要注意鼓勵學生大膽探索新的算法,對于雖不完美,但經(jīng)過指導也能實現(xiàn)程序功能的算法要給予積極的表揚和肯定,推崇學生自己動腦、動手進行程序設(shè)計與修改是非常必要的。
3結(jié)束語
以上只是作者在教學中總結(jié)出的一點體會,在以往的教學中應用這種模式進行實踐并收到了較好的效果。學生不但學會了編程語言,同時也學會了編程思想及編程方法。在畢業(yè)設(shè)計中,學生做出了較好的管理信息系統(tǒng),并在“大學生科研訓練計劃”的信息系統(tǒng)開發(fā)中取得了較好的成績。當然,編程語言教學模式多種多樣,許多同行都有自己的優(yōu)秀的教學模式,筆者會在今后進一步學習和吸取這些經(jīng)驗,不斷提高自己的教學效果和水平。
參考文獻:
[1]印旻.Java語言與面向?qū)ο蟮某绦蛟O(shè)計[M].北京:清華大學出版社,2000.
[2]耿祥義.Java2實用教程[M].北京:清華大學出版社,2004.
[3]Bruce Eckel .Thinking in Java(Third Edition)[M].北京:機械工業(yè)出版社,2004.
[4]Harvey M.Deitel,Paul J.Deitel .Java大學教程[M].北京:電子工業(yè)出版社,2004.
投稿日期:2006-07-13
作者簡介:馬龍軍 (1957.3-),男(漢族),吉林通化市人,教授,研究方向:計算機信息管理與信息系統(tǒng)。