陳鳳祥 許 勇



摘要:本文通過分析全國計算機等級考試通過率較低的現狀與原因,對程序設計語言的課堂教學與實驗教學提出了堅持“掌握—學習”導向的觀點。根據學生情況因材施教,合理組織實驗題目,讓學生體會到進步和掌握的情感,從而逐步提高程序設計能力。
關鍵詞:計算機等級考試;“掌握—學習”導向;能力培養
中圖分類號:G642 文獻標識碼:A
1我校全國計算機等級考試通過率分析
全國計算機等級考試是由教育部考試中心主辦,用于測試應試人員計算機應用知識與能力的等級水平考試。其考試成績可以為勞動(就業)人員提供計算機應用知識與能力的證明,為用人部門錄用和考核工作人員提供一個統一、客觀、公正的評價標準,因此受到高校非計算機專業的學生和廣大就業人員的歡迎。作為一線教學人員,我們也非常關注學生們的考試結果,并將其作為我們改進教學方法的一種參考。通過對我校某考點近期連續三次計算機等級考試(二級和三級)通過率的分析,得到了表1和表2。從表1中可以看出,通過率不高。若是從同時參加筆試和機試兩項考試,僅從其中一項看,筆試的平均通過率明顯高于機試平均通過率。只有一次例外,因為三級機試只有一道程序設計題,只要選中的題目是考生背下來的,就能通過,這就會帶來一定的偶然性。而二級機試中,題量比較大,偶然性大為降低。表2為這三次考試獲得證書的考生統計數據,從表2中可以看出,有相當比例的考生是通過補考而獲得證書,其中尤以補考機試者為多。
2通過率較低的原因分析
為什么通過率較低且有如此多的考生要補考機試?究其原因,主要是有不少考生只注重“背”而不注重上機實驗。其次,很多單位只認證書不問能力,也造成了不少學生不愿動手寫程序。不少學生甚至分不清編輯源程序與編譯源程序的區別;有的認為只要編譯沒有語法錯誤,程序就正確了;有的考生沒有掌握常用的算法,面對試題沒有解決的思路,當然就寫不出解決問題的程序了;有的考生對程序設計語言本身掌握不牢,無法用正確的語句寫出解決問題的程序。
上述情形均從某個側面說明了我們不少學生只注重閱讀指導書上的程序,很少或不愿意動手編寫與調試程序,使得程序設計能力較弱,從而造成通過率不高。
3堅持“掌握—學習”導向,做到因材施教
要改變學生重書本,輕動手實驗的狀況,真正提高學生程序設計能力,教師的責任與作用不容忽視。我們不少學生進入大學前,幾乎沒有接觸過計算機,有的即使用過計算機,也幾乎沒有程序設計的概念。從大學新生入學到結束計算機課程的教學,從最基本的計算機應用基礎開始,到結束程序設計語言的學習,只有不到120學時(包括課堂教學和實驗教學)的時間。在這么短的時間里,讓學生掌握使用計算機的基本技能和一門程序設計語言,其難度可想而知。李未院士在第四界全國計算機教育論壇上指出:我們要走新型工業化道路,就要更新知識結構,培養新一代產業大軍。在不遠的將來,程序設計和數學建模將與微積分、高等代數、大學物理一樣,成為所有大學的核心基礎課程。教育的根本目標之一是培養學生的問題求解能力。能力應該是理性能力,面對一個新問題,能運用所有資源將其解決,這就是對問題的求解能力。為使現在的大學生,能成為新一代的產業大軍,培養他們對問題的求解能力,包括程序設計能力,是計算機教育工作者不可推卸的責任。在教學中,我們堅持以培養能力為目標,遵循“掌握—學習”導向的理念,使學生有努力成功的動機,讓其體會到進步和掌握的情感。為此,在C語言的教學部分,我們作了如下嘗試。
3.1分解難點,讓學生能動手寫出程序
初學程序設計的人,往往不知道該如何將自己的解題方法用計算機語言寫出。因為計算機的語言有許多語法規則、算法的描述、還有數據類型的約束、運算符的表示、以及輸入輸出的實現等等。倘若按照先講語法規則,然后介紹算法的描述方法,再講數據類型及運算符的表示,這樣的課堂教學下來,學生對如何寫程序仍然很茫然。為了在一開始就讓學生養成自己寫程序的習慣,我們在介紹了C語言程序的大致結構后,就開始介紹順序結構程序的設計。從學生熟悉的數學公式著手,用C語言寫出求解的程序。所舉的第一個例子是求正方形的面積,程序及流程圖如圖1所示:
在這個例子里,我們用流程圖描述了順序程序的執行過程。盡管這樣的描述并不是最好的方法,但比較直觀,容易理解。同時我們通過演示程序的執行,改變數據類型及相應輸出函數printf()中的格式控制字符,使學生明白,不同的數據類型,在輸出其值時,應匹配不同的格式控制字符。然后,我們指出此程序的不足之處:當需要計算邊長不同的正方形面積時,每次都要修改程序,不僅麻煩而且容易出錯,于是很自然地引出了輸入函數scanf()的使用。同樣地,可以通過輸入不同數據類型的計算過程,讓格式控制字符的使用反復刺激學生大腦,加深他們對輸入函數和輸出函數正確使用的理解。通過舉一反三,學生對如何計算長方形的面積、圓柱體的體積的流程圖和程序都能很快理解。在計算長方形面積的程序里,我們還解決了用scanf()函數輸入多個數據時,數據之間的分隔符問題,這比單獨講授用scanf()函數接收輸入數據的分隔問題更容易被學生接受和理解。
介紹分支程序設計和循環程序設計時,我們仍然使用那些學生很熟悉的算法。為此我們首先設問,如何解決數據輸入時錯誤數據的排除?這樣自然地引入了分支程序設計的問題。我們在已有流程圖“計算面積框”前面添加一判定框,講清楚判定框中兩個出口的含義,在程序中相應位置添加條件語句就可解決問題了。這樣對if語句與if…else語句的使用,學生接受起來就更加自然,不必死背語法了。再通過反復計算不同邊長正方形面積的設問引入循環結構。于是,在3次課(6學時)的時間里,三種程序結構介紹完畢,且基本數據類型和輸入輸出函數的使用、格式控制字符的應用等,這些編程中最基本的元素在短時間里不斷地刺激了學生的大腦。使他們經常將已有的知識與新知識進行連接,并不斷的融合、固化,從而形成長期記憶。
3.2循序漸進,掌握程序設計的方法,培養程序設計的能力
要提高學生程序設計的能力,除了掌握語言本身的語法規則外,還得掌握一些常用的算法。在后續的教學中,我們遵循這樣的原則:即在學習新的語法規則時,用已掌握的算法進行程序設計;學習新的算法時,用已學過的語法規則。這樣引導學生面對一個新問題,能運用所有資源將其解決。同時,我們為逐步培養學生理解算法的能力,在學生對算法有了一些理解能力后,引導學生逐步讀懂用N-S圖描述的算法,通過閱讀算法,可以提高學生的邏輯思維能力。比如模式匹配的問題,盡管我們介紹簡單回溯法,學生理解起來仍有一定的難度。我們在學習字符數組內容時介紹這個算法,為使學生理解起來容易些,使用雙重循環描述這個算法。算法描述如圖2所示。
這樣描述的算法省去了回溯時計算i的位置,通過圖示,再輔以具體的實例,學生基本能理解。然后引導他們根據N-S圖寫出程序。到學習函數、指針時,再用這個算法,學著用字符數組和指針作函數參數,用函數的返回值判斷st2是否在st1中,這樣學生對這個算法就有了進一步的理解。
3.3合理組織實驗題目,逐步提高程序設計能力
教育部在2號文件中指出要“高度重視實踐環節,提高學生實踐能力”。要提高學生程序設計能力,僅僅依靠良好的課堂教學效果是不夠的,還需學生充分利用實驗課的時間。為此,我們優選了既能讓學生動手編寫、調試,又能達到舉一反三效果的設計題,使他們相信自己有能力完成,從而能堅持不懈的努力。
在學習之初,我們給出求面積和體積一類的程序設計題,這類題目算法簡單,目的是讓學生能自己動手寫程序,掌握程序的結構及基本的語法規則。因此題目的要求重點在數據類型的變換和輸入輸出函數的使用,格式控制字符的正確使用等。同時在題目中留下讓學生目前知識無法解決的問題,使學生有繼續學習的愿望。
隨著知識的積累,我們逐步引入了一些常用算法的程序設計題,這些常用算法可以用不同的語法規則去實現。比如常用的選擇排序算法,學習數組時,實現對已給序列排序。學習函數時,將待排序數組名作函數參數,學習指針時,將待排序數組的地址傳遞給函數的形參指針變量,實現在函數內排好序,在主調函數中輸出排好序的結果。又如模式匹配的簡單回溯算法,學習字符數組時可以作為上機實踐題,學習函數時 也作為上機練習題,學習指針時同樣作為上機練習題。再比如十進制整數轉換成八進制整數或十六進制整數的算法,同樣在數組、函數、指針的學習中都作為程序設計練習題。等等,這樣的練習題可以有很多。通過這樣的練習,培養學生對同一個問題,用不同的方法去求解的能力。
3.4加強實驗指導,引導學生協作學習,使學生能體驗進步的快樂
課堂目標定向影響學生的目標定向。在課堂中的活動和重點可以分為“掌握—學習”導向型和成績導向型。“掌握—學習”導向型的課堂強調努力、進步、挑戰,掌握導向型的課堂有一個環境,在那里學生能體驗進步和掌握的情感。
盡管是經過優選后給出的實驗題目,但對于初學者來說,寫程序時發生的錯誤仍然不少。如何排錯是初學者最不易掌握的技能,且各種錯誤名目繁多,教師此時需要有耐心,除幫助學生解答各種問題外,還應引導學生學習使用調試工具。對計算機程序而言,有語法錯誤程序不能運行,有邏輯錯誤,得不到正確的結果。為提高學生程序設計的能力,學會調試程序是很重要的一個方面。為此我們有意培養學生排除錯誤的能力,首先,引導學生如何盡快排除語法錯誤,然后,引導學生學習使用調試工具,學會單步執行程序,查看變量在程序運行過程中值的變化,這樣逐步讓學生學習如何排除邏輯錯誤。學生只有在學會使用調試工具后,其程序設計能力才能真正得到提高。“授人以魚,不如授人以漁”,當學生不需要老師為其排除程序中的錯誤時,我們的教學目標就達到了。另一方面,為培養學生協作學習的能力,我們在實驗課時,將學生分成若干小組,每組4~5人,能力較強的學生作組長,允許他們以討論的方式完成上機題目。通過討論,使他們對問題的求解思路有一個較清晰的認識,共同完成作業。在這過程中,能力較強的學生,幫助較弱的同學,而他自身的能力也會得到提高。不少得到幫助的同學,也因自己經過努力后能寫出程序,而體驗到了進步的快樂。采用這種實驗教學方式多數學生愿意動手寫程序,同學之間也加深了了解,從而給學生一個良好的情感記憶,并有了成功的體驗。
4教學嘗試的效果與總結
經過一段時間這樣的教學嘗試,多數學生已養成自己動手寫程序的習慣,而且能力較強的學生已開始對程序的設計有了自己獨到的見解與處理能力了。比如在學習指針一章時,講了這樣一個例題:在一個串的尾部添加一個字符。當指針s指向串的結束符,給出這樣的語句{*s=c;s++;*s= 主站蜘蛛池模板: 中文无码日韩精品| 国产极品美女在线播放| 久久亚洲国产视频| 高清无码不卡视频| 白浆免费视频国产精品视频| 国产91精选在线观看| 97在线国产视频| 久久精品国产999大香线焦| 欧美综合在线观看| 国产一区在线视频观看| 国产黄在线免费观看| 亚洲国产成人综合精品2020| 中文字幕乱码二三区免费| 在线观看国产一区二区三区99| 国产69精品久久久久孕妇大杂乱| 国产福利免费在线观看| 91青青草视频在线观看的| 成人91在线| 国产精品毛片一区视频播 | 色男人的天堂久久综合| 高潮爽到爆的喷水女主播视频| 久久精品中文无码资源站| 欧美日本激情| 四虎成人精品在永久免费| 99热这里都是国产精品| 国产日韩精品欧美一区喷| 99久久精品免费看国产免费软件| 久久天天躁狠狠躁夜夜2020一| 亚洲欧美日韩成人在线| 蜜桃视频一区二区三区| 97成人在线视频| 国产区免费| 人人妻人人澡人人爽欧美一区 | 国产熟女一级毛片| 在线观看亚洲精品福利片| 国产乱子伦视频在线播放 | 亚洲a级毛片| 国产精品第三页在线看| 综合色婷婷| 欧美日韩v| 国产成人精品男人的天堂| 欧美一级夜夜爽www| 成人免费午间影院在线观看| 亚洲三级片在线看| 五月婷婷欧美| 一区二区三区国产| 欧美乱妇高清无乱码免费| 久久香蕉国产线| 69视频国产| 亚洲av片在线免费观看| 欧美成人综合视频| 精品伊人久久久久7777人| 人妻一本久道久久综合久久鬼色| 2018日日摸夜夜添狠狠躁| 精品一区二区三区四区五区| 国产在线观看第二页| 亚洲日韩精品综合在线一区二区| 5555国产在线观看| 五月婷婷亚洲综合| 99久久精品无码专区免费| 国产美女自慰在线观看| 国产香蕉97碰碰视频VA碰碰看| 五月婷婷亚洲综合| 99久久99这里只有免费的精品| 国产成人免费| 91精品人妻互换| 日韩第八页| 欧美在线观看不卡| 美女国内精品自产拍在线播放| 亚洲va在线观看| 亚洲欧洲综合| 激情無極限的亚洲一区免费| 亚洲第一黄色网| 精品一区国产精品| 国产精品视频白浆免费视频| 亚洲成人网在线观看| 精品国产成人a在线观看| 色成人亚洲| 黄色网页在线观看| 国产va在线| 国产三级国产精品国产普男人| 日韩无码一二三区|