韋曉虎
【摘 要】C語言是高等院校普遍使用的高級語言程序設(shè)計課程的入門教學(xué)語言,通過該課程的學(xué)習(xí),其對學(xué)生編程思想的形成和后續(xù)課程的學(xué)習(xí)起著重要的作用。文中從普通高校非計算機(jī)專業(yè)學(xué)生實際情況出發(fā),根據(jù)課程定位、課程體系、教學(xué)對象、教學(xué)重點(diǎn)、教改實踐與創(chuàng)新等幾個方面,對該課程進(jìn)行教改創(chuàng)新,形成針對性的教學(xué)方法,采用的方法在教學(xué)中取得良好效果。
【關(guān)鍵詞】C語言;非計算機(jī)專業(yè);教改創(chuàng)新
0 引言
《C語言程序設(shè)計》課程是現(xiàn)在許多工科院校非計算機(jī)專業(yè)普遍開設(shè)的高級語言程序設(shè)計入門課程,都會投入大量教師進(jìn)行授課。作為入門課程,基礎(chǔ)打下是否牢固以及所形成的編程思想對學(xué)生將來學(xué)習(xí)其它編程語言時有重大的影響,為更好的提高教學(xué)質(zhì)量,多年來大量教師在不斷的嘗試教學(xué)改革[1-2]。對于不同院校,由于學(xué)生來源情況復(fù)雜,不能采用一攬子的方法予以解決,需要從學(xué)校的具體教學(xué)實際出發(fā),力求制訂科學(xué)的教學(xué)培養(yǎng)方案。筆者地處西部地區(qū)地方院校,所招收學(xué)生大部分為本地生源,學(xué)生對信息技術(shù)知識了解的程度及深度不及發(fā)達(dá)地區(qū),本文根據(jù)作者所處地區(qū)高校生源特點(diǎn),分別對課程定位、課程體系、教學(xué)對象、教學(xué)重點(diǎn)等方面對《C語言程序設(shè)計》課程進(jìn)行了教學(xué)改革實踐與創(chuàng)新。
1 課程體系與定位
筆者所處院校是以工科為主的地方性綜合院校,即使是非計算機(jī)專業(yè),許多學(xué)生都需要學(xué)習(xí)編程知識,并且至少要掌握一門高級程序設(shè)計語言,當(dāng)前除了外語學(xué)院以及設(shè)計學(xué)院等幾個院系外,都開設(shè)《C語言程序設(shè)計》課程,在大一第一學(xué)期或者第二學(xué)期開設(shè),前導(dǎo)課程基本為《大學(xué)計算機(jī)文化基礎(chǔ)》,后續(xù)課程根據(jù)不同專業(yè)會有《數(shù)據(jù)結(jié)構(gòu)》、《C#程序設(shè)計》、《Java程序設(shè)計》及《面向?qū)ο蟪绦蛟O(shè)計》等課程。如果是第一學(xué)期開設(shè),那么會與前導(dǎo)課程同時開設(shè)?,F(xiàn)有學(xué)生基本都是四年制本科學(xué)生,非計算機(jī)專業(yè)開設(shè)的本課程與計算機(jī)專業(yè)開設(shè)的課程通過課時的不同以及要求深度不同進(jìn)行區(qū)別。該課程是面向除了文科專業(yè)外本科生開設(shè)的一門必修課,通過課程的學(xué)習(xí),可為后續(xù)專業(yè)課程的學(xué)習(xí)乃至今后承擔(dān)軟件開發(fā)工作,打下良好的程序設(shè)計思路與編程技能的基礎(chǔ)。
《C語言程序設(shè)計》主要講授面向過程程序設(shè)計知識。通過本課程的學(xué)習(xí),要求學(xué)生掌握C語言的基本概念,語法規(guī)則,更重要的是培養(yǎng)學(xué)生面向過程程序設(shè)計的編程思想,編程技巧,學(xué)會至少一種IDE開發(fā)環(huán)境,可以熟練使用該開發(fā)環(huán)境編寫程序并進(jìn)行調(diào)試;最重要的是培養(yǎng)學(xué)生從分析問題到解決問題到編程實現(xiàn)的能力,也就是要掌握用程序解決問題的編程思想,為后續(xù)課程的學(xué)習(xí)打下堅實基礎(chǔ)。為了降低學(xué)習(xí)的難度,學(xué)生上機(jī)時使用的IDE為微軟的Visual C++ 6.0,在控制臺模式下開發(fā),但是當(dāng)前的軟件基本都是Windows程序,學(xué)生所學(xué)習(xí)的內(nèi)容與現(xiàn)在所用的東西還有一定距離,在以后還需要學(xué)習(xí)Windows程序設(shè)計,需要學(xué)習(xí)《面向?qū)ο蟪绦蛟O(shè)計》等課程,而學(xué)好C語言是學(xué)習(xí)可視化語言的基礎(chǔ),可為掌握可視化的面向?qū)ο蟪绦蛟O(shè)計語言奠定良好的基礎(chǔ)。
2 教學(xué)對象
我校屬于地方二本院校,定位為服務(wù)地方,學(xué)校面向全國招生,但是招生的學(xué)生大部分為本省學(xué)生,外省生源只占小部分。通過對近幾年學(xué)生調(diào)查情況來看,部分學(xué)生在中學(xué)時期就接觸過編程,但是都沒有深入學(xué)習(xí),學(xué)生對知識的掌握并不牢固,對進(jìn)一步的編程方法和思想也沒有接觸過多。大部分同學(xué)沒有接觸過編程,對計算機(jī)的基本知識也沒有了解,對基本的計算機(jī)操作都不熟練。
根據(jù)學(xué)生來源構(gòu)成復(fù)雜、計算機(jī)基礎(chǔ)知識高低不同的特點(diǎn),教學(xué)中,首先教師要不斷修改和完善教學(xué)目標(biāo)、教學(xué)方法、教學(xué)內(nèi)容,優(yōu)化教學(xué)環(huán)節(jié),從而提高教學(xué)效果。教師在教學(xué)中應(yīng)該充分發(fā)揮引導(dǎo)入門的功效,兼顧各種水平的學(xué)生,同時還要加強(qiáng)對學(xué)生學(xué)習(xí)的指導(dǎo)、幫助和督促。使學(xué)生了解自身專業(yè)特點(diǎn),了解高級語言學(xué)科的學(xué)習(xí)特點(diǎn)及對于所學(xué)專業(yè)的重要性,掌握一門高級語言,對于今后的學(xué)習(xí)有巨大的幫助,向?qū)W生講明,高級語言有很多種,但是基本構(gòu)成卻是相同的,只要認(rèn)真學(xué)好一門,以后學(xué)習(xí)別的高級語言時會事半功倍。不要認(rèn)為是非計算機(jī)專業(yè),就沒有必要學(xué)習(xí)編程知識,要引導(dǎo)學(xué)生掌握科學(xué)的學(xué)習(xí)和研究方法,樹立理想,擬定未來的發(fā)展目標(biāo);其次,在教學(xué)中,應(yīng)該及時為學(xué)生答疑解惑,解決學(xué)生學(xué)習(xí)上遇到的實際困難,在開始入門的時候會遇到很多問題,如果問題得到及時解決會增強(qiáng)學(xué)生的信心,從而激發(fā)不斷學(xué)習(xí)的興趣;最后,要適當(dāng)布置難度適中的課后作業(yè),要求學(xué)生要獨(dú)立完成,要不斷地督促學(xué)生高效的完成學(xué)習(xí)任務(wù)。
3 教學(xué)重點(diǎn)
對于第一次接觸程序設(shè)計的學(xué)生,感覺C語言概念多、內(nèi)容多、知識點(diǎn)多。覺得很難學(xué),難懂,特別是如何用編程思想來解決一個問題,也就是面對一個問題,根本不知道如何下手,需要不斷培養(yǎng)學(xué)生編程思想。為了使學(xué)生掌握C 語言的精髓部分,同時又避免學(xué)生由于需要理解記憶的內(nèi)容過多而產(chǎn)生厭學(xué)抵觸心理,本著學(xué)以致用的原則,需要對教材進(jìn)行仔細(xì)分析,對教學(xué)內(nèi)容進(jìn)行取舍。
在概述部分重點(diǎn)介紹為什么要編寫程序,介紹機(jī)器語言、低級語言及高級語言的概念,它們之間的關(guān)系;知道編輯、編譯以及鏈接的概念。C程序的基本構(gòu)成,知道程序、程序文件和函數(shù)的關(guān)系,知道如何編寫最簡單的C程序;知道算法的概念,算法與程序的關(guān)系,知道算法的基本要素,以及如何評價一個算法好壞的標(biāo)準(zhǔn),知道兩個最常用的評價算法好壞的指標(biāo)——時間復(fù)雜度與空間復(fù)雜度的定義。最后,要學(xué)會如何在IDE環(huán)境上如何實現(xiàn)完整的編輯、編譯、鏈接以及調(diào)試,知道識別源文件、目標(biāo)文件以及可執(zhí)行文件,最后運(yùn)行程序得到正確結(jié)果。
在程序結(jié)構(gòu)部分重點(diǎn)介紹三種基本結(jié)構(gòu),每種結(jié)構(gòu)的典型應(yīng)用,理解用三種基本結(jié)構(gòu)的不斷迭代組合可以解決各種復(fù)雜問題,介紹結(jié)構(gòu)化程序設(shè)計的概念以及模塊化設(shè)計的思想。記住標(biāo)準(zhǔn)輸入輸出函數(shù)名稱及用法,實現(xiàn)三種基本結(jié)構(gòu)的關(guān)鍵字。在數(shù)組部分要重點(diǎn)介紹一維、二維數(shù)組的定義和使用;編譯預(yù)處理部分講明宏的定義與使用,為什么要使用宏,typedef定義。函數(shù)部分重點(diǎn)介紹函數(shù)的作用、函數(shù)的定義、函數(shù)的調(diào)用和返回,更需要闡明函數(shù)就是C語言中模塊化程序設(shè)計思想的體現(xiàn)。指針部分是C語言學(xué)習(xí)重點(diǎn)中的重點(diǎn),剛接觸時比較難理解,重點(diǎn)介紹指針的概念、變量的指針、數(shù)組的指針、指向一維數(shù)組的指針,指針作為函數(shù)參數(shù)的使用,同時強(qiáng)調(diào),指針是C語言的精華部分,對指針運(yùn)用的水平會決定程序的好壞。在結(jié)構(gòu)與共用體部分重點(diǎn)介紹結(jié)構(gòu)體,知道如何使用基本數(shù)據(jù)類型來實現(xiàn)構(gòu)造類型,知道共用體的概念。在文件部分,知道文件指針,說明為什么要使用文件,使用文件是為了將各種程序與數(shù)據(jù)在外存上長久保存,記住并會使用幾個基本的文件操作函數(shù)。
4 教改實踐與創(chuàng)新
要想保證教學(xué)質(zhì)量,提高教學(xué)效果,教學(xué)方法和手段的改進(jìn)是必不可少的。傳統(tǒng)的灌輸教學(xué)已不再適合當(dāng)前學(xué)生特點(diǎn)。要求教師在教學(xué)中,既要注重教師在教學(xué)上的主導(dǎo)作用,更要發(fā)揮學(xué)生在學(xué)習(xí)上的主動性和創(chuàng)造性。教師在講授語言的基本語法規(guī)則、基本程序結(jié)構(gòu)、基本編程思想的過程中,既要給學(xué)生講解程序設(shè)計的術(shù)語,又要采用生活中形象的實際例子對相對枯燥的程序設(shè)計術(shù)語進(jìn)行描述,最好能夠使學(xué)生能夠通過形象的生活案例去理解相關(guān)的理論知識。同時,要不斷調(diào)動學(xué)生的積極性,引導(dǎo)學(xué)生在理解的基礎(chǔ)上牢記C語言的語言元素、語法規(guī)則、基本概念和基本理論,同時還要鼓勵學(xué)生不斷地進(jìn)行思考和創(chuàng)新。教學(xué)中要及時發(fā)現(xiàn)學(xué)生中出現(xiàn)的好的學(xué)習(xí)方法、學(xué)習(xí)思想和對學(xué)科思想的理解,調(diào)動整體學(xué)生的學(xué)習(xí)熱情,這樣會得到較好的教學(xué)效果。適時將啟發(fā)式教學(xué)、討論式教學(xué)、理論與實踐相結(jié)合等方法運(yùn)用于教學(xué)之中,調(diào)動學(xué)生的興趣和學(xué)習(xí)的主動性,強(qiáng)化學(xué)科思想的理解和知識的鞏固掌握,最終提高教學(xué)效果和教學(xué)質(zhì)量。
4.1 將高級語言與自然語言類比進(jìn)行教學(xué)
通過類比說明無論是什么語言都由兩大基本部分組成:單詞(詞匯)和語法,要想很好的掌握一種語言,提醒學(xué)生必須熟記語言的兩大部分。但是C語言只有32個單詞(關(guān)鍵字)、9種語法(控制結(jié)構(gòu))需要記憶,比自然語言學(xué)習(xí)簡單的多,這樣可以減少學(xué)生的畏難心理,激發(fā)學(xué)習(xí)的興趣。對于結(jié)構(gòu)程序設(shè)計的三種基本結(jié)構(gòu),可以用生活中的例子來進(jìn)行類比解釋,每種結(jié)構(gòu)都是對應(yīng)現(xiàn)實中的一種情況。在教學(xué)中,盡量用學(xué)生熟悉的生活語言引入計算機(jī)高級語言的知識,可以幫助促進(jìn)學(xué)生的理解,在教學(xué)中起到了較好的效果。
4.2 理論知識實例化
C語言中關(guān)于變量的作用域問題,學(xué)生在使用上經(jīng)常出錯,例如在函數(shù)fun1()里面定義的變量temp為什么和函數(shù)fun2()里面定義的變量temp不同。教學(xué)中將函數(shù)fun1()、函數(shù)fun2()類比為兩個不同的班級,將函數(shù)fun1()里面定義的變量temp和函數(shù)fun2()里面定義的變量temp理解為兩個不同班級中姓名相同的兩個同學(xué)。雖然兩人姓名相同,但分屬于不同的兩個班級,兩人的行為、活動范圍必然是不同的,所以是兩個作用范圍不同的變量。教學(xué)中多采用此類通俗實例化教學(xué)方法,可以起到較好的教學(xué)效果。
5 結(jié)語
本文對非計算機(jī)專業(yè)學(xué)生在C 語言課程的學(xué)習(xí)過程中出現(xiàn)的問題作了思考和分析,針對現(xiàn)狀,結(jié)合教學(xué)實際以及自身的體會,進(jìn)行了初步的探索,針對教學(xué)方法提出了一些措施和建議。教學(xué)改革與創(chuàng)新的目的是不斷提高教學(xué)水平和教學(xué)質(zhì)量?!禖語言程序設(shè)計》課程對培養(yǎng)學(xué)生的邏輯思維能力、計算思維能力和以計算機(jī)分析并解決問題的能力都有著重要意義,以上教學(xué)內(nèi)容、教學(xué)手段和方法是根據(jù)多年實際教學(xué)經(jīng)驗總結(jié)得出的,教學(xué)實踐中,從授課對象的實際出發(fā),本著以學(xué)生為本、以教學(xué)為中心的原則,在實際教學(xué)過程中,取得了良好的效果。
【參考文獻(xiàn)】
[1]周長英,董翠英,陳穎.非計算機(jī)專業(yè)“C語言程序設(shè)計”教學(xué)方法探析[J].教育與職業(yè),2010(23):148-149.
[2]何萬國,漆新貴.大學(xué)生實踐能力的形成及其培養(yǎng)機(jī)制[J].高等教育研究, 2010(10):62-66.
[責(zé)任編輯:楊玉潔]