国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

非計(jì)算機(jī)專業(yè)C語言教學(xué)研究

2018-05-28 11:10李鳳強(qiáng)
電腦知識與技術(shù) 2018年9期
關(guān)鍵詞:任務(wù)驅(qū)動(dòng)教學(xué)C語言

李鳳強(qiáng)

摘要:C語言程序設(shè)計(jì)是一門實(shí)踐性、工程性很強(qiáng)的課程,旨在培養(yǎng)學(xué)生編寫程序解決實(shí)際問題的能力。在非計(jì)算機(jī)專業(yè)的C語言教學(xué)中,由于重理論,輕實(shí)踐,同時(shí)缺乏調(diào)試技能和編碼規(guī)范的培養(yǎng),導(dǎo)致教學(xué)效果不佳,不能達(dá)到人才培養(yǎng)的目的。該文分析了產(chǎn)生這些問題的原因,同時(shí)指出了對策,將有利于全面培養(yǎng)學(xué)生的編程能力。

關(guān)鍵詞:C語言;任務(wù)驅(qū)動(dòng)教學(xué);程序調(diào)試;編碼規(guī)范;編程能力

中圖分類號:G642 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2018)09-0127-03

Abstract:The programming of C language is an application course with the focuses of practicality and engineering, which aims to develop students' programming skills to solve practical problems. Due to theory is valued and practice is despised in the C language teaching process for the students of non computer majors , at the same time, pay less attention on the teach of debugging skills and coding standards, all this caused that the teaching efficiency is not good enough to achieve the goal of talent training. This paper analyzes the reasons and presents the solutions for above problems, which will help develop students programming ability.

Key words: C language; task-driven; debug; coding standards; programming

1 引言

C語言程序設(shè)計(jì)是一門實(shí)踐性、工程性很強(qiáng)的課程,旨在培養(yǎng)學(xué)生編寫程序解決實(shí)際問題的能力,很多非計(jì)算機(jī)專業(yè)中也開設(shè)了這門課程。傳統(tǒng)的C語言教學(xué)重理論輕實(shí)踐,同時(shí)不能根據(jù)非計(jì)算機(jī)專業(yè)學(xué)生的特點(diǎn)因材施教,或者在培養(yǎng)學(xué)生的編程能力時(shí)只傳授了編寫程序的方法,但沒有傳授調(diào)試的方法和編碼規(guī)范化的要求,導(dǎo)致學(xué)生的編程能力先天不足,無法達(dá)到較好的教學(xué)效果。

2 教學(xué)現(xiàn)狀

2.1 照搬教材,不做二次開發(fā)

在C語言程序設(shè)計(jì)的教學(xué)中很多老師只是按照教材的內(nèi)容把對應(yīng)的知識傳授給了學(xué)生,并沒有對教材內(nèi)容進(jìn)行二次開發(fā)以適應(yīng)學(xué)生的特點(diǎn)和教學(xué)過程。教材的編寫體例是為了系統(tǒng)的傳授知識,注重內(nèi)容之間的邏輯關(guān)系和系統(tǒng)性,但是并不完全適合學(xué)生的認(rèn)知規(guī)律。這樣的教學(xué),老師就變成了教材的復(fù)述器,無法提高學(xué)生的學(xué)習(xí)興趣,自然達(dá)不到良好的教學(xué)效果。

2.2 調(diào)試技能培養(yǎng)缺失

程序是由人編寫的,難免會(huì)出現(xiàn)各種問題。程序出現(xiàn)問題后,這就需要用到調(diào)試技能,調(diào)試程序的能力是編程能力中非常重要的一個(gè)方面?,F(xiàn)實(shí)是C語言課程教學(xué)中,調(diào)試技能的培養(yǎng)很多時(shí)候都是缺失的。這其中一個(gè)很重要的原因就是我們很多老師都是學(xué)校畢業(yè)后就進(jìn)入了大學(xué)從教,自身寫程序比較少,大型的程序就更少了,對于調(diào)試的重要性體會(huì)不是很深,調(diào)試的技能也有所缺失,導(dǎo)致教學(xué)中弱化了對學(xué)生調(diào)試技能的培養(yǎng)。

