陳浩
摘要:目前很多高校都開設(shè)C語言這門課程,該文針對C語言的特點(diǎn),結(jié)合自己的教學(xué)經(jīng)驗(yàn)
提出了幾個(gè)教學(xué)方法,通過實(shí)際教學(xué)中的驗(yàn)證,驗(yàn)證了這些方法的可行性。該文從幾個(gè)方面來探討C語言教學(xué),包括開闊學(xué)生眼界,讓學(xué)生從零基礎(chǔ)學(xué)起;在教學(xué)過程中注意理論聯(lián)系實(shí)際,給學(xué)生更深刻的體驗(yàn);通過解決一些實(shí)際問題來組織教學(xué)過程;采用多種方法來組織教學(xué);最后在實(shí)驗(yàn)過程中培養(yǎng)學(xué)生的程序能力。
關(guān)鍵詞:理論;實(shí)踐;創(chuàng)新;算法
中圖分類號:G642 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2015)26-0058-02
Discussion of Teaching Method with “C Programming Language ”
CHEN Hao
(Department of Computer Science, Huashang College, Guangdong University of Finance and Economics, Guangzhou 510000,China)
Abstract: At present many colleges and universities have opened the C programming language , according to the characteristic of C language, Several teaching methods are put forward with its own teaching experiences, and the feasibility of these methods is verified by the verification of practical teaching. This paper discusses teaching c language from several aspects, including broaden students' horizons, let the students learn from the zero based; in the teaching process of attention theory with reality, to give students a more profound experience. Solving some practical problems to organize the teaching process; using a variety of methods to organize teaching. Finally culturing the program ability of students.
Key words: theory; practice; innovation; algorithm
1概述
《C語言》是一種目前比較流行的一門高級語言,C語言有以下一些主要特點(diǎn)[1]:1)語言簡潔,緊湊,使用方便,靈活,C語言的運(yùn)算符包含的范圍很廣泛,表達(dá)式類型多樣,C語言提供了豐富的數(shù)據(jù)類型,包括整型,浮點(diǎn)型,字符型,數(shù)組類型,指針類型,C語言具有結(jié)構(gòu)化的控制語句,用函數(shù)作為程序的模塊單位,便于實(shí)現(xiàn)程序的模塊化。2)C語言語法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大,C語言允許程序編寫者有較大的自由度,放寬了語法檢查。C語言中具有大量的數(shù)據(jù)類型,并且可以使用指針來進(jìn)行程序設(shè)計(jì)。通過學(xué)習(xí)本門課程,學(xué)生應(yīng)該能夠熟練的編寫和調(diào)試C語言程序,熟悉一些算法的使用,掌握一些程序設(shè)計(jì)的思路和方法,能夠使用C程序來解決一些問題。
C語言主要包括四個(gè)方面的內(nèi)容,第一個(gè)是算法,也就是為了解決一個(gè)問題而采取的方法和步驟。第二個(gè)方面是程序設(shè)計(jì)的三種方法,順序程序設(shè)計(jì),選擇結(jié)構(gòu)的程序設(shè)計(jì),循環(huán)結(jié)構(gòu)的程序設(shè)計(jì),順序結(jié)構(gòu)還包括數(shù)據(jù)類型和數(shù)據(jù)的輸入輸出。選擇結(jié)構(gòu)適用于需要進(jìn)行判斷和選擇的情況,比如從北京出發(fā)上高速,就有2個(gè)選擇,一個(gè)選擇是去上海方向,一個(gè)選擇是去沈陽方向,可以先進(jìn)行判斷再來進(jìn)行選擇。循環(huán)結(jié)構(gòu)用于需要重復(fù)處理的問題,比如求從1到100這100個(gè)數(shù)的和,循環(huán)結(jié)構(gòu)有多種形式,比如while ,do while ,for等,這些循環(huán)結(jié)構(gòu)在處理同一問題時(shí)候,一般情況下它們可以互相代替。第三個(gè)是數(shù)組和函數(shù),使用數(shù)組和函數(shù)可以把一些比較復(fù)雜的問題簡單化,數(shù)組中的每一個(gè)元素都屬于同一個(gè)數(shù)據(jù)類型,不能把不同類型的數(shù)據(jù)放在同一個(gè)數(shù)組中。每一個(gè)函數(shù)用來實(shí)現(xiàn)一個(gè)特定的功能,函數(shù)的名字應(yīng)反映其代表的功能。第四個(gè)部分是指針,地址形象化地稱為指針,通過它能找到以它為地址的內(nèi)存單元[4]。
2 C語言教學(xué)方法
對于初學(xué)程序設(shè)計(jì)的學(xué)生來說,存在著不少困惑,可以從如下幾個(gè)方面去提高C程序設(shè)計(jì)的教學(xué)效果:
2.1 開闊眼界,從基礎(chǔ)學(xué)起
對于大多數(shù)學(xué)生來說,中學(xué)階段都沒有接觸過程序設(shè)計(jì),在最初學(xué)習(xí)C語言的過程中,很多概念,語法,數(shù)據(jù)類型讓學(xué)生迷惑,前面的基礎(chǔ)語法,數(shù)據(jù)類型沒有搞懂,后面的程序結(jié)構(gòu)設(shè)計(jì)等就更加不容易學(xué)好。有些學(xué)生在學(xué)習(xí)C語言的時(shí)候有好高騖遠(yuǎn)的情緒,認(rèn)為現(xiàn)在應(yīng)用的比較多的是面向?qū)ο蟮某绦蛟O(shè)計(jì),對C語言的認(rèn)識不夠深刻,覺得C語言學(xué)習(xí)起來難度大,沒有信心去學(xué)習(xí)。因此在教學(xué)的第一步應(yīng)該讓學(xué)生對學(xué)習(xí)這門語言樹立信心,由于C語言對后續(xù)的課程起到一個(gè)打基礎(chǔ)的作用,因此學(xué)好這門課程是很有必要的,學(xué)好了C語言,后續(xù)的很多專業(yè)課程學(xué)起來會輕松很多。
2.2 在教學(xué)中,應(yīng)該注意理論和實(shí)踐相結(jié)合
在教學(xué)過程中要注意教學(xué)內(nèi)容和教學(xué)方法的使用,不能只是枯燥的講授C語言的語法,而應(yīng)該把教學(xué)內(nèi)容進(jìn)行有序的組織起來,否則學(xué)生會因?yàn)橹v授的內(nèi)容比較沉悶而提不起興趣,如何激發(fā)學(xué)生的興趣成了教學(xué)過程中的一個(gè)大問題。在課件的準(zhǔn)備上也要下一些功夫,在課本的基礎(chǔ)上可以加入一些自己的想法和見解,使學(xué)生更能接受。結(jié)合現(xiàn)在社會的需求,可以講解現(xiàn)在企業(yè),公司的需求和待遇,現(xiàn)在計(jì)算機(jī)程序人才的需求量還是比較大,而且薪水也比較客觀,一方面讓學(xué)生在課堂上就能了解社會工作的需求,更加堅(jiān)定學(xué)生學(xué)習(xí)的信心,當(dāng)學(xué)生想到自己通過學(xué)習(xí)程序設(shè)計(jì)語言,可以找到高薪的工作,有了學(xué)習(xí)的動力。
2.3 通過解決實(shí)際問題來組織教學(xué)
C語言是一門實(shí)驗(yàn)性很強(qiáng)的課程,教材上的例題以及課后的習(xí)題都需要通過實(shí)驗(yàn)來實(shí)現(xiàn),設(shè)計(jì)合理的實(shí)驗(yàn)對整個(gè)教學(xué)有很重要的意義。剛剛接觸程序設(shè)計(jì)的學(xué)生往往動手能力不強(qiáng),對于程序設(shè)計(jì)很陌生。為了培養(yǎng)學(xué)生的動手能力和創(chuàng)新能力,我們采取循序漸進(jìn)的方法,把一個(gè)復(fù)雜的程序分成幾個(gè)小的程序來講解,先做基本的實(shí)驗(yàn),然后逐步提高,這樣符合認(rèn)知的習(xí)慣,通過一段時(shí)間的實(shí)驗(yàn)和學(xué)習(xí),學(xué)生的動手能力和理解能力都會有不同程度的提高。采用啟發(fā)式的教學(xué)方法,比如在講解循環(huán)結(jié)構(gòu)時(shí),[2]舉例s=1+2+3+4...+100,當(dāng)學(xué)生了解程序設(shè)計(jì)方法后,再提出一個(gè)例題[3]s=1-1/2+1/3-1/4+...1/100,從而引導(dǎo)學(xué)生逐層深入的學(xué)習(xí)循環(huán)結(jié)構(gòu)的程序設(shè)計(jì)思想。在程序設(shè)計(jì)中還可以通過一些趣味性的程序來調(diào)動學(xué)生的學(xué)習(xí)興趣,比如猴子吃桃問題等,讓學(xué)生通過編寫這些程序來提高實(shí)際解決問題的能力,通過課堂上的講解,課后的作業(yè)能很大程度的提高學(xué)生的程序能力。學(xué)生做實(shí)驗(yàn)時(shí),如果通過程序設(shè)計(jì)能得出最后正確的結(jié)果,學(xué)生也會有一定的成就感。
2.4 采用多種教學(xué)方法來進(jìn)行教學(xué)
要使教學(xué)達(dá)到比較好的效果,我們采用了靈活多變的教學(xué)方法,充分調(diào)動學(xué)生的學(xué)習(xí)積極性,把學(xué)生吸收到程序設(shè)計(jì)中來,我們通過下面兩個(gè)方面來進(jìn)行:
1)在做有些程序的時(shí)候,不一次性的把程序?qū)懗鰜?,只寫出程序的一部分,其余的部分讓學(xué)生自己去補(bǔ)充,從而引導(dǎo)學(xué)生去思考這個(gè)程序,或者故意把程序的一部分內(nèi)容寫錯(cuò),當(dāng)運(yùn)行出一個(gè)結(jié)果的時(shí)候,讓學(xué)生去檢查修改這個(gè)程序,對于在課堂上主動發(fā)言或者修改程序的學(xué)生給予一定的分?jǐn)?shù)獎勵(lì),比如可以平時(shí)成績加3分,學(xué)生通過上課修改程序可以提高自己的平時(shí)成績。
2)針對上課時(shí)候有些學(xué)生開小差的問題,可以布置一些習(xí)題讓學(xué)生去解答,如果學(xué)生能設(shè)計(jì)出正確的思路或者算法,給予學(xué)生每次2分的獎勵(lì),讓學(xué)生對后面的學(xué)習(xí)充滿信心,這樣學(xué)生的創(chuàng)造性也能激發(fā)出來,有些學(xué)生的思路是很開闊的,只要采用正確的教育方法,就能產(chǎn)生很好的教學(xué)效果。在實(shí)際教學(xué)中,我們發(fā)現(xiàn)有些學(xué)生能解答出很復(fù)雜的程序,通過這樣的教學(xué)方法可以豐富教學(xué)手段[5]。
2.5 在教學(xué)實(shí)驗(yàn)過程中培養(yǎng)學(xué)生的程序能力
C語言這門課程比較強(qiáng)調(diào)實(shí)驗(yàn),只有把C語言的實(shí)驗(yàn)做熟練了,才能更好的掌握c程序,理論和實(shí)踐要結(jié)合起來學(xué)習(xí),在考試的這個(gè)環(huán)節(jié),也可以安排上機(jī)操作的環(huán)節(jié),上機(jī)實(shí)驗(yàn)成績占20%,在上機(jī)的過程中,每個(gè)學(xué)生做幾道題目,讓學(xué)生寫出相應(yīng)的代碼,然后調(diào)試成功能運(yùn)行才行。采用這種上機(jī)考核的方式,可以提高學(xué)生上機(jī)寫代碼的積極性,當(dāng)程序出現(xiàn)錯(cuò)誤的時(shí)候,能自己把錯(cuò)誤找出來,并調(diào)試正確是程序設(shè)計(jì)的一種基本能力[6]。通過上機(jī)考試可以看出學(xué)生的程序能力,與理論考試想結(jié)合,能更好的了解學(xué)生的程序設(shè)計(jì)能力。如果要培養(yǎng)應(yīng)用能力強(qiáng),素質(zhì)較高的學(xué)生,可以在平時(shí)的上機(jī)學(xué)習(xí)時(shí),增加一些難度稍大的題目,讓學(xué)生有更多思考的機(jī)會,最后通過自己獨(dú)立編寫程序來解答問題。
3結(jié)束語
課程的教學(xué)包括教和學(xué)兩個(gè)方面,教師的教是為了學(xué)生的學(xué),認(rèn)真組織好這兩個(gè)環(huán)節(jié),就可以提高我們的教學(xué)效果,從而讓學(xué)生學(xué)到更多的知識,理論和實(shí)際也要注意結(jié)合起來,讓學(xué)生既懂得編寫程序,又能上機(jī)調(diào)試運(yùn)行程序。C語言是很多學(xué)科的專業(yè)基礎(chǔ)課,組織好課程的教學(xué),需要我們不斷努力,精心組織實(shí)施,這樣才能使我們的教學(xué)有更大的發(fā)展,使學(xué)生的學(xué)習(xí)效果不斷提高。
參考文獻(xiàn):
[1] 徐大華. 程序設(shè)計(jì)語言教學(xué)方法探討[J]. 高等理科教育,2007,71(1):36-38.
[2] 譚浩強(qiáng). C程序設(shè)計(jì)[M]. 北京:高等教育出版社, 2010.
[3] 譚浩強(qiáng), 張基溫. C語言習(xí)題集與上機(jī)指導(dǎo)[M]. 北京:高等教育出版社, 2005.
[4] 陳國英. 提高計(jì)算機(jī)語言課上機(jī)實(shí)踐教學(xué)的改革與實(shí)踐[J]. 洛陽農(nóng)業(yè)高等專科學(xué)校學(xué)報(bào), 2002(3).
[5] 楊忠. 儀器儀表類課程教學(xué)改革的研究與實(shí)踐[J]. 電氣電子教學(xué)學(xué)報(bào),2001,23(6):20-22.
[6] 沈軍. C程序設(shè)計(jì)語言課程的教學(xué)新思路[J]. 電氣電子教學(xué)學(xué)報(bào), 2000(4).