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

?

提高C語言初學(xué)者編程能力的幾點(diǎn)措施

2015-02-23 03:42吳元斌
現(xiàn)代計(jì)算機(jī) 2015年1期
關(guān)鍵詞:初學(xué)者C語言示例

吳元斌

(重慶三峽學(xué)院計(jì)算機(jī)科學(xué)與工程學(xué)院,萬州 404000)

提高C語言初學(xué)者編程能力的幾點(diǎn)措施

吳元斌

(重慶三峽學(xué)院計(jì)算機(jī)科學(xué)與工程學(xué)院,萬州 404000)

如何提高C語言初學(xué)者的編程能力,是從事C語言教學(xué)的教師普遍重視且實(shí)現(xiàn)難度較大的教學(xué)目標(biāo)。對如何提高C語言初學(xué)者編程能力進(jìn)行探索,分析C語言初學(xué)者編程能力差的主要原因,提出提高初學(xué)者編程能力的四點(diǎn)具體方法與步驟,并進(jìn)行詳細(xì)分析,這些方法能有效地提高學(xué)生編程能力。

C語言;初學(xué)者;編程能力;計(jì)算思維

0 引言

C語言現(xiàn)在是許多高校新生的程序設(shè)計(jì)入門課程,面對程序設(shè)計(jì)及C語言的初學(xué)者,教師和學(xué)生雙方往往都付出了不少的精力,教師有心教,學(xué)生辛苦學(xué),但往往教學(xué)效果并不令人滿意。比較突出的問題是學(xué)生的編程能力普遍較差,即使是平時(shí)學(xué)習(xí)很好的學(xué)生,遇到編寫程序,特別是規(guī)模較大的程序,往往無從下手。一部分學(xué)生看不懂教材中的示例程序,特別是復(fù)雜的程序,更不知道如何寫程序。

分析造成這種現(xiàn)狀的原因,包括:重視語法的學(xué)習(xí),陷入學(xué)習(xí)C語言的語法及其細(xì)節(jié)的泥潭,閱讀分析程序少,缺少編程訓(xùn)練,上機(jī)調(diào)試程序太少,等等。這些原因固然存在,可能還比較嚴(yán)重,筆者認(rèn)為,學(xué)生不會(huì)編寫程序最重要的原因是缺乏程序設(shè)計(jì)的思維方式、方法,缺乏計(jì)算思維能力的培養(yǎng)。

因此,為了從根本上解決不會(huì)編程的問題,應(yīng)加強(qiáng)計(jì)算思維能力的培養(yǎng),讓學(xué)生學(xué)會(huì)程序設(shè)計(jì)的思維方式、方法,從而實(shí)現(xiàn)課程的教學(xué)目的。下文通過四個(gè)方面介紹了具體方法和步驟。

1 提高編程能力的方法與步驟

1.1 閱讀分析示例程序是基礎(chǔ)

教材中的示例程序(如:文獻(xiàn)[1])是面向問題的,不僅僅用來學(xué)習(xí)C語言的語法基礎(chǔ),更重要的是用來教學(xué)生如何寫程序,用來介紹編程方法與思想。通過閱讀分析這些示例程序,應(yīng)能夠起到舉一反三、觸類旁通的作用。

面對這樣的典型示例程序,最重要的是思考。不僅是學(xué)習(xí)變量定義、語句結(jié)構(gòu)、函數(shù)組成等字面上的內(nèi)容,更要分析程序的功能、編程方法,從“what to do”到“how to do”,分析其中的數(shù)據(jù)結(jié)構(gòu)與算法,還要進(jìn)一步分析其背后的計(jì)算思維方法。

程序最基本的任務(wù)是進(jìn)行數(shù)據(jù)加工,基本結(jié)構(gòu)為IPO。其中I代表Input,即數(shù)據(jù)輸入;P代表Process,即數(shù)據(jù)處理;O代表Output,即輸出計(jì)算結(jié)果。對于較復(fù)雜的任務(wù),應(yīng)強(qiáng)調(diào)任務(wù)抽象與分解的思想,即較大規(guī)模的計(jì)算任務(wù)分解成若干個(gè)規(guī)模較小且相對獨(dú)立的子任務(wù),分別用單獨(dú)的函數(shù)實(shí)現(xiàn),即模塊化。在函數(shù)實(shí)現(xiàn)中,采用結(jié)構(gòu)化的程序設(shè)計(jì)思想,還包括遞歸函數(shù)的思想等。還要分析數(shù)據(jù)組織方法,如:數(shù)組、結(jié)構(gòu)、共用體等。然后就是算法思想,如:遞歸、搜索、排序等。

1.2 大量編程實(shí)踐是根本

我們知道,學(xué)習(xí)一門新程序設(shè)計(jì)語言的唯一途徑就是使用它編寫程序[1]?!皫煾殿I(lǐng)進(jìn)門,學(xué)藝靠自身”[2],應(yīng)鼓勵(lì)學(xué)生自己寫程序,從最簡單的程序開始,循序漸進(jìn),一步一個(gè)腳印,積少成多,積小勝為大勝,不斷取得新的進(jìn)步。使學(xué)生學(xué)會(huì)基本的編程方法,具有基本的編程能力。

