華潔
(淮南師范學院 數(shù)學與計算科學系,安徽 淮南 232038)
C語言程序設計課程實驗教學綜述
華潔
(淮南師范學院 數(shù)學與計算科學系,安徽 淮南 232038)
闡述了C語言的發(fā)展和演變,對C語言實驗教學的各個方面進行了較為詳細的探討,旨在提高學生用C語言進行編程的能力,以便將來學有所用。
程序設計;C語言程序設計;實驗教學
在當今這個信息社會中,現(xiàn)代科學技術的飛速發(fā)展,改變了世界,也改變了人類的生活。掌握現(xiàn)代科學技術知識,調整自己的知識結構和能力結構,使自己能夠獨立思考和解決所面臨的各項任務和問題,是適應社會發(fā)展的趨勢。如今計算機技術已經(jīng)深入到人類生活的各個領域,無論學什么專業(yè),將來從事什么工作,都必須具備計算機的基礎知識和應用能力。
C語言是目前國內(nèi)外廣泛流行的、有著廣闊發(fā)展前景的計算機高級語言,也是一種優(yōu)良的系統(tǒng)描述語言。在各種高級程序設計語言中,C語言有許多優(yōu)點,利用它我們既可以編寫系統(tǒng)軟件 (如:unix,它和C被稱為孿生兄弟),也可以編寫應用軟件。學會使用C語言進行程序設計是計算機工作者的一項必備能力。
早期的操作系統(tǒng)軟件主要是用匯編語言編寫的,由于匯編語言依賴于計算機硬件,顯而易見其程序的可讀性和可移植性都是比較差的,所以為了提高系統(tǒng)軟件的可讀性和可移植性,改用高級語言編寫,但是一般的高級語言又難以實現(xiàn)匯編語言對硬件操作的功能,在此種情況下,C語言就應運而生了。
C語言是1972年由美國的Dennis M.Ritchie設計發(fā)明出來的,并首次在Unix操作系統(tǒng)環(huán)境下使用。它由早期的編程語言BCPL(Basic Combind Programming Language)發(fā)展演變而來。在1970年, AT&T美國貝爾實驗室的Ken Thompson根據(jù)BCPL編程語言設計出較先進的一種語言,取名為 B語言,Dennis.M.Ritchie在B語言的基礎上設計出了C語言①譚浩強:《C程序設計》(第三版),北京:清華大學出版社,2005年。。
演變歷程中的特點:
(1)最早1960年ALgol 60。它是一種面向問題的高級語言,計算能力強,但脫離硬件。
(2)1963年CPL語言。由劍橋大學推出,接近硬件,但規(guī)模較大,難以實現(xiàn)。
(3)1967年BCPL。劍橋大學Martin Richards對CPL做了簡化,解決了控制硬件問題。
(4)1971年B語言。對BCPL進一步改進和簡化,但程序過于簡單,功能有限。
(5)1972~1973年C語言。在B語言的基礎上設計出C語言,C語言既保持了BCPL和B語言的精練、接近硬件的優(yōu)點,又克服了它們過于簡單、數(shù)據(jù)無類型的缺點。
之后對C語言經(jīng)過多次改進,在1978年C語言很快風靡全世界,成為世界上廣泛應用的幾種計算機高級語言之一。
計算機程序設計語言分為面向過程和面向對象兩種。主要有:
(1)面向過程:Basic語言,C語言,Pascal語言,F(xiàn)ox語言等。
(2)面向對象:Visual Basic,Visual C,Visual Foxpro等。
在校本科生學習高級語言程序設計,所采用的程序設計語言由BASIC改為PASCAL,再由PASCAL改用C語言。C語言有很多優(yōu)點:語言簡潔、緊湊,使用方便、靈活;運算符和數(shù)據(jù)類型豐富;具有結構化的控制語句實現(xiàn)程序的模塊化;允許直接訪問硬件等等。
《C語言程序設計》這門課程是理工科各專業(yè),尤其是計算機相關專業(yè)的學生一門非常重要的專業(yè)必修課。學生通過這門課的學習,能夠掌握高級語言程序設計的基本思路和基本方法,逐步形成正確的程序設計思想,并能夠熟練地使用C語言進行程序設計,從而提高學生的編程能力,為后續(xù)課程《數(shù)據(jù)結構》、《編譯原理》、《數(shù)據(jù)庫原理》等打下堅實的基礎。
《C語言程序設計》同樣是一門實踐性很強的課程。熟練使用C語言編譯環(huán)境,驗證已有的程序,加強對理論知識的理解和掌握,學會編制簡單問題的小程序;以上種種都必須在實驗中得到訓練。在具體實驗中,學生需要對程序反復修改和調試,這是實驗課必備的能力,它貫穿實驗的整個過程,是學生學習和研究C語言程序設計最根本的方法。作為實驗指導教師,在實驗教學中應該努力改變單一枯燥的教學方法,把實驗教學重點放到幫助和指導學生主動學習、積極思考和積極動手上來。使學生在實驗中充分掌握實驗技能和技巧,從而很好地完成實驗教學任務。
4.1 合理的選用實驗教材是完成實驗教學任務的重要保證
C語言的數(shù)據(jù)類型較多,表達式豐富,語法結構復雜,知識內(nèi)容量很大,它是教師難教、學生難學的課程之一。對于一些抽象的概念學生是必須要通過大量的上機實驗去理解和掌握的,但是目前大部分高校都比較偏重理論部分,上機實驗只是理論教學的一部分。在學時劃分上偏重理論教學,通常都是按課堂教學:實驗教學3:1的比例安排課時。選用合適的實驗教材、制定合理的實驗教學計劃和進度,實驗才可順利進行,也是完成實驗教學任務的重要保證。
筆者選用的實驗教材是與理論課教材配套的新世紀計算機基礎教育叢書《C程序設計題解與上機指導》譚浩強(第三版)一書,書中詳細介紹了在Turbo C 2.0、Turbo C++3.0和Visual C++6.0這三種集成環(huán)境下編輯、編譯、調試和運行程序的方法①譚浩強:《C程序設計題解與上機指導》(第三版),北京:清華大學出版社,2005年。,淺顯易懂,有相應的操作截圖,我認為是目前本門課程最適用的實驗教材。
4.2 實驗教學集成環(huán)境的合理選用是實驗順利開展的必備條件
實驗集成環(huán)境的選用,一要考慮學生是否容易操作,二要考慮是否能使實驗順利開展,而得以很好地完成實驗教學任務。
4.2.1 實驗教學集成環(huán)境常用的版本
根據(jù)教材的更新和社會發(fā)展的需要,目前主要的上機編程環(huán)境采用Visual C++6.0版本,全國計算機水平考試(安徽考區(qū))和全國計算機等級考試目前均采用此版本作為上機考試環(huán)境。在多年的實驗教學中,先后安排的上機實驗環(huán)境有Turbo C 2.0(DOS版),Turbo C 3.0(鼠標操作版)和Visual C++6.0。
4.2.2 選用Turbo C 2.0版本作為實驗教學平臺的優(yōu)勢
在多年的實驗教學中,筆者總結得出:Turbo C 2.0版本更好用。它提供的菜單簡潔齊全,使用的快捷命令簡單快速,Turbo C 2.0環(huán)境的單步執(zhí)行Trace into(F7)和Step over(F8)2個菜單功能的使用在實驗教學中尤其重要,它能夠幫助學生觀察程序中每個語句的運行次序和全過程,并能夠觀察程序運行過程中變量值的變化情況,幫助學生理解局部變量和全局變量的有效范圍,幫助學生理解參數(shù)是如何傳遞的,傳值還是傳址等等。不足之處是:僅能用鍵盤操作。所以我安排學生在實驗教學的前段時間使用Turbo C 2.0上機環(huán)境進行實驗,最后2周讓學生熟悉Visual C++6.0環(huán)境,掌握其基本方法,使學生能夠適應各類C語言程序的上機考試環(huán)境。兩者配合,達到很好的實驗效果。
4.3 結合理論教學的進度,合理地制定實驗計劃
實驗計劃的制定要依據(jù)實驗教學大綱。在2006年筆者所在學?;茨蠋煼秾W院參加本科教學水平評估中,筆者所在的數(shù)學與計算機科學系組織修訂和健全各門課程的實驗教學大綱,筆者撰寫和修訂了《高級語言程序設計》(C語言)實驗教學大綱,根據(jù)實驗教學大綱,制定相應的實驗項目和實驗進度。
在制定實驗計劃時,需要和理論課的進度相適應。實驗計劃的合理安排,是配合課堂教學,使學生理解和掌握所學知識的先決條件,它必須和課堂教學達到“同步”,實驗內(nèi)容超前,沒法做實驗,實驗內(nèi)容滯后太多,而使理論知識遺忘過多,也給實驗的順利進行帶來不必要的困難。因此必須要結合理論教學的進度,才能制定出合理的實驗計劃。
4.4 重視實驗課前的預習,寫出客觀而完整的實驗報告
實驗課時的壓縮,使實驗課的分分秒秒都要利用起來才能發(fā)揮實驗課的作用。因此實驗課前的預習是每個學生做好實驗的必要準備。按照實驗進度,我要求學生在實驗前先了解本次實驗的目的和內(nèi)容,對所需要做的實驗畫出流程圖,設計出相應的算法,并初步編寫出C源程序,在上實驗課的時候就能夠直接輸入、調試和修改自己編寫的C源程序,這樣既節(jié)省了時間又提高了學生思考問題的能力和編程能力。在實驗中,一個簡單的程序,都可能會出現(xiàn)許多小錯誤,不是漏了分號,就是關鍵詞拼寫錯了,等等,所以學會調試和修改程序特別重要,我要求學生將調試過程中出現(xiàn)的錯誤及改正后的代碼反映在實驗報告中,錯中求正,知識掌握的更鞏固。
4.5 學生的主觀能動性是提高學生實驗效率的重要前提
學生的主觀能動性是學生掌握知識的最重要的前提條件。教學過程是教師教與學生學的兩個過程,在以學生為本的教育理念下,老師不僅是知識的傳授者,更是學生的引導者和啟發(fā)者,學生應當由知識的被動接受變?yōu)橹鲃忧笾?。在C語言實驗課上,學生多動手、多動腦、勤練習是學好編程的關鍵。在實驗中,學生總會出現(xiàn)這樣或那樣的錯誤,這時就需要教師引導他們開動腦筋,自己找出錯誤,在解決問題的同時加深對知識的理解和掌握,使學生的主觀能動性得到充分發(fā)揮。
4.6 將經(jīng)驗傳授給學生,進一步提高實驗效果
全國計算機等級考試下半年起,把筆試部分也轉到上機考試環(huán)境中來,因而實驗中對動手能力的提高更要大大地加強。結合各類計算機C語言的考試題型,筆者將容易出錯的知識點和內(nèi)容進行歸納和總結,直接讓學生得到經(jīng)驗,避免學生實驗中走彎路,防止許多問題頻頻出現(xiàn)而反復輔導浪費不必要的時間,這也是提高實驗效率的重要途徑。比如:在改錯題中,程序中的相等條件往往出錯在“=”號,而應為相等“==”的運算,在編譯中,C環(huán)境顯示的這類錯誤信息不明顯,有了經(jīng)驗,實驗會達到突飛猛進的效果。
4.7 通過實戰(zhàn)訓練,充分掌握C語言編程能力
學以致用,學習了C語言,掌握程度如何,需要加以檢驗,更是檢驗實驗教學的效果所在。在學期的后2周,安排學生進行C語言程序的上機模擬考試,限時模擬考試,最能檢驗學生對C語言的掌握程度和熟悉程度,程序填空、程序改錯和程度編程,99套上機題,使學生在實戰(zhàn)訓練中找出薄弱環(huán)節(jié)和不足,再重點加強,使學生全面掌握C語言編程能力。
A review on experimental teaching of the C Programming Larguage
HUA Jie
The computer technology has a deep impact on all fields of the society.Programming ability is essential for a computer worker.In this paper,we make a comprehensive discussion on experimental teaching of programming in C.
programm ing;the C Programm ing Larguage;experimental teaching
G642.0
A
1009-9530(2013)04-0135-03
2013-01-10
華潔(1964-),女,淮南師范學院數(shù)學與計算科學系實驗師。