謝穎
摘要:隨著我國計(jì)算機(jī)的發(fā)展和普及,計(jì)算機(jī)軟件設(shè)計(jì)也在不斷地發(fā)展,加大了我國對(duì)計(jì)算機(jī)軟件設(shè)計(jì)人才的需求,很多高校和技術(shù)院校都設(shè)立了相關(guān)的專業(yè),以培養(yǎng)專業(yè)人才,從而滿足社會(huì)的需求。C語言作為計(jì)算機(jī)軟件設(shè)計(jì)的一門學(xué)科,它具有很強(qiáng)的抽象性和實(shí)踐性,所以在日常的專業(yè)教授中,老師要貫徹“重程序,輕語法”的理念,強(qiáng)調(diào)程序的重要性,把語法放在次之的地位,正確地引導(dǎo)學(xué)生對(duì)程序設(shè)計(jì)的認(rèn)識(shí)和了解,讓學(xué)生抓住重點(diǎn)。該文則對(duì)重程序,輕語法理念在高校C語言教學(xué)中的巧妙應(yīng)用展開探討。
關(guān)鍵詞:重程序;輕語法;C語言教學(xué)
中圖分類號(hào):G64 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)08-0106-02
隨著我國計(jì)算機(jī)的快速發(fā)展,軟件設(shè)計(jì)也有了很大的進(jìn)步,并且在高校和高校中都設(shè)置了相應(yīng)的課程,以此培養(yǎng)相關(guān)的技術(shù)人員以滿足社會(huì)發(fā)展的需要。在C語言的傳統(tǒng)教學(xué)中,大部分老師都只注重學(xué)生C語言語法的學(xué)習(xí),忽視了學(xué)生學(xué)習(xí)程序的重要性,顛倒了二者的輕重地位,所以要在今后的教學(xué)中逐漸讓它們回歸原位,“重程序,輕語法”在高校C語言教學(xué)中是非常重要的,并且在這一理念的指導(dǎo)下促進(jìn)了高校C語言教學(xué)的改革。
1 教學(xué)方式從教室授課轉(zhuǎn)向機(jī)房授課
在以往的C語言設(shè)計(jì)的教學(xué)模式上,往往都是在普通教室進(jìn)行授課,老師跟著課本或者教案在黑板上編寫一些教程或者是利用多媒體教學(xué),原本是課堂主體的學(xué)生卻處于被動(dòng)地位,學(xué)生只是單純地看著老師寫編程或者是在多媒體上操作,雖然老師講得很詳細(xì),但是一節(jié)課下來能記住的寥寥無幾[1]。C語言是一門實(shí)踐操作性很強(qiáng)的學(xué)科,老師對(duì)理論的教授無法滿足學(xué)生學(xué)習(xí)的需要,所以就要逐漸轉(zhuǎn)變?cè)械氖谡n方式,使教室授課向機(jī)房授課轉(zhuǎn)變。在機(jī)房授課每個(gè)學(xué)生都有一臺(tái)電腦,隨著老師的講解,學(xué)生可以一步步地跟著操作,在操作的過程中逐漸學(xué)會(huì)了C語言編程的過程,一節(jié)課下來通過自己的實(shí)際操作能記住大部分內(nèi)容,并且對(duì)本節(jié)課的知識(shí)進(jìn)行了消化吸收,機(jī)房授課不再是老師一人講,學(xué)生也不再是紙上談兵,在機(jī)房他們可以大膽實(shí)踐,在計(jì)算機(jī)上編寫程序要比在教室里學(xué)語法更能學(xué)好C語言,機(jī)房授課可以讓學(xué)生更多地接觸計(jì)算機(jī),在計(jì)算機(jī)上多多練習(xí)程序的編寫,這樣才能更好更快地學(xué)習(xí)C語言,通過多次的練習(xí)與實(shí)踐,學(xué)生就能慢慢掌握相應(yīng)的語法規(guī)則和一些基本句式,多實(shí)踐才能有所提高[2]。
這種授課方式的改變也直接影響了C語言的考核方式,使考核方式更加注重學(xué)生的實(shí)際動(dòng)手操作能力,考核方式的改變會(huì)直接促進(jìn)學(xué)生的上機(jī)練習(xí)。
機(jī)房授課不僅能增加學(xué)生的實(shí)戰(zhàn)能力,提高學(xué)生的編程能力,更重要的是可以改變以往課堂的沉悶,打破老師一言堂的現(xiàn)象,學(xué)生在機(jī)房里充分發(fā)揮了自己的主體作用,充分調(diào)動(dòng)了學(xué)生的積極主動(dòng)性,激發(fā)了學(xué)生的學(xué)習(xí)興趣,使學(xué)生喜歡編程,喜歡通過計(jì)算機(jī)獲取成就感,從而提高學(xué)生的操作能力和專業(yè)能力。
2 加大“讀程序”教學(xué)引導(dǎo)學(xué)生自主學(xué)習(xí)
在學(xué)習(xí)C語言的時(shí)候,編程對(duì)于學(xué)生是很難的,很多學(xué)生不知如何下手,所以在日常教學(xué)中,老師要引導(dǎo)學(xué)生去“讀程序”,這是促進(jìn)學(xué)生掌握C語言程序設(shè)計(jì)的基本知識(shí)最有效的方法,它能最快地促進(jìn)學(xué)生學(xué)會(huì)C語言程序設(shè)計(jì),這也是“重程序”的一個(gè)重要的表現(xiàn)[3]。
在剛剛接觸C語言的時(shí)候,學(xué)生對(duì)于C語言的語言邏輯和語言環(huán)境都不是很熟悉,要熟悉這些知識(shí)就必須多讀程序,從而使學(xué)生能夠盡快地適應(yīng)程序代碼,加快學(xué)生讀代碼的速度,這樣不僅能加深學(xué)生對(duì)代碼的理解,還能促進(jìn)學(xué)生對(duì)程序的理解。
3 淡化語法細(xì)節(jié)加大學(xué)生編程能力培養(yǎng)
“重程序,輕語法”理念在高校的影響最直接的表現(xiàn)就是老師在教授C語言的時(shí)候盡量淡化語法的細(xì)節(jié),把重點(diǎn)放在了編程能力的培養(yǎng)上。
C語言是計(jì)算機(jī)設(shè)計(jì)軟件的一門課程,它的本質(zhì)是很抽象的,而且涉及很多的知識(shí)點(diǎn),所以就導(dǎo)致很多C語言老師在授課時(shí)過分注重C語言的語法細(xì)節(jié),這種做法會(huì)給學(xué)生形成一種誤解,從而使學(xué)生在老師的所謂的“重點(diǎn)”下,認(rèn)識(shí)不到C語言的程序設(shè)計(jì)的基本思想和方法,只注重語法的學(xué)習(xí),忽略了編程的重要性。隨著軟件開發(fā)的不斷發(fā)展,軟件開發(fā)的環(huán)境也不斷更新,學(xué)生必須將程序設(shè)計(jì)的基本思想和方法作為自己學(xué)習(xí)的指導(dǎo),這樣才能提高自身的學(xué)習(xí)效率,促進(jìn)學(xué)生學(xué)習(xí)新的知識(shí)[4]。在C語言的教學(xué)中,老師要從基本的概念出發(fā),不斷強(qiáng)調(diào)C語言編程思想,而不要過分的強(qiáng)調(diào)一些細(xì)節(jié)問題,給學(xué)生造成重點(diǎn)錯(cuò)覺,對(duì)一些比較難的編程老師可以多舉一些實(shí)際例子來幫助學(xué)生理解和運(yùn)用,打開學(xué)生的思路,促進(jìn)他們舉一反三。
在教學(xué)活動(dòng)中老師要時(shí)刻注重培養(yǎng)學(xué)生在編程方面的能力,培養(yǎng)他們相關(guān)的編程思想,以及解決問題的相關(guān)思路,從而淡化對(duì)語法的學(xué)習(xí)。在學(xué)生編程的過程中,對(duì)于學(xué)生的一些格式、語法等細(xì)節(jié)問題,不要太過責(zé)備,反而要注重編程風(fēng)格這件大事,培養(yǎng)出學(xué)生自己的編程風(fēng)格有利于學(xué)生的學(xué)習(xí)和工作的進(jìn)步[5]。編程整體很重要,先強(qiáng)調(diào)編程的重要性,然后再強(qiáng)調(diào)細(xì)節(jié),細(xì)節(jié)決定成敗,不強(qiáng)調(diào)并不意味著不重要。
4 實(shí)現(xiàn)語法算法并重提高學(xué)生學(xué)習(xí)興趣
在程序軟件學(xué)習(xí)中C語言屬于入門課程,主要任務(wù)為講解程序設(shè)計(jì)基本思想、C語言語法,并且還需要重點(diǎn)培養(yǎng)學(xué)生的計(jì)算機(jī)應(yīng)用能力。以《C++程序設(shè)計(jì)(第2版)》為例,內(nèi)容可以分成4個(gè)方面,分別是程序設(shè)計(jì)基本概念和方法、控制結(jié)構(gòu)及結(jié)構(gòu)化程序設(shè)計(jì)方法、數(shù)據(jù)結(jié)構(gòu)表示以及面向?qū)ο蟪绦蛟O(shè)計(jì),其中前三個(gè)方面則為C語言及C++語言兩者共同學(xué)習(xí)的內(nèi)容,其中包括程序設(shè)計(jì)基本類型、結(jié)構(gòu)語法知識(shí)以及各種查找、排序算法等等。在C語言傳統(tǒng)教學(xué)中通常都是教師機(jī)械性的講解知識(shí)點(diǎn),讓學(xué)生死記硬背,通常學(xué)生學(xué)習(xí)積極性不高,知識(shí)掌握質(zhì)量較差[6]。想要解決這一問題,那么也就需要在教學(xué)過程中應(yīng)用案例教學(xué),以此激發(fā)學(xué)生對(duì)變成的興趣,在實(shí)施實(shí)驗(yàn)教學(xué)過程中,應(yīng)該將重點(diǎn)放在學(xué)生練習(xí)上面。但是在進(jìn)行教學(xué)過程中普遍能夠積極引導(dǎo)學(xué)生應(yīng)用C語言設(shè)計(jì)程序解決實(shí)際問題,但是對(duì)于C語言程序設(shè)計(jì)語言中的計(jì)算思維普遍忽視?;谶@一情況在進(jìn)行C語言教學(xué)過程中,必須要實(shí)現(xiàn)語法學(xué)習(xí)及算法設(shè)計(jì)同等位置,以能夠讓學(xué)生可以將設(shè)計(jì)者在進(jìn)行C語言設(shè)計(jì)一開始的思維脈絡(luò)逐步還原。這樣不但有助于引導(dǎo)學(xué)生對(duì)C語言本身設(shè)計(jì)思路有一個(gè)全面深入的理解,以此減少學(xué)生語法類錯(cuò)誤的出現(xiàn),并且還能夠促進(jìn)學(xué)生在其他領(lǐng)域?qū)語言程序設(shè)計(jì)的應(yīng)用能力。
5 加大啟發(fā)式案例應(yīng)用引導(dǎo)學(xué)生積極探索
我們以字符集、標(biāo)識(shí)符以及關(guān)鍵字為例,這些均是C語言學(xué)習(xí)的基本語法規(guī)則。在傳統(tǒng)語法教學(xué)過程中,一般情況下都會(huì)將這些知識(shí)點(diǎn)機(jī)械地認(rèn)為C語言規(guī)定,對(duì)于學(xué)生來講這就是必須要嚴(yán)格遵守的規(guī)則。這種教學(xué)方式也就為學(xué)生C語言學(xué)習(xí)開了一個(gè)枯燥的頭,必定大部分學(xué)生都討厭死記硬背。其實(shí)在這些死板的語法規(guī)則中也蘊(yùn)含著一定的計(jì)算思維確定性及機(jī)械性特點(diǎn),那么對(duì)其實(shí)施啟發(fā)式案例教學(xué),則更有助于提高學(xué)生學(xué)習(xí)興趣[7-8]。首先可以提出問題:怎樣才能夠讓計(jì)算機(jī)幫助你完成加法功能?這一問題的答案則是“寫出一個(gè)程序”,但是我們本次教學(xué)采用的是啟發(fā)式教學(xué),也不必要求學(xué)生能夠給出正確答案。其次,則可以再次提出問題“關(guān)于我們想要計(jì)算機(jī)完成的事,我們是不是也應(yīng)該寫個(gè)程序告訴計(jì)算機(jī)?那么到底應(yīng)該怎么寫呢?”那么在這一問題提出之后,對(duì)于已經(jīng)預(yù)習(xí)過課文的學(xué)生也就能夠知道通過“字符”或者“字符集”,那么在這個(gè)時(shí)候也就可以追問“什么字符都能夠?qū)懺诔绦蛑心兀俊庇行W(xué)生也就可以通過課本內(nèi)容給出答案“不是”。在這個(gè)時(shí)候也就可以開始和學(xué)生討論字符集的整整含義,并指出學(xué)生的答案也并不是全面的,基于廣義角度來看,任何字符均可以書寫在程序中,同時(shí)也能夠用于注釋或字符串中。但是在教材中所規(guī)定的字符集和程序執(zhí)行密切相關(guān),因此不是所有字符均寫在程序中。之后可以繼續(xù)提出問題“如果想要告訴計(jì)算機(jī)程序中涉及3個(gè)數(shù),應(yīng)該怎么書寫字符?”“怎樣才能夠知道這3個(gè)數(shù)均是整數(shù)呢?”等等問題,關(guān)于學(xué)生的則可以依照實(shí)際情況加以引導(dǎo),最終引出C語言的解決方案即可。總之通過一系列的問題啟發(fā)式案例教學(xué),學(xué)生不但能夠?qū)語言程序設(shè)計(jì)不同知識(shí)點(diǎn)概念有一個(gè)全面的理解,并且還能夠熟練掌握計(jì)算思維中的確定性及機(jī)械性,提高學(xué)生對(duì)C語言的理解,以此顯著提高高校C語言教學(xué)的有效性。
6 結(jié)束語
隨著計(jì)算機(jī)應(yīng)用的范圍越來越廣,我國的計(jì)算機(jī)軟件也有了長(zhǎng)足的發(fā)展,在很多高校中都設(shè)立了C語言課程,對(duì)于一些基礎(chǔ)比較差的學(xué)生來說C語言是比較難學(xué)的,再加上很多學(xué)校的教學(xué)理念不合適,顛倒了C語言教學(xué)的重點(diǎn)與非重點(diǎn),容易給教學(xué)和學(xué)生的學(xué)習(xí)帶來困難,因此要樹立“重程序、輕語法”的理念,加強(qiáng)對(duì)程序的教與學(xué)。老師通過要轉(zhuǎn)變授課方式,以上機(jī)授課為主要的教學(xué)方式,讓學(xué)生在計(jì)算機(jī)上實(shí)際操作,從而激發(fā)學(xué)生的興趣,提高學(xué)生學(xué)習(xí)的積極主動(dòng)性,促進(jìn)學(xué)生對(duì)專業(yè)知識(shí)的把握,從而加強(qiáng)學(xué)生的專業(yè)能力、提高學(xué)生的專業(yè)素質(zhì),培養(yǎng)出高素質(zhì)的專業(yè)人才。
參考文獻(xiàn):
[1] 徐新海,林宇斐.注重計(jì)算思維的啟發(fā)式C語言語法教學(xué)[J].計(jì)算機(jī)教育,2014(17):1-4.
[2] 丁海燕,袁國武,周小兵,等.高級(jí)語言程序設(shè)計(jì)案例教學(xué)模式的探討[J].計(jì)算機(jī)教育,2011(8):65-68.
[3] 李曄,盧冰,王捷,等.ACM競(jìng)賽平臺(tái)在C語言程序設(shè)計(jì)教學(xué)中的應(yīng)用研究[J].中國校外教育(上旬刊),2013,(8):164.
[4] 丁群,文明瑤.項(xiàng)目教學(xué)法在C語言教學(xué)中的應(yīng)用[J].電腦知識(shí)與技術(shù),2012,8(7):1686-1687.
[5] 楊劭君,蘇小紅,王甜甜等.C語言詞法語法分析工具CParser的設(shè)計(jì)與實(shí)現(xiàn)[J].智能計(jì)算機(jī)與應(yīng)用,2014,4(5):69-71,75.
[6] 張連成.淺析C語言與C++的異同[J].福建電腦,2005(9):70-71.
[7] 李沫沫,夏姜虹,商宇,等.《C語言程序設(shè)計(jì)》教學(xué)探索與實(shí)踐[J].科技創(chuàng)新導(dǎo)報(bào),2012(24):163-164.
[8] 顧思思,楊杰.提高C語言課程學(xué)習(xí)興趣的方法探索與實(shí)踐[J].湖南科技學(xué)院學(xué)報(bào),2014(5):135-136.