2.3 編碼規(guī)范化培養(yǎng)缺失

作為專業(yè)的程序開發(fā)人員不僅要能夠根據(jù)問題編寫程序,而且要能夠編寫符合編碼規(guī)范的程序,程序要寫的簡潔,清楚,美觀,邏輯清晰,層次分明。C語言程序設(shè)計(jì)課程中,教師對學(xué)生的要求偏重于能否實(shí)現(xiàn)功能,對于編碼規(guī)范的要求幾乎沒有,導(dǎo)致學(xué)生編碼規(guī)范素養(yǎng)的缺失。

3 教學(xué)改進(jìn)措施

3.1 重視任務(wù)驅(qū)動(dòng)教學(xué)

通過實(shí)踐證明對于學(xué)生來說按照教材的體例按部就班地進(jìn)行理論傳授會(huì)有很多弊端:

1)學(xué)生沒有興趣。C語言中有很多的理論知識,如果就理論講理論,學(xué)生會(huì)陷入學(xué)了很多東西但是不知道如何使用的困境,時(shí)間一長就失去了學(xué)習(xí)的興趣,效果自然就打了折扣。

2)學(xué)生不知道所學(xué)知識有何用途。C語言教材開始部分有很多理論比如數(shù)據(jù)類型、操作符等,如果我們按部就班進(jìn)行理論傳授,就會(huì)造成學(xué)生學(xué)了好幾周,也不知道如何寫程序,心中會(huì)有很多迷惑和不解,影響教學(xué)效果。

任務(wù)驅(qū)動(dòng)教學(xué)法是一種建立在建構(gòu)主義學(xué)習(xí)理論基礎(chǔ)上的教學(xué)法,它將以往以傳授知識為主的傳統(tǒng)教學(xué)理念,轉(zhuǎn)變?yōu)橐越鉀Q問題、完成任務(wù)為主的多維互動(dòng)式的教學(xué)理念,將再現(xiàn)式教學(xué)轉(zhuǎn)變?yōu)樘骄渴綄W(xué)習(xí),使學(xué)生處于積極的學(xué)習(xí)狀態(tài),每一位學(xué)生都能根據(jù)自己對當(dāng)前問題的理解,運(yùn)用共有的知識和自己特有的經(jīng)驗(yàn)提出方案、解決問題。

在使用任務(wù)驅(qū)動(dòng)教學(xué)法的時(shí)要注意兩個(gè)問題:

1)所構(gòu)造的任務(wù)和情景要和學(xué)生將來從事的工作盡量切合。C語言是一門高級編程語言,從理論上來說可以解決任何問題,所以我們在構(gòu)造教學(xué)任務(wù)的時(shí)候可以有很多種選擇。選擇符合學(xué)生所學(xué)職業(yè)的工作任務(wù),能夠調(diào)動(dòng)學(xué)生學(xué)習(xí)的積極性,起到事半功倍的效果;

2)任務(wù)的難度要適中。對于非計(jì)算機(jī)的學(xué)生來說,邏輯思維,程序思維都有待進(jìn)一步培養(yǎng),所以任務(wù)不能過于數(shù)學(xué)化,最好是邏輯思維很直觀,但是手工操作很麻煩最好借助計(jì)算機(jī)來實(shí)現(xiàn)的的任務(wù)。

3.2 重視調(diào)試技能培養(yǎng)

C語言是一門實(shí)踐性很強(qiáng)的課程,目的就是培養(yǎng)學(xué)生編寫程序解決實(shí)際問題的能力,這個(gè)能力中不可缺少的就是調(diào)試技能。程序是由人編寫的,由于各種原因編寫的程序難免存在各種BUG,如果沒有調(diào)試技能,當(dāng)我們面對各種BUG時(shí)將費(fèi)時(shí)費(fèi)力甚至束手無策。掌握調(diào)試技能可以使我們快速地修改編譯錯(cuò)誤,高效的定位邏輯錯(cuò)誤,提高開發(fā)的效率。

