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