摘要:函數(shù)在C程序設(shè)計(jì)課程中占有非常重要的地位,但對(duì)于初學(xué)者來(lái)說(shuō),這部分內(nèi)容很難理解。本文從函數(shù)這部分內(nèi)容自身的特點(diǎn)及學(xué)生的學(xué)習(xí)狀況出發(fā),探討了使用點(diǎn)面結(jié)合的方法,突破函數(shù)教學(xué)過(guò)程中的重難點(diǎn)。
關(guān)鍵詞:C程序設(shè)計(jì);函數(shù);重難點(diǎn);突破;點(diǎn)面結(jié)合
中圖分類號(hào):G642文獻(xiàn)標(biāo)識(shí)碼:B
1函數(shù)的教學(xué)現(xiàn)狀
C程序設(shè)計(jì)這門課程是學(xué)生進(jìn)入大學(xué)后的第一門專業(yè)課,而函數(shù)這一章是安排在基本的數(shù)據(jù)類型、3種基本的程序結(jié)構(gòu)和數(shù)組之后。這些章節(jié)的內(nèi)容是層層遞進(jìn)的,學(xué)生學(xué)習(xí)過(guò)程中雖然存在很多疑惑,但在學(xué)習(xí)程序結(jié)構(gòu)時(shí)會(huì)進(jìn)一步理解數(shù)據(jù)類型中相關(guān)的知識(shí),學(xué)習(xí)數(shù)組時(shí)又會(huì)對(duì)循環(huán)、選擇結(jié)構(gòu)有進(jìn)一步的認(rèn)識(shí)。因此在學(xué)習(xí)函數(shù)之前,學(xué)生已經(jīng)具備了初步的編寫函數(shù)的能力。但學(xué)生對(duì)C程序整個(gè)函數(shù)的參數(shù)、函數(shù)的返回值、函數(shù)的調(diào)用在前面章節(jié)都沒(méi)有接觸到,在教學(xué)過(guò)程中可以利用學(xué)生已具備的相關(guān)知識(shí)引出函數(shù)這一章的重難點(diǎn)。
2重難點(diǎn)分析
函數(shù)這一章的教學(xué)目標(biāo)是讓學(xué)生理解C程序中函數(shù)的相關(guān)機(jī)制,能夠編寫出正確的函數(shù),并靈活地使用函數(shù)編寫出模塊化的程序設(shè)計(jì)。因此,函數(shù)教學(xué)中的重點(diǎn)是函數(shù)的定義、函數(shù)的調(diào)用、函數(shù)的參數(shù)、函數(shù)的返回值。只要把這一部分內(nèi)容弄清楚了,學(xué)生就可以動(dòng)手自己編寫各種函數(shù)了,而且還能夠編寫出由函數(shù)組成的模塊化程序。
函數(shù)教學(xué)中的難點(diǎn)有三個(gè)。第一,高屋建瓴地建立函數(shù)的概念。了解為什么要使用一個(gè)個(gè)的函數(shù)組成完整的程序,進(jìn)一步理解函數(shù)的作用。第二,函數(shù)的調(diào)用過(guò)程。要弄清楚發(fā)生函數(shù)調(diào)用時(shí)程序是按什么樣的流程處理的,以及函數(shù)調(diào)用過(guò)程中涉及到局部變量和全局變量的問(wèn)題。第三,函數(shù)的參數(shù)。弄清楚函數(shù)中實(shí)參和形參的關(guān)系后才能夠編寫正確的程序,得到正確的結(jié)果。
3重難點(diǎn)突破方法
3.1在備課上下功夫
俗話說(shuō):臺(tái)上一分種,臺(tái)下十年功。要想把課講好,首先就要把握好備課環(huán)節(jié)。備課環(huán)節(jié)主要涉及到三個(gè)方面,第一是備知識(shí)點(diǎn),第二是備學(xué)生,第三是備教材。
函數(shù)的教學(xué)過(guò)程中主要講解函數(shù)的定義、函數(shù)的調(diào)用、函數(shù)的參數(shù)和函數(shù)的返回值幾個(gè)知識(shí)點(diǎn)。備課時(shí)首先針對(duì)學(xué)生的基本情況確定各個(gè)知識(shí)點(diǎn)的講解深度。雖然學(xué)生具備了函數(shù)體的知識(shí),但對(duì)函數(shù)的定義只是一個(gè)模糊的認(rèn)識(shí),因此還要進(jìn)行系統(tǒng)的講解才能完全建立函數(shù)的相關(guān)概念。因?yàn)閷W(xué)生的基礎(chǔ)有限,無(wú)法在函數(shù)的調(diào)用教學(xué)過(guò)程中讓學(xué)生完全弄清楚函數(shù)的調(diào)用過(guò)程,所以在函數(shù)的調(diào)用教學(xué)過(guò)程中主要講解函數(shù)的聲明及函數(shù)的調(diào)用過(guò)程。函數(shù)參數(shù)過(guò)程中主要是形式參數(shù)和實(shí)際參數(shù)的關(guān)系問(wèn)題,這是學(xué)生最容易疑惑的地方。學(xué)生往往不清楚哪里是形式參數(shù),哪里是實(shí)際參數(shù),也不明白值傳遞的意思。函數(shù)的返回值相對(duì)來(lái)說(shuō)相好理解一些,但也要講清楚return語(yǔ)句的用法及函數(shù)返回值的類型。
確定知識(shí)點(diǎn)講解的深度之后就要認(rèn)真地研讀教材。每個(gè)老師都對(duì)函數(shù)這一章的相關(guān)知識(shí)都了如指掌,但自己明白不一定就講得明白。而且教材(譚浩強(qiáng)編寫的《C程序設(shè)計(jì)第3版》)的講解順序不一定適合所有的學(xué)生,我在教學(xué)過(guò)程中根據(jù)學(xué)生的實(shí)際情況對(duì)知識(shí)點(diǎn)的講解順序進(jìn)行了調(diào)整。教材中講解的順序是函數(shù)的定義、函數(shù)的參數(shù)、函數(shù)的返回值,最后講函數(shù)的調(diào)用。我在教學(xué)過(guò)程中將函數(shù)的調(diào)用提到了前面,放在函數(shù)的定義之后。目的是先弄清楚了函數(shù)的定義和調(diào)用后,學(xué)生對(duì)函數(shù)的整體有了充分的認(rèn)識(shí),然后再對(duì)函數(shù)使用過(guò)程中的細(xì)節(jié),即函數(shù)的參數(shù)和函數(shù)的返回值做深入地探討,這樣有利于學(xué)生形成函數(shù)的整體概念,能更快地掌握函數(shù)相關(guān)的知識(shí)。如果在建立整體概念之前就陷入細(xì)節(jié)之中,很難達(dá)到好的教學(xué)效果。
3.2精彩引入,事半功倍
教材在引入函數(shù)的定義時(shí)用了專門的一小節(jié),為了便于理解,教材中引入的兩個(gè)函數(shù)都是無(wú)參函數(shù),這樣很容易讓學(xué)生只形成無(wú)參函數(shù)的概念,到了學(xué)習(xí)有參函數(shù)時(shí)很難接受。而且教材中引入的例子沒(méi)有真正體現(xiàn)函數(shù)的代碼可以重用這一目的,因此我在引入的過(guò)程中借鑒了《Java就業(yè)培訓(xùn)教程》一書中的方法,首先讓學(xué)生用循環(huán)語(yǔ)句實(shí)現(xiàn)輸出下面的圖形。
學(xué)生馬上就可以用三個(gè)循環(huán)語(yǔ)句寫出完整的程序。有部分同學(xué)很快就發(fā)現(xiàn)三個(gè)循環(huán)結(jié)構(gòu)形式是一樣的,不同的是其中的循環(huán)次數(shù)。這時(shí)候就可以引入函數(shù)的定義,使用函數(shù)可以很好地解決這個(gè)問(wèn)題,把循環(huán)次數(shù)作為函數(shù)的參數(shù),寫出函數(shù)的形式。這時(shí)候直接把輸出函數(shù)和主函數(shù)的形式寫出來(lái),讓學(xué)生明白用函數(shù)可以將某些功能提取出來(lái),可以實(shí)現(xiàn)代碼的重用。
這種引入方法從一個(gè)實(shí)際的例子出發(fā),由淺入深地引出了函數(shù)的定義,可以讓學(xué)生一步一步地理解函數(shù)的概念,而且可以將函數(shù)的參數(shù)很自然地帶出來(lái),學(xué)生可以很容易地理解參數(shù)的作用。程序執(zhí)行完成后,學(xué)生也可以對(duì)函數(shù)的定義和函數(shù)的調(diào)用有一定的感性上的認(rèn)識(shí)。
3.3突出重難點(diǎn),點(diǎn)面結(jié)合
函數(shù)這一章之所以難理解是因?yàn)槊總€(gè)知識(shí)點(diǎn)不是孤立存在的,在講解一個(gè)知識(shí)點(diǎn)的同時(shí)還要用到其他知識(shí)點(diǎn)的內(nèi)容,但講解的時(shí)候不能一股腦地全部放在學(xué)生面前,學(xué)生也不容易消化。因此在講解某個(gè)知識(shí)點(diǎn)的時(shí)候,一點(diǎn)要突出這個(gè)知識(shí)點(diǎn)相關(guān)的內(nèi)容,只有把每個(gè)知識(shí)點(diǎn)都理解透了才能綜合運(yùn)用各個(gè)知識(shí)點(diǎn)。在講解函數(shù)定義的時(shí)候就是要讓學(xué)生學(xué)會(huì)函數(shù)的定義方法,可以先介紹函數(shù)的形式,然后讓學(xué)生分別確定函數(shù)的各個(gè)部分。函數(shù)定義時(shí)主要確定函數(shù)的類型、函數(shù)的參數(shù),函數(shù)體的編寫學(xué)生基本已經(jīng)掌握了。函數(shù)的調(diào)用部分主要講解函數(shù)調(diào)用的過(guò)程,根據(jù)函數(shù)的執(zhí)行結(jié)果仔細(xì)分析函數(shù)的調(diào)用過(guò)程。函數(shù)的參數(shù)部分主要講解函數(shù)形參和實(shí)參的關(guān)系,讓學(xué)生清楚函數(shù)
形參和實(shí)參值傳遞的過(guò)程。函數(shù)的返回值部分要求學(xué)生能根據(jù)函數(shù)的返回值確定函數(shù)的類型。
除了要突出重難點(diǎn)之外,還要注意知識(shí)的融合,做到點(diǎn)面結(jié)合。函數(shù)的定義部分也會(huì)涉及函數(shù)的參數(shù)和函數(shù)的返回值的問(wèn)題,因此在這部分也要講解函數(shù)參數(shù)和函數(shù)類型的相關(guān)知識(shí),但函數(shù)定義部分只講解確定函數(shù)參數(shù)和函數(shù)類型的方法,而在函數(shù)參數(shù)部分重點(diǎn)講解的是形參和實(shí)參的值傳遞過(guò)程。這樣在突破重難點(diǎn)的同時(shí)也對(duì)其他的知識(shí)點(diǎn)相關(guān)的部分進(jìn)行了講解,讓重難點(diǎn)進(jìn)行適當(dāng)?shù)姆稚?,做到循序漸近,步步深入。點(diǎn)面結(jié)合的方式也有助于學(xué)生形成整體的概念,提高學(xué)生的應(yīng)用能力。
3.4選擇恰當(dāng)?shù)睦?/p>
合適的例子在函數(shù)的教學(xué)過(guò)程中起著舉足輕重的作用,不僅可以讓學(xué)生能夠?qū)⑺鶎W(xué)的理論知識(shí)上升到實(shí)踐的高度,還能夠讓學(xué)生從整體上理解函數(shù)的定義、函數(shù)的調(diào)用、函數(shù)的參數(shù)和函數(shù)的返回值這些分散的知識(shí)點(diǎn)。此外,還可以利用典型的例子使學(xué)生掌握很多常用函數(shù)的使用。引入過(guò)程中合適的例子可以起到事半功倍的作用。在講解函數(shù)定義時(shí),可以以不同類型的函數(shù)為例,讓學(xué)生對(duì)邏輯類型和各種數(shù)值類型函數(shù)的處理有一定的理解,便于以后實(shí)踐過(guò)程中能靈活應(yīng)用。還可以舉幾個(gè)參數(shù)個(gè)數(shù)和參數(shù)類型不同的函數(shù),讓學(xué)生學(xué)會(huì)處理實(shí)際應(yīng)用中碰到的問(wèn)題。
3.5實(shí)驗(yàn)環(huán)節(jié)不可放松
實(shí)驗(yàn)環(huán)節(jié)既是對(duì)課堂教學(xué)效果的反應(yīng),也是學(xué)生將所學(xué)的知識(shí)轉(zhuǎn)化為自己的應(yīng)用能力最好的時(shí)機(jī)。實(shí)驗(yàn)環(huán)節(jié)中既要實(shí)現(xiàn)課堂上講解的典型例子,也要適當(dāng)?shù)丶尤氩糠志C合性較強(qiáng)的實(shí)例。實(shí)驗(yàn)環(huán)節(jié)實(shí)例既要注意綜合性,還要注意難度不要太大,不要因?yàn)閷W(xué)生對(duì)前面知識(shí)消化不透而影響了函數(shù)這一章的學(xué)習(xí)。我在這一章引入的是簡(jiǎn)單算術(shù)運(yùn)算器的例子,這個(gè)例子既具有一定的綜合性,而且還非常便于擴(kuò)充,基礎(chǔ)較好的同學(xué)可以做得復(fù)雜一些。
4小結(jié)
本文對(duì)函數(shù)教學(xué)過(guò)程中的重難點(diǎn)進(jìn)行了深入的剖析,并從備課、課堂教學(xué)、教材分析、實(shí)驗(yàn)等環(huán)節(jié)以及學(xué)生的學(xué)習(xí)情況等各方面分析了如何突破本章的重點(diǎn)和難點(diǎn)。教學(xué)過(guò)程中應(yīng)該注意學(xué)生的實(shí)際學(xué)習(xí)情況,認(rèn)真設(shè)計(jì)自己的教學(xué)方案,以便達(dá)到更好的教學(xué)效果。
參考文獻(xiàn)
[1] 譚浩強(qiáng). C程序設(shè)計(jì)(第三版)[M]. 北京:清華大學(xué)出版社,2005.
[2] 張孝祥. Java就業(yè)培訓(xùn)教程[M]. 北京:清華大學(xué)出版社,2003.
[3] 謝偉增,李瑾. C語(yǔ)言程序設(shè)計(jì)中的重點(diǎn):函數(shù)與指針[J]. 河南廣播電視大學(xué)學(xué)報(bào),2003.
[4] 孫玉霞. C語(yǔ)言程序設(shè)計(jì)中若干問(wèn)題的探討[J]. 沈陽(yáng)航空工業(yè)學(xué)院學(xué)報(bào),2004.