賀杰
摘要:在當(dāng)今應(yīng)用型高校計算機專業(yè)課程中,C語言程序設(shè)計是一門入門級的程序設(shè)計語言。在日常的教學(xué)過程中,教師與學(xué)生普遍認(rèn)為C語言難教也難學(xué),本文從C語言課程的教學(xué)內(nèi)容、教學(xué)手段、教學(xué)方法等方面介紹了如何教好這門課程,學(xué)生如何學(xué)好這門課程。本文針對C語言課程的五種常用教學(xué)法作了詳細(xì)的論述,培養(yǎng)學(xué)生分析問題及解決問題的能力,并對提高學(xué)生的實際編程能力,調(diào)動學(xué)生的學(xué)習(xí)積極性,對提高教學(xué)質(zhì)量起到了促進(jìn)作用。
關(guān)鍵詞:C語言教學(xué)方法學(xué)習(xí)方法任務(wù)驅(qū)動
《C語言程序設(shè)計》是計算機專業(yè)的核心課程,是最先開設(shè)的程序設(shè)計類課程,是《數(shù)據(jù)結(jié)構(gòu)》、《軟件工程》等后續(xù)專業(yè)課的基礎(chǔ)課程。程序設(shè)計語言C兼有匯編語言和高級語言的雙重優(yōu)點,運用它既能編寫操作系統(tǒng)軟件,又能開發(fā)各個領(lǐng)域的應(yīng)用軟件。C語言的實用性使之成為學(xué)習(xí)編程的首選語言。學(xué)好了C語言,再進(jìn)一步深造C++/VC++,JAVA等言語,就有了堅實的基礎(chǔ)。但目前很多學(xué)生在學(xué)習(xí)《C語言程序設(shè)計》后,感覺讀程序還湊合,編程則“難于上青天”,甚至部分學(xué)生整個課程學(xué)完卻毫無編程思想可言,僅僅是為應(yīng)付考試而死記硬背,完全背離了高校計算機專業(yè)把C語言程序作為所有程序設(shè)計類課程的入門課程的初衷。因此,如何在C語言教學(xué)中啟發(fā)并訓(xùn)練學(xué)生的編程思維,是每個教師應(yīng)深思的問題。以下是我在多年從事C語言教學(xué)中的一些看法。
一、教材
我校計算機專業(yè)本科《C語言程序設(shè)計》課程選取的是由譚浩強主編的,清華大學(xué)出版社出版的《C語言程序設(shè)計(第二版)》一書,該教材是國內(nèi)各個高校公認(rèn)的計算機專業(yè)C語言學(xué)習(xí)的經(jīng)典教材和權(quán)威。教材結(jié)構(gòu)設(shè)計合理、內(nèi)容詳盡、邏輯嚴(yán)密、解釋清晰易懂,在對C語言語法的闡述上無可挑剔。但學(xué)生反映該書有一定難度,有些應(yīng)用過于深奧,所以我們建議學(xué)生,如果有需要可以自行購買或去圖書館借閱該教材的配套練習(xí)教程,可以更好的加深理解。
二、入門
C 語言是高校計算機專業(yè)所有編程語言的入門語言,而C語言的入門應(yīng)該在第一堂課上,那么如何上好《C語言程序設(shè)計》的第一堂課就是至關(guān)重要的。因為學(xué)生都是初次接觸C語言,甚至是第一次接觸編程語言,C語言對他們來說是神秘的,而“興趣永遠(yuǎn)是最好的老師”,有了興趣他們才會積極主動地去自主學(xué)習(xí),所以第一堂課的成功與否直接關(guān)系到學(xué)生能否對這門課產(chǎn)生興趣,所以我覺得第一堂課應(yīng)為本課程的地位介紹、應(yīng)用介紹及學(xué)習(xí)方法介紹。
1、地位介紹
我在第一次C語言課程上我會展現(xiàn)程序設(shè)計語言發(fā)展的一個關(guān)系圖,如圖1所示:
圖1程序設(shè)計語言發(fā)展關(guān)系圖 通過這個圖示,學(xué)生可以更好的了解C語言的發(fā)展過程,C語言和其他編程語言的關(guān)系,對于掌握C語言的定位和該課程的重要性有一個直觀的認(rèn)識和了解。并且知道C語言是學(xué)生今后學(xué)好后繼課程的基礎(chǔ),比如C++,JAVA等。雖然程序設(shè)計語言更新很快,但如果真正掌握精了程序設(shè)計思想,具備了真正解決實際問題的能力。語言更新就算再快,可程序設(shè)計的本質(zhì)是不會變的,編程的思想是不會變的。
2、應(yīng)用介紹,激發(fā)興趣
要激發(fā)學(xué)生的興趣。首先要讓大家知道C語言的強大功能,利用它我們能編寫各種軟件,大到Windows95操作系統(tǒng)的內(nèi)核,小到一個個身邊玩過的小游戲,通過幻燈片向?qū)W生展示各種運行結(jié)果畫面,例如從50年代玩的搖桿游戲打飛機到如今的電腦游戲貪食蛇。相信這時有部分學(xué)生已經(jīng)有些“蠢蠢欲動”了,恨不得立刻學(xué)好C語言,自己也能開發(fā)這些應(yīng)用。興趣有了,學(xué)習(xí)的動力就自然有了。
3、傳授C語言的學(xué)習(xí)方法
對于應(yīng)用型高校來說,動手能力是我們在日常教學(xué)過程中,非常看重的,C語言是一門實踐性課程,要理論結(jié)合實踐,加強學(xué)生的動手能力,解決問題的能力,在學(xué)習(xí)方法上給以學(xué)生指導(dǎo),告訴學(xué)生如何自學(xué),如何聽課,如何動手實踐,明確一點:“C語言是看不會的,也聽不會,而是親自動手實踐練會的”,強調(diào)實踐的重要性。我們課程組織上就可以看出來,C語言課程每周一次理論課程,一次上機練習(xí),第一次課上我會強調(diào)C語言的上機實驗課對大家的重要性。
三、C語言教學(xué)方法
1、抽象到形象的轉(zhuǎn)化
讓學(xué)習(xí)過程變得輕松有趣是激發(fā)學(xué)生興趣的關(guān)鍵,C語言本身是一門極其抽象難懂的課程,把抽象的問題形象化,使本來枯燥無味的C語言變得魅力無限,符合學(xué)生的認(rèn)知規(guī)律,可以使教學(xué)過程收到良好的效果。例如講到C語言比較難得概念指針,我在教學(xué)過程中讓學(xué)生把指針理解為箭頭,指針變量存地址值,就是存箭頭所指空間的地址,這對學(xué)生理解指針的概念有很大幫助。
2、采用問題啟發(fā)式授課
針對C語言概念多,語法繁雜的現(xiàn)實,采用問題啟發(fā)式教學(xué)可以將哪些難以理解、難以記憶的概念和規(guī)則變成一系列的問題呈現(xiàn)在課堂教學(xué)中,這樣就能把學(xué)生的注意力集中起來,學(xué)習(xí)積極性調(diào)動起來,達(dá)到師生互動的效果,教師提出問題,自己回答為主,而與學(xué)生有問有答,互問互答為輔,改變單調(diào)死板、照本宣科的教學(xué)方法。這種啟發(fā)式、討論式、交流式的教法,不僅改變原來的灌輸式的教學(xué)方,而且增強了學(xué)生自主學(xué)習(xí)的能力,激發(fā)了學(xué)生學(xué)習(xí)的興趣。
3、“引申法”
所謂“引申法”是指是結(jié)合已經(jīng)解決的問題,因勢利導(dǎo),引導(dǎo)學(xué)生在此基礎(chǔ)上解決相關(guān)聯(lián)的問題?!耙攴ā笨梢耘囵B(yǎng)學(xué)生在程序設(shè)計方面的發(fā)散思維。提高程序設(shè)計中的應(yīng)變能力。問題是活的,但程序是有章可循的。最終使學(xué)生明白,語法是有限的,可解決的問題是無限的。只有在分析實際向題的基礎(chǔ)上,以清晰的思路去設(shè)計算法,才能舉一反三,以不變應(yīng)萬變。例如:最簡單的從1加到100,while、do-while、和for都能實現(xiàn),我寫了for循環(huán)實現(xiàn)的代碼,讓學(xué)生自行改寫用while和do-while實現(xiàn)的方法。
4、“框架法”
“框架法”主要體現(xiàn)在兩方面:一是在學(xué)生有了一點編程基礎(chǔ)后要利用偽代碼或流程圖,從算法設(shè)計的角度講解編程思路,而不應(yīng)拘泥于語法細(xì)節(jié),不分主次、逐條語句的講解代碼。通過框架,可使初學(xué)者對函數(shù)設(shè)計的關(guān)鍵問題有清晰的認(rèn)識,如主函數(shù)和子函數(shù),被調(diào)函數(shù)等,利于從全局的角度去考慮問題,分析問題,體現(xiàn)了程序設(shè)計逐步求精的思路。這樣可以層次分明,突出算法設(shè)計的關(guān)鍵,有利于培養(yǎng)學(xué)生的編程思路。二是在學(xué)習(xí)函數(shù)時,由于新的算法已很少,主要是學(xué)習(xí)用函數(shù)調(diào)用的方法來重新編制以前所熟悉的程序,那么我們可以把著眼點放在函數(shù)的設(shè)計框架上,體現(xiàn)函數(shù)訪問控制設(shè)計、參數(shù)設(shè)計、返回值設(shè)計等關(guān)鍵問題,而無需細(xì)講函數(shù)體的實現(xiàn)細(xì)節(jié)。
5、“任務(wù)驅(qū)動法”提高學(xué)生自己解決問題的能力
(1)提出任務(wù)
在課堂教學(xué)中,首先要提出一個在教學(xué)時間內(nèi)可以完成的具體任務(wù),這是任務(wù)驅(qū)動法的開始,也是重要環(huán)節(jié)。關(guān)鍵之處就在于任務(wù)的設(shè)計,其內(nèi)容必須是正在講授的相關(guān)知識點,其形式必須貼近學(xué)生日常生活,必須是學(xué)生感興趣的東西。只有這樣,才能營造寬松的教學(xué)環(huán)境,提高學(xué)生動手實踐的積極主動性。
(2)分析任務(wù)
教師在提出任務(wù)之后,采用多媒體演示或講解的方法,對完成任務(wù)所需相關(guān)知識點的內(nèi)容進(jìn)行介紹,消除學(xué)生對整個任務(wù)的陌生感,并且可以給出完成該任務(wù)的思路。這時,教師處于中心地位,發(fā)揮主導(dǎo)作用,學(xué)生通過老師介紹,對任務(wù)有了一個基本認(rèn)識,并且對完成任務(wù)的基本步驟有了一個大概的了解和規(guī)劃。
(3)執(zhí)行任務(wù)
教師根據(jù)“教學(xué)任務(wù)”所展示的內(nèi)容,讓學(xué)生開始訓(xùn)練,即邊學(xué)邊做。根據(jù)學(xué)生掌握程度的不同和教學(xué)任務(wù)的難易程度的區(qū)別,教師可以采取多種形式,如:① 教師把整個任務(wù)過程完成一遍,由學(xué)生照貓畫虎,再做一遍;② 教師僅給出思路,由學(xué)生按要求完成相應(yīng)任務(wù);③ 教師給出整體思路和操作步驟,由學(xué)生獨立按要求完成相應(yīng)任務(wù)。在此過程中,學(xué)生處于主體地位。在教師的引導(dǎo)下,學(xué)生充分發(fā)揮學(xué)習(xí)主動性和創(chuàng)造性,不僅讓學(xué)生親身感受認(rèn)知的過程,而且培養(yǎng)、提高學(xué)生解決實際問題的能力和創(chuàng)新意識。
四、結(jié)束語
在當(dāng)今應(yīng)用型本科高校,計算機專業(yè)的C語言程序設(shè)計的教學(xué)要講究方法,通過這門課的學(xué)習(xí),不僅要使學(xué)生掌握語言的基本語法規(guī)則,而且要切實培養(yǎng)學(xué)生自己獨立的分析問題,解決問題的能力,培養(yǎng)學(xué)生的創(chuàng)新精神,團(tuán)隊意識,為學(xué)生學(xué)習(xí)其他編程語言打下良好的基礎(chǔ)。
參考文獻(xiàn):
[1] 譚浩強.C語言程序設(shè)計(第三版)[M].北京:清華大學(xué)出版社,2008