3.2.1 編譯錯(cuò)誤

編譯錯(cuò)誤是在編譯程序時(shí)報(bào)的錯(cuò)誤,大多數(shù)都是語法錯(cuò)誤,編譯器也會(huì)提供比較詳細(xì)的說明告訴你錯(cuò)誤是什么,這些錯(cuò)誤是比較好改的。常見的編譯錯(cuò)誤有:缺少分號、括號不匹配、未定義的標(biāo)識符、變量在使用前未初始化等等。編譯錯(cuò)誤只要看懂編譯信息就可以快速地修改。這里面要注意一個(gè)問題,有時(shí)候編譯器會(huì)報(bào)很多錯(cuò)誤,但是其實(shí)只是一處有問題,然后導(dǎo)致后面都錯(cuò)了,這時(shí)候最關(guān)鍵的就是要找到這一處錯(cuò)誤然后修改掉,重新編譯之后由它引起的編譯錯(cuò)誤也就自然消失了。

3.2.2 邏輯錯(cuò)誤

邏輯錯(cuò)誤是指程序通過編譯可以正常運(yùn)行,但是運(yùn)行結(jié)果不符合預(yù)期或者出現(xiàn)程序奔潰或停止運(yùn)行等問題。解決邏輯錯(cuò)誤一般有兩種方法一種是源代碼審核,一種是運(yùn)行調(diào)試。

源代碼審核就是通過閱讀源代碼發(fā)現(xiàn)其中存在的問題,這是非常重要的一步,在專業(yè)的軟件公司開發(fā)流程中都有源代碼審核的步驟和要求。在C語言學(xué)習(xí)開始,所寫程序都是非常簡單的,這時(shí)候主要培養(yǎng)學(xué)生反復(fù)閱讀代碼的習(xí)慣,就是通過反復(fù)的閱讀代碼發(fā)現(xiàn)自己程序的語法問題、邏輯問題。

運(yùn)行調(diào)試中需要學(xué)生掌握最基本的調(diào)試方法。1)會(huì)設(shè)置斷點(diǎn);2)會(huì)在VC開發(fā)環(huán)境中啟動(dòng)調(diào)試模式;3)會(huì)單步跟蹤4)會(huì)在VC開發(fā)環(huán)境的watch窗口中查看變量的值;5)會(huì)在VC開發(fā)環(huán)境的memory窗口中查看指定內(nèi)存的值。6)會(huì)查看VC開發(fā)環(huán)境的Output窗口輸出的信息。上面的這些基本方法掌握之后就可以進(jìn)行最基本的調(diào)試,教學(xué)中要求的調(diào)試技能已經(jīng)基本達(dá)到。

在實(shí)際工作中,軟件的規(guī)模會(huì)增大很多,邏輯也會(huì)復(fù)雜很多,調(diào)試有時(shí)候就成了創(chuàng)造性的工作,因此也需要給學(xué)生傳授一些調(diào)試技巧。

1)分析問題的現(xiàn)象和代碼,大膽猜測問題產(chǎn)生的位置。比如程序報(bào)內(nèi)存錯(cuò)誤,需要重點(diǎn)關(guān)注有內(nèi)存申請和使用的代碼,然后根據(jù)產(chǎn)生這個(gè)問題的操作,大膽猜測是哪一處代碼的問題。

