C語(yǔ)言函數教學(xué)設計與實(shí)踐論文
一、函數在C語(yǔ)言程序設計課程中的地位
函數部分的學(xué)習被安排在三大程序控制結構之后,有利于學(xué)生對函數知識點(diǎn)的系統學(xué)習,也能夠使學(xué)生深刻理解結構化程序設計的全局思想,在大學(xué)期間開(kāi)設《C語(yǔ)言程序設計》課程的主要目的是培養學(xué)生充分利用信息時(shí)代的優(yōu)勢,通過(guò)編程解決實(shí)際問(wèn)題的能力。實(shí)際上C程序的基本組成單位是函數,課程所有知識點(diǎn)的學(xué)習最終都將落實(shí)到編寫(xiě)各種函數來(lái)進(jìn)行驗證和實(shí)現。因此,學(xué)生只有靈活掌握函數的運用,才能為后續學(xué)習奠定堅實(shí)基礎。
二、傳統函數教學(xué)存在的問(wèn)題
傳統函數教學(xué)流程如下:
其一,函數定義及其形式;
其二,函數形參,return語(yǔ)句,函數返回值;
其三,函數聲明,格式,位置;
其四,函數調用,函數實(shí)參等。這種傳統的教學(xué)流程過(guò)于強調函數語(yǔ)法知識,概念和規則的講解,這樣導致學(xué)生似懂非懂,與教學(xué)理念相違背,為了適應教學(xué)要求,突出以學(xué)生為主,教員為輔的教學(xué)理念,主要探討函數的教學(xué)設計及實(shí)踐[1]。
三、新的函數教學(xué)設計及方法
函數教學(xué)主要以發(fā)現問(wèn)題、分析問(wèn)題、解決問(wèn)題為思路開(kāi)展教學(xué),以啟發(fā)、引導、對比和總結為輔幫助學(xué)生分析問(wèn)題解決提出的問(wèn)題。不僅可以讓學(xué)生帶著(zhù)興趣學(xué)習,也會(huì )加深學(xué)生對知識點(diǎn)的深刻理解及靈活應用。本堂課的教學(xué)流程是:交代任務(wù);提出問(wèn)題、發(fā)現問(wèn)題、解決問(wèn)題;鞏固練習[2]。
第一,提出問(wèn)題、分析問(wèn)題、解決問(wèn)題。學(xué)生只學(xué)過(guò)在main函數中編寫(xiě)簡(jiǎn)單程序,于是向學(xué)生拋出問(wèn)題:復雜程序應如何進(jìn)行組織和設計?在此,給學(xué)生一些時(shí)間利用main函數來(lái)解決給定任務(wù),解決完畢和同學(xué)生一起驗證結果,然后引導學(xué)生分析這種解決方式在實(shí)際中存在的問(wèn)題,并啟發(fā)學(xué)生思考解決此問(wèn)題的最佳方法,從而引出學(xué)習的內容——函數法。接著(zhù)再次引導學(xué)生用函數法重新解決給定的任務(wù),最后將解決該任務(wù)的兩種方法進(jìn)行對比,讓學(xué)生討論、體會(huì )并總結出復雜程序的設計方法。
第二,鞏固練習。在這個(gè)環(huán)節,筆者設計了帶有陷阱的小例子:通過(guò)編寫(xiě)swap函數來(lái)實(shí)現主函數中兩個(gè)整數的交換,給學(xué)生一些時(shí)間討論、驗證結果,引導學(xué)生分析其中的`問(wèn)題,同時(shí)引出函數調用流程這一知識點(diǎn),并通過(guò)動(dòng)畫(huà)演示的方式幫助學(xué)生分析函數調用流程。
四、函數教學(xué)實(shí)踐
第一,利用結構化程序設計原則設計復雜程序。在main函數中編程解決問(wèn)題的基礎上引導學(xué)生獨立解決給定任務(wù),發(fā)現大部分學(xué)生都能很好地編寫(xiě)出程序,讓學(xué)生觀(guān)察上述代碼,聯(lián)系實(shí)際啟發(fā)引導學(xué)生討論并總結出如下問(wèn)題:
其一,代碼冗余;
其二,不易維護;
其三,可靠性差;
其四,可讀性差。
在此基礎上啟發(fā)學(xué)生剖析問(wèn)題并讓學(xué)生給出解決方案,即main函數沒(méi)有能力獨自解決整個(gè)任務(wù),這樣很自然引出復雜C程序組織和設計的原則:自頂向下,逐步細化,模塊化設計,結構化編碼。在這一原則的指導下,人們可以將任意復雜任務(wù)分解若干子任務(wù)。程序設計時(shí)每個(gè)子任務(wù)看成獨立模塊,每個(gè)程序設計人員分別完成一個(gè)或多個(gè)模塊。人們稱(chēng)這樣的程序設計方法為“模塊法”,在編寫(xiě)代碼時(shí)每個(gè)模塊對應編寫(xiě)一個(gè)函數。最后選擇一種結構化語(yǔ)言對各個(gè)函數進(jìn)行編碼,然后在機器上反復調試修改驗證。函數定義形式函數首部函數體含義作用及功能功能具體實(shí)現對應知識點(diǎn)函數名,函數形參,返回值如:longfact(intm)聲明語(yǔ)句,執行語(yǔ)句第二,函數定義及調用。
其一,函數定義形式;
其二,函數調用。通過(guò)知識遷移將以前學(xué)過(guò)的使用庫函數的語(yǔ)句引導學(xué)生總結出函數調用的形式:①無(wú)返回值;②帶返回值。在此,詳細講解實(shí)參與形參的區別及聯(lián)系,接著(zhù)給學(xué)生一些時(shí)間利用函數調用的方法改寫(xiě)程序并將兩種解決問(wèn)題的方法進(jìn)行對比,讓學(xué)生觀(guān)察總結出程序模塊化的優(yōu)點(diǎn)。
第三,進(jìn)階練習。布置小任務(wù):編寫(xiě)swap函數來(lái)實(shí)現main函數中兩個(gè)整數交換。在學(xué)生編寫(xiě)時(shí),教員應根據每位學(xué)生的情況進(jìn)行適當指導提示,并及時(shí)糾正學(xué)生們共性的錯誤。提示學(xué)生思考計算機本身是如何執行程序中的main和swap函數的,引導學(xué)生回答并指正。通過(guò)畫(huà)圖這種直觀(guān)的方式,讓學(xué)生理解函數調用的執行流程,同時(shí)也加深了學(xué)生對函數模塊獨立性的深刻理解,將抽象的知識變得通俗易懂。
五、結束語(yǔ)
綜上所述,C語(yǔ)言中函數涉及的知識雜而多樣,在教學(xué)中采用啟發(fā)、引導、對比等多種教學(xué)方法,不拘泥于知識點(diǎn)的講解,而是從程序設計全局角度出發(fā),以分工合作思想為切入點(diǎn),探討了現實(shí)中復雜程序編寫(xiě)多個(gè)函數來(lái)實(shí)現的必要性,發(fā)現問(wèn)題,解決問(wèn)題,讓學(xué)生主動(dòng)學(xué)習的思路展開(kāi),實(shí)踐證明該思路符合學(xué)生接受知識的思維習慣,這不僅很好地調動(dòng)學(xué)生學(xué)習的積極性,從而培養了學(xué)生獨立思考解決問(wèn)題的能力。
參考文獻:
[1]譚浩強.C程序設計第三版,北京清華大學(xué)出版社.
[2]高等教育出版社.c語(yǔ)言程序設計2015版,高等教育出版社.
【C語(yǔ)言函數教學(xué)設計與實(shí)踐論文】相關(guān)文章:
關(guān)于C語(yǔ)言函數教學(xué)的論文03-22
C語(yǔ)言for循環(huán)語(yǔ)句教學(xué)設計論文07-25
中職C語(yǔ)言教學(xué)創(chuàng )新與實(shí)踐論文07-04
C語(yǔ)言程序設計教學(xué)分析與探索論文07-05
c語(yǔ)言函數知識點(diǎn)總結03-30