摘 要:本文針對(duì)C語言教學(xué)中存在的若干問題,提出了從任務(wù)驅(qū)動(dòng)、培養(yǎng)學(xué)生興趣、改革教學(xué)內(nèi)容和方法、加強(qiáng)實(shí)驗(yàn)教學(xué)環(huán)節(jié)以及改革考核機(jī)制五個(gè)方面進(jìn)行教學(xué)改革,以提高學(xué)生的編程能力,變被動(dòng)學(xué)習(xí)為主動(dòng)學(xué)習(xí),培養(yǎng)自學(xué)的能力。
關(guān)鍵詞:學(xué)習(xí)興趣;能力培養(yǎng);教學(xué)改革
中圖分類號(hào):G642 文獻(xiàn)標(biāo)識(shí)碼:A
C語言程序設(shè)計(jì)是一門實(shí)踐性和應(yīng)用性很強(qiáng)的課程,集抽象性、邏輯性、實(shí)踐性于一身[1]。C語言本身功能強(qiáng)大、應(yīng)用范圍廣泛、數(shù)據(jù)處理能力強(qiáng)、目標(biāo)程序效率高、可移植性好,適用于編寫系統(tǒng)軟件,已經(jīng)成為計(jì)算機(jī)科學(xué)與技術(shù)、軟件工程、網(wǎng)絡(luò)工程等電氣信息類專業(yè)的一門核心課程[2]。C語言具有數(shù)據(jù)類型豐富、運(yùn)算符豐富、語言結(jié)構(gòu)清晰、邏輯性較強(qiáng)以及結(jié)構(gòu)化程序設(shè)計(jì)思想的優(yōu)點(diǎn),非常適合作為教學(xué)語言。C語言在解釋數(shù)據(jù)的使用上,可以非常清楚的理解計(jì)算機(jī)采用二進(jìn)制的設(shè)計(jì)思想。作為一門程序入門課程,對(duì)于學(xué)生理解計(jì)算機(jī)解決問題的過程和方法,進(jìn)行邏輯思維能力的訓(xùn)練以及培養(yǎng)學(xué)生解決問題的能力非常有幫助。然而,由于C語言內(nèi)容繁多,結(jié)構(gòu)復(fù)雜,思想較為抽象,對(duì)于初學(xué)者來說仍具有一定的難度。
1 C語言教學(xué)現(xiàn)狀
從學(xué)生角度來說,學(xué)生學(xué)習(xí)C語言的主要目的是為了順利通過全國計(jì)算機(jī)等級(jí)考試,拿到證書,為以后的就業(yè)增加含金量,很少從本專業(yè)出發(fā),很少考慮對(duì)以后課程的影響,所以,大多數(shù)學(xué)生覺得C語言既抽象又枯燥無味,難以理解,學(xué)生學(xué)習(xí)興趣不濃,學(xué)習(xí)效果不佳,不能真正理解程序設(shè)計(jì)的精髓[3],主要表現(xiàn)為以下幾個(gè)方面:(1)拿到程序不知該如何編寫。傳統(tǒng)的編程教學(xué)書籍過于偏重語法的訓(xùn)練,忽視了對(duì)編程過程的思維訓(xùn)練。因此,絕大部分學(xué)生拿到一個(gè)題目,比較茫然,沒有頭緒,不知該如何去寫。(2)語法內(nèi)容比較孤立,沒有形成體系。在學(xué)習(xí)中,學(xué)生對(duì)學(xué)到的語法內(nèi)容沒有總體的認(rèn)識(shí),對(duì)于平時(shí)練習(xí)的諸如“求素?cái)?shù)”、“求最大公約數(shù)”、“打印楊輝三角”等程序題缺乏理解,不知道計(jì)算機(jī)是如何實(shí)現(xiàn)的,這些對(duì)以后的學(xué)習(xí)有什么用,學(xué)生缺少總體認(rèn)識(shí)。(3)缺少對(duì)程序的測試與調(diào)試的使用[4]。傳統(tǒng)教學(xué)中,教師只注重講授語法知識(shí),對(duì)程序測試與調(diào)試方法的介紹的很少,使得學(xué)生在遇到程序運(yùn)行出錯(cuò)和結(jié)果出錯(cuò)時(shí)往往不知所措,只能依靠老師幫助解決,不會(huì)對(duì)程序進(jìn)行分析,利用適當(dāng)?shù)恼{(diào)試的方法發(fā)現(xiàn)錯(cuò)誤出現(xiàn)的原因,即使程序正確了,也沒有增加適當(dāng)?shù)臏y試過程來完善程序的設(shè)計(jì),從而降低了課后自學(xué)的信心與效率。(4)代碼規(guī)范性差,不能符合工程要求[5]。由于大部分本科教學(xué)中都只重視程序設(shè)計(jì)中的算法等理論內(nèi)容,對(duì)學(xué)生以前的要求都只限于“完成算法功能”即可,長時(shí)間忽視了代碼的規(guī)范性,造成學(xué)生寫的代碼可讀性差。
從教師角度來說,在教學(xué)過程中,為了完成教學(xué)任務(wù),主要以講授為主,缺少與學(xué)生之間的互動(dòng)交流,在教學(xué)過程中,大多是純數(shù)學(xué)的抽象案例,僅注重知識(shí)的灌輸,不重視培養(yǎng)學(xué)生對(duì)于學(xué)習(xí)程序設(shè)計(jì)的興趣和愛好,使得學(xué)生缺乏學(xué)習(xí)的熱情和主動(dòng)性。由于有些班級(jí)學(xué)生多,實(shí)驗(yàn)課布置的作業(yè)的任務(wù)較多,很多同學(xué)有些問題沒有及時(shí)解決,學(xué)習(xí)的主動(dòng)性又較差,不能獨(dú)立完成,使得學(xué)生產(chǎn)生挫敗感和厭學(xué)心理。
2 改革措施
2.1 任務(wù)驅(qū)動(dòng)
對(duì)于學(xué)好程序,筆者多年的教學(xué)體會(huì)是,要看大量的代碼。為了讓學(xué)生對(duì)于程序有深刻的認(rèn)識(shí),在每一章課前,要求學(xué)生把本章的程序代碼全部錄入到計(jì)算機(jī)中,當(dāng)把程序敲過一遍以后,上課聽講更有針對(duì)性,能很好的理解整個(gè)程序的設(shè)計(jì)過程。學(xué)生通過反復(fù)實(shí)踐,反復(fù)體會(huì),增強(qiáng)了學(xué)習(xí)信心,變被動(dòng)學(xué)習(xí)為主動(dòng)學(xué)習(xí),當(dāng)程序敲到一定的量后,對(duì)于程序就有了一個(gè)總體的認(rèn)識(shí),也能體會(huì)到前面所講的內(nèi)容后續(xù)課程哪些有所體現(xiàn),會(huì)有一個(gè)更全面的認(rèn)識(shí),學(xué)習(xí)就更有目的性和針對(duì)性。通過實(shí)踐,筆者發(fā)現(xiàn),能堅(jiān)持敲程序和代碼的同學(xué),后來都表現(xiàn)出很大的學(xué)習(xí)興趣和熱情。
2.2 培養(yǎng)學(xué)生學(xué)習(xí)興趣
興趣是最好的老師。通過調(diào)查,發(fā)現(xiàn)學(xué)生后來學(xué)不下去的主要借口是:沒有興趣。為什么沒有興趣,在追問之下,說聽不懂,沒有問題可以問,所以程序設(shè)計(jì)語言的學(xué)習(xí)有很強(qiáng)的連續(xù)性,如果一個(gè)問題沒有理解清楚,就會(huì)影響下一階段的學(xué)習(xí)。如何培養(yǎng)學(xué)生的興趣,主要是在學(xué)生的學(xué)習(xí)中,不斷的讓學(xué)生獲得滿足,有成就感。教學(xué)中,筆者不斷的鼓勵(lì)大家提問,隨時(shí)解決遇到的問題,課后也主動(dòng)通過QQ群、手機(jī)、微信等和學(xué)生建立不間斷的聯(lián)系,讓學(xué)生跟上節(jié)奏,不掉隊(duì)。同時(shí),在教學(xué)中讓學(xué)生先模仿后創(chuàng)造,以點(diǎn)帶面,從已知到未知,學(xué)會(huì)站在計(jì)算機(jī)的角度思考問題,從改編書上的程序開始,先讓他們感覺到一點(diǎn)點(diǎn)的滿足感和成就感,當(dāng)問題解決了以后,不斷的鼓勵(lì),再增加難度,一步步讓學(xué)生適應(yīng)程序的變化,增強(qiáng)信心,克服困難,學(xué)會(huì)學(xué)以致用。
2.3 改革教學(xué)內(nèi)容和方法
當(dāng)前通用的C語言教材中,通常先給出一般的語法格式,然后介紹語法規(guī)則,在進(jìn)行語法要點(diǎn)的講解,最后給出實(shí)例,這種模式有些抽象生澀,不利于學(xué)生理解。筆者認(rèn)為講解的主要模式是把生活中熟悉的案例最為引導(dǎo),讓學(xué)生思考解決問題的辦法以及最后的結(jié)果,然后引出計(jì)算機(jī)解決問題的模式,計(jì)算機(jī)對(duì)于這個(gè)問題的解決方法和結(jié)果,通過對(duì)比,讓學(xué)生有個(gè)深刻的體會(huì)和認(rèn)識(shí),當(dāng)意識(shí)到計(jì)算機(jī)的便捷后,讓學(xué)生有繼續(xù)探尋的欲望,提高了學(xué)習(xí)的主動(dòng)性。
為了更好的教學(xué),要突出教學(xué)的重點(diǎn)和難點(diǎn),筆者在教學(xué)過程注重對(duì)程序流程圖的講解,當(dāng)遇到一個(gè)問題時(shí),用流程圖的形式把思路理清,再想辦法轉(zhuǎn)換成計(jì)算機(jī)程序來實(shí)現(xiàn),這樣有助于學(xué)生理解循環(huán)和分支的概念。同時(shí)在實(shí)際講授中以一個(gè)程序?yàn)槔?,通過對(duì)一個(gè)程序深入的剖析,講明程序中哪些是不變的,哪些是變化的。在講授中通常把程序主體分成四個(gè)部分:數(shù)據(jù)定義、數(shù)據(jù)輸入、數(shù)據(jù)處理、數(shù)據(jù)輸出,數(shù)據(jù)定義包括了C語言的基本概念、基本符號(hào)、基本數(shù)據(jù)類型;數(shù)據(jù)輸入包括數(shù)據(jù)的靜態(tài)輸入和動(dòng)態(tài)輸入,引出scanf等輸入函數(shù)的使用;數(shù)據(jù)處理是講課的重點(diǎn)內(nèi)容,包括了C語言中程序控制結(jié)構(gòu),數(shù)組、函數(shù)、指針、結(jié)構(gòu)體等;數(shù)據(jù)輸出主要是各種輸出語句的使用,以及文件中涉及的內(nèi)容。這樣,在每次講課過程中,不斷加深學(xué)生對(duì)于程序四個(gè)部分的認(rèn)識(shí),讓學(xué)生在自己編程的過程中,也要注意這四個(gè)部分,理解程序的構(gòu)成,先從程序的定義開始,試著寫程序的輸入和輸出,最后再完善對(duì)數(shù)據(jù)的處理,這樣學(xué)生就知道拿到一個(gè)程序該如何下手去寫了。同時(shí)注意講解編程中遇到的錯(cuò)誤,通過對(duì)測試方法和調(diào)試工具的講解,讓學(xué)生可以自己查找程序的錯(cuò)誤,達(dá)到自學(xué)的目的。此外,在充分利用現(xiàn)代教育技術(shù)資源,恰當(dāng)運(yùn)用教學(xué)輔助工具的同時(shí),也不能荒廢傳統(tǒng)的“粉筆”+“黑板”教學(xué)模式。這種模式在在分析程序的執(zhí)行,模擬計(jì)算機(jī)的過程有很好的教學(xué)效果。
2.4 加強(qiáng)實(shí)驗(yàn)教學(xué)環(huán)節(jié)
程序設(shè)計(jì)課程是一門實(shí)踐性很強(qiáng)的專業(yè)技術(shù)課程,實(shí)驗(yàn)教學(xué)環(huán)節(jié)是構(gòu)成C語言程序設(shè)計(jì)課程教學(xué)過程的一個(gè)重要方面。很多問題的解決主要在于實(shí)驗(yàn)課環(huán)節(jié),所以把握實(shí)驗(yàn)教學(xué)是整個(gè)教學(xué)的重中之重。為了更好的幫助學(xué)生解決編程中遇到的問題,調(diào)動(dòng)學(xué)生學(xué)習(xí)的積極性和主動(dòng)性,筆者認(rèn)為,理論課上大課,實(shí)驗(yàn)課上小課,二者充分結(jié)合可以收到很好的效果。同時(shí),為了體現(xiàn)學(xué)生的個(gè)體差異,筆者依據(jù)課程教學(xué)安排,將實(shí)驗(yàn)內(nèi)容分層次設(shè)置,主要包括基本實(shí)驗(yàn)任務(wù),強(qiáng)化實(shí)驗(yàn)任務(wù)和綜合實(shí)驗(yàn)任務(wù)三部分。基本實(shí)驗(yàn)任務(wù)在于幫助學(xué)生掌握C語言的基本語法知識(shí)和程序設(shè)計(jì)的基本方法。強(qiáng)化實(shí)驗(yàn)任務(wù)在于對(duì)所學(xué)知識(shí)點(diǎn)進(jìn)一步加深理解,綜合實(shí)驗(yàn)任務(wù)在于要求學(xué)生對(duì)所學(xué)內(nèi)容的融會(huì)貫通,綜合利用所學(xué)的程序設(shè)計(jì)知識(shí),編程解決實(shí)際問題,提高分析、解決問題的能
力。同時(shí)實(shí)驗(yàn)課上重點(diǎn)解決學(xué)生在編程過程中遇到的問題,具體問題具體分析,對(duì)學(xué)有余力的同學(xué),不斷的提出新的要求,新的問題,引導(dǎo)學(xué)生更深入的思考,并要求學(xué)生提交實(shí)驗(yàn)報(bào)告,主要總結(jié)實(shí)驗(yàn)中遇到的問題,如何解決的,還有沒有其他的解決方法。實(shí)驗(yàn)教學(xué)的改革有效促進(jìn)了學(xué)生實(shí)踐編程能力的培養(yǎng)。
2.5 改革考核機(jī)制
考試是檢驗(yàn)學(xué)生對(duì)知識(shí)掌握情況的重要方式之一,但不是唯一的,應(yīng)在考核過程中充分體現(xiàn)學(xué)生對(duì)于程序設(shè)計(jì)的理解,而不僅僅體現(xiàn)對(duì)孤立知識(shí)點(diǎn)的掌握。因此對(duì)學(xué)生的期末考試中,應(yīng)分成知識(shí)點(diǎn)的考察和綜合能力兩個(gè)部分,為了反映學(xué)生對(duì)于編程的整體把握和運(yùn)用,應(yīng)安排一周程序設(shè)計(jì)周完成一個(gè)程序的設(shè)計(jì)。通過近幾年的實(shí)踐發(fā)現(xiàn)學(xué)生對(duì)于知識(shí)的掌握和綜合運(yùn)用上相比以前的學(xué)生有了很大的提高,成績也能較為真實(shí)的反應(yīng)學(xué)生的真實(shí)能力,避免了高分低能。
3 總結(jié)
C語言程序設(shè)計(jì)作為一門程序入門設(shè)計(jì)入門語言,對(duì)于編程能力的培養(yǎng)和思維訓(xùn)練有很大的作用,在教學(xué)中應(yīng)能因材施教,實(shí)時(shí)關(guān)注學(xué)生的學(xué)習(xí)情況,即時(shí)調(diào)整教學(xué)內(nèi)容和方法,一切為了教學(xué)為了提高學(xué)生學(xué)習(xí)的能力服務(wù),幫助學(xué)生找到學(xué)習(xí)的動(dòng)力,自主學(xué)習(xí),為后續(xù)的課程打好基礎(chǔ)。
參考文獻(xiàn)
[1] 崔婭萍.高職C語言教學(xué)探討與研究[J].中國科教創(chuàng)新導(dǎo)刊,
2010(28):55-56.
[2] 徐海燕.C語言程序設(shè)計(jì)教學(xué)與探討[J].中國教育技術(shù)裝備,
2011(06):57-58.
[3]肖丹鳳.C語言教學(xué)改革[J].農(nóng)業(yè)網(wǎng)絡(luò)信息,2011(06):141-142;
107.
[4] 蔣斌.高職院校計(jì)算機(jī)專業(yè)《C語言程序設(shè)計(jì)》教學(xué)探討[J].
考試周刊,2011(38):155-157.
[5] 楊陽,胡雋雅.五年制高職C語言課程中算術(shù)運(yùn)算符與表達(dá)
式的教學(xué)設(shè)計(jì)與實(shí)踐[J].職教通訊,2013(09):40-42.
作者簡介:
馬 杰(1979-),女,碩士,講師.研究領(lǐng)域:網(wǎng)絡(luò)安全.
楊 磊(1979-),男,在讀博士,講師.研究領(lǐng)域:網(wǎng)絡(luò)安全、物
聯(lián)網(wǎng).