2)運(yùn)用一切能夠運(yùn)用的方法來進(jìn)行調(diào)試。比如程序生成一個(gè)xml文件,生成的xml文件在某一個(gè)地方有問題,導(dǎo)致無法正常解析。這時(shí)候我們可以采用二分法來定位問題產(chǎn)生的位置,具體就是先完整生成一半內(nèi)容,如果有問題,再生成這一半中的一半,如果沒有問題,生成剩余部分的一半,通過這種折半查找的方法來鎖定問題出現(xiàn)的位置,然后再用基本的調(diào)試方法跟蹤為何會(huì)產(chǎn)生這樣的問題,最后解決問題。二分查找不屬于任何的調(diào)試方法,但是他可以幫助我們定位問題出現(xiàn)的位置,所以我們在調(diào)試的時(shí)候要放開自己的思維,不能死板,多動(dòng)腦子,多思考,這樣才能提高解決問題的能力。

培養(yǎng)調(diào)試能力的方法:

1)教師演示調(diào)試的方法;

2)學(xué)生通過調(diào)試自己的程序鞏固調(diào)試的基本技能;

3)教師在上機(jī)輔導(dǎo)時(shí)要有意識的培養(yǎng)學(xué)生自己通過調(diào)試程序解決問題的能力;

4)設(shè)計(jì)一些具有典型問題的程序,讓學(xué)生做調(diào)試練習(xí),提高學(xué)生調(diào)試的技能。

3.3 重視編碼規(guī)范化培養(yǎng)

3.3.1 重視編碼規(guī)范化的理由

良好的編碼風(fēng)格是編程能力中非常重要的能力,良好的編碼風(fēng)格可以保證程序的正確性、穩(wěn)定性、易讀性。重視編碼規(guī)范化培養(yǎng)基于以下兩個(gè)方面的考慮:

1)對于計(jì)算機(jī)專業(yè)的學(xué)生來說即使沒有在C語言的課程中介紹或要求編碼規(guī)范,也會(huì)在后續(xù)的軟件工程課程中學(xué)到編碼規(guī)范的要求和思想,而對于非計(jì)算機(jī)專業(yè)的學(xué)生來說,后續(xù)是沒有軟件工程課程的,如果沒有在C語言程序設(shè)計(jì)中介紹編碼規(guī)范的要求,養(yǎng)成基本的編碼規(guī)范的能力、學(xué)生們將無法培養(yǎng)這方面的能力。

2)編碼規(guī)范化非常重要。首先規(guī)范的編碼會(huì)顯得更加專業(yè)。一個(gè)程序是否是專業(yè)人員編寫,從編碼是否規(guī)范上基本就可以判斷出來。符合編碼規(guī)范的程序會(huì)給人一種簡潔、清晰,賞心悅目的感覺,不符合編碼規(guī)范的程序會(huì)給人一種亂糟糟的感覺。其次規(guī)范的編碼會(huì)降低程序出錯(cuò)的可能性。比如我們常用的==符號,一般程序員會(huì)寫成if(i==1),如果誤寫成了if(i=1),程序就不是我們需要的邏輯了。專業(yè)的程序員會(huì)寫成if(1==i),如果我們誤寫成了if(1=i),這時(shí)候編譯的時(shí)候會(huì)報(bào)錯(cuò),讓我們可以提前發(fā)現(xiàn)錯(cuò)誤,提高程序的正確性。再比如內(nèi)存操作函數(shù)malloc()和free(),這兩個(gè)函數(shù)是成對出現(xiàn)的,所以我們在書寫的時(shí)候一定要成對的寫,寫完malloc()函數(shù)之后就直接寫上free()函數(shù),然后在它們中間寫我們需要的程序,這樣就可以保證所有申請的函數(shù)都得到了釋放,不會(huì)造成內(nèi)存泄露。如果不這樣做,就有可能造成內(nèi)存泄露,然后內(nèi)存被消耗殆盡導(dǎo)致宕機(jī)事件。

3.3.2 培養(yǎng)編碼規(guī)范的方法

1)老師在演示程序編寫時(shí)有意識的貫穿編碼規(guī)范化的要求。

2)在評判學(xué)生的作業(yè)時(shí),除過對程序的功能性要求外,加入對編碼規(guī)范化的要求。