編寫程序的一個(gè)最基本方法是“臨摹”示例程序,課后作業(yè)應(yīng)盡量與示例程序相關(guān)聯(lián),不斷對示例程序的增強(qiáng)和完善。這樣完成編程練習(xí)時(shí),就會(huì)去復(fù)習(xí)相關(guān)的示例程序,學(xué)習(xí)其中的編程方法,并用于自己的編程練習(xí)。

編程練習(xí)除了注意與示例程序的相關(guān)性外,還要注意其典型的、趣味性、實(shí)用性,學(xué)生往往對趣味程序、游戲程序感興趣,可以加強(qiáng)這方面的練習(xí),如:九九乘法表、楊輝三角形、約瑟夫問題、Hanoi塔問題、哥德巴赫猜想等。

可以用多種方法實(shí)現(xiàn)同一個(gè)問題,如:用不同的語句實(shí)現(xiàn),用if或switch,用do while、while或for;用不同的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn),如:數(shù)組或指針;用不同的算法實(shí)現(xiàn)等。通過一個(gè)問題多種實(shí)現(xiàn),使學(xué)生感受到編程有很大的靈活性,不是死板硬套,激發(fā)了學(xué)生的計(jì)算思維能力和創(chuàng)新能力。

對于編程練習(xí),開始可以是大量簡單問題,學(xué)生力所能及,經(jīng)過努力可以完成;然后是一定量的較大規(guī)模問題??傊?,編程練習(xí)一定要有量的積累,才能夠?qū)W會(huì)編程方法,功到自然成。

1.3 在調(diào)試程序中不斷進(jìn)步

自己編寫的程序是否正確,最重要的方法是在C語言開發(fā)平臺上進(jìn)行編輯、編譯、鏈接、運(yùn)行和調(diào)試。對于初學(xué)者來說,一個(gè)友好的開發(fā)平臺是非常重要的,我們在教學(xué)中采用的是Eclipse+MinGW GCC。Eclipse環(huán)境能有效地提醒初學(xué)者在編輯過程中出現(xiàn)的語法錯(cuò)誤,避免在編譯時(shí)才能發(fā)現(xiàn)的錯(cuò)誤(有時(shí)編譯時(shí)錯(cuò)誤多達(dá)數(shù)百個(gè),讓初學(xué)者措手不及,失去調(diào)試成功的信心)。還可以通過快捷鍵Ctrl+Shift+F(或菜單Source-〉Format)格式化源程序,使源程序清晰易讀。另外,E-clipse環(huán)境Project Explorer列出了多個(gè)項(xiàng)目,在項(xiàng)目間切換方便,這對初學(xué)者帶來不少方便。

在Eclipse環(huán)境中,通過工具欄上的按鈕或“F11”便進(jìn)行調(diào)試程序過程。調(diào)試程序時(shí)可以使用斷點(diǎn)、單步執(zhí)行、Watch等工具來查看程序的運(yùn)行狀態(tài)。通過調(diào)試程序,可以發(fā)現(xiàn)并糾正程序中的各種邏輯錯(cuò)誤,培養(yǎng)學(xué)生嚴(yán)密的邏輯思維能力。

通過調(diào)試程序,會(huì)感受到模塊化、結(jié)構(gòu)化編程的重要性,當(dāng)一個(gè)程序所有的功能實(shí)現(xiàn)都放在main函數(shù)中,以至于main函數(shù)包括數(shù)百行時(shí),調(diào)試起來是多么的困難。另外,較大規(guī)模的程序在一個(gè)源程序文件中實(shí)現(xiàn)也是不好的方式。

通常調(diào)試過程并不是一帆風(fēng)順的,有時(shí)甚至很痛苦,但要耐心,應(yīng)記錄出現(xiàn)的各種問題及其解決方法,不斷分析研究出現(xiàn)的各種問題,并解決問題,及時(shí)總結(jié)取得成功的經(jīng)驗(yàn)與失敗的教訓(xùn),才會(huì)感受到“山窮水復(fù)疑無路,柳暗花明又一村”,并堅(jiān)持到調(diào)試成功,才能感受成功的喜悅,才會(huì)有暢快淋漓的感覺。

1.4 完成課程設(shè)計(jì)項(xiàng)目贏得自信

通過課程設(shè)計(jì),可以提高學(xué)生問題分析能力、規(guī)劃設(shè)計(jì)能力和團(tuán)隊(duì)合作精神等綜合能力,并進(jìn)一步提升C語言的編程能力和程序調(diào)試能力,學(xué)習(xí)軟件工程的基本方法[3],實(shí)踐軟件工程過程。

課程設(shè)計(jì)項(xiàng)目最好選擇自己感興趣的問題,也可以由教師指定,如:打字練習(xí)程序、萬年歷程序、學(xué)生成績統(tǒng)計(jì)分析、迷宮問題、文件分類管理等。課程設(shè)計(jì)項(xiàng)目要按照軟件工程方法,學(xué)會(huì)分析問題,能對較大規(guī)模的復(fù)雜問題進(jìn)行任務(wù)抽象與分解,并進(jìn)行自頂向下的設(shè)計(jì)方法,逐步求精,完成模塊化設(shè)計(jì)。對于每一個(gè)子問題,要進(jìn)行數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì),最后用C語言實(shí)現(xiàn),應(yīng)按照軟件工程方法,使程序具有良好的可讀性。然后進(jìn)行模塊測試和調(diào)試、進(jìn)行集成測試,最后完成項(xiàng)目報(bào)告。

課程設(shè)計(jì)項(xiàng)目大多數(shù)時(shí)間是在課外自主完成,需要團(tuán)隊(duì)合作,不斷堅(jiān)持,相互學(xué)習(xí),共同探討問題并不斷解決問題,去追求團(tuán)隊(duì)的成功及個(gè)人的成功。

2 結(jié)語

培養(yǎng)和提高初學(xué)者的編程能力,是C語言教學(xué)工作成功的關(guān)鍵。對于如何提高初學(xué)者的編程能力,本文提出了四個(gè)基本步驟:①閱讀分析教材中的示例程序,這是基礎(chǔ);②大量編程實(shí)踐,這是根本;③在調(diào)試程序中不斷進(jìn)步,這是階梯;④完成好課程設(shè)計(jì)項(xiàng)目,可以極大地贏得自信。通過在實(shí)際的教學(xué)過程使用,這些方法能有效地提高學(xué)生編程能力,受到學(xué)生的歡迎。這些步驟中,學(xué)習(xí)計(jì)算思維方法是最重要的,我們應(yīng)該“激發(fā)學(xué)生對計(jì)算機(jī)領(lǐng)域科學(xué)探索的興趣,傳播計(jì)算機(jī)科學(xué)的快樂、崇高和力量”[4]。

參考文獻(xiàn):

[1] Brian W.Kernighan,Dennis M.Ritchie.C程序設(shè)計(jì)語言(第2版新版)[M].徐寶文,等譯.北京:機(jī)械工業(yè)出版社,2004

[2] Greg Perry,Dean Miller.C語言編程——零基礎(chǔ)初學(xué)者指南(第3版)[M].姜佑譯.北京:人民郵電出版社,2014

[3] B.A.Forouzan,R.F.Gilberg.C程序設(shè)計(jì)——軟件工程環(huán)境(原書第3版)[M].黃林鵬等譯.北京:機(jī)械工業(yè)出版社,2008

[4] 周以真.計(jì)算思維[J].中國計(jì)算機(jī)學(xué)會(huì)通訊,2007(3):77~79

Several Measures to Improve the Programming Ability of C Language Beginners

WU Yuan-bin
(Department of Computer Science and Engineering,Chongqing Three Gorges College,Wanzhou 404000)

How to improve the programming ability for the C language beginners are the teaching objectives of C language teachers,the objectives are importance and difficult to implement.Discusses how to improve the programming ability for C language beginners.Analyzes the main causes of the poor programming ability for C language beginners,and raises four specific methods and steps to improve programming ability for beginners,and analyzes the methods in detail,which can effectively the programming ability of students.

C Language;Beginners;Programming Ability;Computational Thinking

1007-1423(2015)01-0013-03

10.3969/j.issn.1007-1423.2015.01.003

吳元斌(1965-),男,本科,副教授,從事領(lǐng)域?yàn)榇髮W(xué)計(jì)算機(jī)基礎(chǔ)教學(xué)與研究工作

2014-11-18

2014-12-08

猜你喜歡
初學(xué)者C語言示例
初學(xué)者,趕緊看過來
基于Visual Studio Code的C語言程序設(shè)計(jì)實(shí)踐教學(xué)探索
2019年高考上海卷作文示例
常見單位符號大小寫混淆示例
51單片機(jī)C語言入門方法
常見單位符號大小寫混淆示例
“全等三角形”錯(cuò)解示例
基于C語言的計(jì)算機(jī)軟件編程
淺談如何提高初學(xué)者的鋼琴演奏能力
初學(xué)者如何臨寫《九成宮醴泉路》
嘉兴市| 天等县| 山阳县| 新宾| 鹿邑县| 山阴县| 博罗县| 渭源县| 禹州市| 宜君县| 铁力市| 景德镇市| 株洲市| 普定县| 赫章县| 雷州市| 汶上县| 上虞市| 满洲里市| 嘉定区| 齐齐哈尔市| 晋江市| 汽车| 景宁| 类乌齐县| 六盘水市| 新丰县| 手游| 封丘县| 庆阳市| 庄河市| 广德县| 岚皋县| 东丽区| 巴林右旗| 奉贤区| 弥勒县| 若尔盖县| 喜德县| 平远县| 黑河市|