3)通過比較符合編碼規(guī)范的程序和不符合編碼規(guī)范的程序,讓學(xué)生直觀的感受編碼規(guī)范的重要性。

4)提供一些不符合編碼規(guī)范的程序,讓學(xué)生修改使其符合編碼規(guī)范,通過這樣的練習(xí),培養(yǎng)學(xué)生的編碼規(guī)范能力。

4 總結(jié)

C語言程序設(shè)計(jì)是一門實(shí)踐性很強(qiáng)的課程,教師要根據(jù)非計(jì)算機(jī)專業(yè)學(xué)生的特點(diǎn),通過任務(wù)驅(qū)動(dòng)教學(xué)法使學(xué)生輕松掌握c語言程序設(shè)計(jì)的能力。通過提高學(xué)生的調(diào)試能力,可以使學(xué)生在開發(fā)程序的時(shí)候可以獨(dú)立自主的解決程序中出現(xiàn)的問題,減少對老師的依賴,提高學(xué)習(xí)的成就感。通過編碼規(guī)范化的培養(yǎng),使學(xué)生認(rèn)識編碼規(guī)范的重要性和掌握編碼規(guī)范的一些基本要求,使學(xué)生不僅能夠開發(fā)程序,而且能夠?qū)懗銎恋馁|(zhì)量高的程序,進(jìn)一步提高開發(fā)的能力。

參考文獻(xiàn):

[1] 趙麗娜.高職非計(jì)算機(jī)專業(yè)”c程序設(shè)計(jì)”課程改革[J].中國市場,2017(18):283-284.

[2] 張鑫.高校非計(jì)算機(jī)專業(yè)《C語言程序設(shè)計(jì)》課程建設(shè)的創(chuàng)新研究[J].電子世界,2017(3):77-79

[3] 楊曉諳.高校非計(jì)算機(jī)專業(yè)C語言課程教學(xué)改革探討[J].電腦知識與技術(shù),2017,27(9):138-139.

[4] 夏蕓.非計(jì)算機(jī)專業(yè)《C語言程序設(shè)計(jì)》循環(huán)結(jié)構(gòu)教學(xué)用例探討[J].電腦知識與技術(shù),2017,35(12):163-165.

[5] 劉磊.基于應(yīng)用型人才培養(yǎng)的“C語言程序”課程教學(xué)改革的探討與實(shí)踐[J].當(dāng)代教研論叢,2017(17):25+27.

[6] 姚衡.計(jì)算機(jī)C語言編程過程中的常見問題[J].電子技術(shù)與軟件工程,2018(1):246.

[7] 鄒靜. 淺談大學(xué)C語言教學(xué)方法[J].現(xiàn)代職業(yè)教育,2017(1):126.

[8] 龐曉鳳.淺析非計(jì)算機(jī)專業(yè)《C語言》課程教學(xué)改革[J].高教學(xué)刊,2017(7):118-119.

猜你喜歡
任務(wù)驅(qū)動(dòng)教學(xué)C語言
基于Visual Studio Code的C語言程序設(shè)計(jì)實(shí)踐教學(xué)探索
基于C語言的計(jì)算機(jī)軟件編程
C語言程序設(shè)計(jì)課程教學(xué)與學(xué)科專業(yè)相結(jié)合的探索
任務(wù)驅(qū)動(dòng)教學(xué)在中職課堂的探討
任務(wù)驅(qū)動(dòng)教學(xué)法在高中信息技術(shù)教學(xué)中的應(yīng)用
任務(wù)驅(qū)動(dòng)教學(xué)法在中職計(jì)算機(jī)教學(xué)中的應(yīng)用
高職高專院校C語言程序設(shè)計(jì)教學(xué)改革探索
論子函數(shù)在C語言數(shù)據(jù)格式輸出中的應(yīng)用
非計(jì)算機(jī)專業(yè)C語言教學(xué)探討