2009年全國技工教育和職業(yè)培訓3_第1頁
2009年全國技工教育和職業(yè)培訓3_第2頁
2009年全國技工教育和職業(yè)培訓3_第3頁
2009年全國技工教育和職業(yè)培訓3_第4頁
2009年全國技工教育和職業(yè)培訓3_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

PAGEPAGE12009年全國技工教育和職業(yè)培訓優(yōu)秀教研成果評選活動參評論文對技校C++教學方法的探索對技校C++教學方法的探索摘要:C++是計算機程序設計的入門課程,是學習計算機后續(xù)課程的基礎,在計算機課程學習中具有重要作用。本文從培養(yǎng)學生學習興趣出發(fā),以提高C++課程教學質(zhì)量、增強教學效果、提高學生分析和解決問題能力為目的,探討了不同的教學方法對于C++學習所起到的作用。關(guān)鍵詞:C++;程序設計;教學方法《C++程序設計》是計算機專業(yè)開設的一門重要的基礎性課程,目的在于讓學生掌握程序設計的基本方法,逐步形成正確的程序設計思想,同時還能夠熟練地使用C++進行程序設計和調(diào)試,為其他程序設計課程的學習和應用打下基礎。通過長期的教學實踐發(fā)現(xiàn)學生普遍認為C++枯燥難學、概念復雜、容易出錯,由此產(chǎn)生了畏學、厭學情緒,嚴重影響了課程的進一步學習。為了解決學生面臨的這些問題,本文針對課程本身特點,結(jié)合各種教學方法以及教學實例對如何激發(fā)學生的學習興趣,刺激學生的求知欲從而提高課程的教學質(zhì)量,增強教學效果等方面進行了深入探討。一、明確學習目的,激發(fā)學習興趣學習興趣就是學生在心理上對學習活動產(chǎn)生愛好、追求和向往的傾向,是推動學生積極主動學習的直接動力。學生只有對所學課程有濃厚的興趣,才能積極主動和富有創(chuàng)造性地去完成學習任務??梢?學生的學習興趣直接關(guān)系到教學效果的好壞。那么教學中如何激發(fā)學生的學習興趣呢?1.明確學習C++的重要性學習的重要性也就是這門課程的有用性。在社會競爭日益激烈的今天,學生學習更看重的是實用性,是課程學習對以后的工作和競爭所起到的作用。當學生深刻的領(lǐng)會到了課程學習的重要性之后興趣也就油然而生了。(1)目前市場對軟件工程師以及熟練掌握計算機程序設計的其他專業(yè)復合型人才的需求缺口很大。C++作為一種通用的程序設計語言,廣泛的應用于軟件設計和開發(fā)當中。熟練掌握C++程序設計語言,必然會成為未來就業(yè)競爭中的一個重要的籌碼。(2)C++是許多其它商業(yè)軟件的開發(fā)工具。如當今世界上最流行的工程制圖軟件包AUTOCAD就用C++開發(fā)的,另外大家所熟知的UNIX操作系統(tǒng)就完全是由C++編寫的。(3)C++是其它面向?qū)ο笳Z言以及網(wǎng)絡編程的基礎。面向?qū)ο缶幊陶Z言如VB,VC++等雖然擺脫了面向過程語言的許多細節(jié),使設計程序輕松很多,但用戶對其對象化的事件仍需編寫代碼來驅(qū)動實現(xiàn)。這些代碼里面仍包含結(jié)構(gòu)化程序設計的順序、選擇、循環(huán)三種基本結(jié)構(gòu)。因此C++的編程思想是面向?qū)ο笳Z言程序設計的理論基礎。另外,隨著Web網(wǎng)頁技術(shù)的不斷普及和發(fā)展,人們制作漂亮的、個性化的Web網(wǎng)頁并不是件難事。但深層次的網(wǎng)絡技術(shù)開發(fā)仍然必須掌握一定的編程工具如CGI程序、ASP腳本語言,JAVA等等。實際上,這些流行的網(wǎng)絡編程語言很多混合了C++的語法,這類語言在數(shù)據(jù)、運算符、函數(shù)的調(diào)用、程序語句的書寫、循環(huán)的控制上都極為相似。因此,學好C++以后再學習這些面向?qū)ο笳Z言或網(wǎng)頁編程語言就會變得輕而易舉。(4)C++編程有助于訓練和培養(yǎng)計算機思維。C++的學習不僅是一門純粹的技術(shù)或技能,而且是一種思維訓練的工具,有助于鍛煉人們的思維。這就像數(shù)學對人的思維所起作用一樣,使人的思維更精確、更細致。當學生對該門課程的重要性有一個比較深刻的認識的時候,自然會對把C++的學習擺在一個較重要的位置加以重視。這也是培養(yǎng)學生興趣的一個重要的方面。2.展示C++語言程序設計的魅力,刺激學生的求知欲將抽象的語言形象化,使枯燥的機械性的學習過程轉(zhuǎn)化為一種趣味性的認知過程,將C++語言所擁有的魅力展現(xiàn)在學生面前,讓學生感受到C++學習其實也是一項其樂無窮的事情。(1)趣味性問題作為教學實例C++語言的學習過程是一個相當抽象過程,各種各樣的語句都是以符號的形式展現(xiàn)在面前,學生難免會對此產(chǎn)生厭倦。此時,可以以趣味性的實例作為教學的例子。在講解一個新的知識體系前,運用即將學到的知識設計一個吸引學生的小游戲或智力問題。課前首先展示所設計的內(nèi)容,從側(cè)面引導學生,讓他們有“只要我學會了這部分知識也能自己做出來”的信心,這樣會大大提高學生的學習熱情。比如,在講解選擇與循環(huán)結(jié)構(gòu)之前,課堂上給學生展示了一個“猜數(shù)游戲”,讓學生對此產(chǎn)生興趣,提高上機的積極性。當他們學習了if語句后就可以編出程序的判斷部分了,學習了循環(huán)語句后就可完成一次猜數(shù)字的過程,而學習了循環(huán)嵌套后,則可實現(xiàn)連續(xù)猜數(shù)字,成為一個完整的游戲。從具體實例切入,由淺入深、循序漸進的教學模式能夠很好的調(diào)動學生學習的主動性,培養(yǎng)學生對課程學習的興趣。(2)選擇經(jīng)典的數(shù)學問題作為課堂案例正如長篇大論的講道理往往不如巧妙的使用一個典故或者一句名言更具說服力一樣,經(jīng)典的數(shù)學問題作為課堂案例會比一般的練習題更能引起學生興趣。比如,“百錢百雞”問題,它是用C++程序解決數(shù)學方程運算問題的一個典型實例,用到了程序中典型的算法—“窮舉法”。將這樣經(jīng)典數(shù)學問題作實例,既學習了算法,同時還讓學生體會到運用C++編程解決實際問題的樂趣。又如演示數(shù)學中一元二次方程的求解程序,用所學的知識解決現(xiàn)實問題,使學生能夠感受到理論在實際中的應用,從而進一步激發(fā)他們樹立更高、更遠的目標。實踐表明,這些學以致用的實例能大大激發(fā)學生學習C++學習熱情。在學習過程中,要讓學生體驗到成功的歡樂,獲得成就感,強化學生的求知欲望,從而使學生學習C++的興趣和熱情能夠持久保持。二、多樣化的教學方法1.啟發(fā)式教學法程序設計方法是多種多樣的,大多數(shù)問題都存在不止有一個解法。因此在教學過程中不要對學生進行刻意的限制,鼓勵學生按照自己對問題的理解采用自己認為合適的方法進行處理。教師則對各種方法進行總結(jié),并對各種方法的優(yōu)缺點進行講解。通過這種引導啟發(fā)式的教學方法來調(diào)動學生的積極性。例:求100以內(nèi)的所有偶數(shù)之和,可以采用while語句、用do…while語句和for語句。教師在教學過程中先用三種語句寫出程序以及運行結(jié)果,然后再演示這三種語句的流程圖,最后引導學生進行思考和比較,讓學生在解決實際編程問題時可以靈活選用多種方法來實現(xiàn)。while語句voidmain(){inta=2,sum=0;while(a<=100){if(a%2==0) sum=sum+a; a++;} cout<<"sum="<<sum<<endl;}do…while語句voidmain(){inta=2,sum=0;do{if(a%2==0)sum=sum+a;a++;}while(a<=100); cout<<"sum="<<sum<<endl;}for語句voidmain(){inta=1,intsum=0;for(a=1;a<=100;a++) {if(a%2==0)sum=sum+a; elsecontinue; a++;} cout<<"sum="<<sum<<endl;}結(jié)合上面程序和流程圖,使學生明白三種語句之間的內(nèi)在關(guān)系以及各自的特點,使學生真正受到啟發(fā),以后遇到相似問題就可以自行選取最適宜的語句來解決問題了。在上機練習中,再給出3-4道類似題目,加強學生的實際應用。這樣的教學不僅能夠調(diào)動學生的主觀能動性,而且還能讓他們在不知不覺中對所學知識進行一個鞏固,加深對C++本質(zhì)的認識。2.案例比較教學法結(jié)合課堂要求,選擇恰當案例,采用多個案例演示比較,經(jīng)過學生的討論后,及時做出講評,并再次講授案例分析中所需要用到的理論知識和技能。通過對各種案例的比較能夠讓學生深刻領(lǐng)會到不同的語句之間的區(qū)別和聯(lián)系,有助于他們準確的運用。例如,在學習函數(shù)這一章時,為了說明函數(shù)調(diào)用時參數(shù)傳遞的方式,設計如下案例供學生討論。案例:交換主函數(shù)兩個變量的值,要求:主函數(shù)main中兩個變量,采用函數(shù)調(diào)用實現(xiàn)變量交換后,然后輸出交換后結(jié)果,用swap函數(shù)實現(xiàn)。學生經(jīng)過分析討論,得到以下四種方法:程序1:swap(intx,inty){inttemp;temp=x;x=y;y=temp;}voidmain(){inta=10,b=20;swap(a,b);cout<<a<<”,”<<b<<endl;}這個程序中實參向形參傳遞數(shù)據(jù)的方式是值傳遞。當調(diào)用swap時,將實參a和b的值復制給形參x和y,并在swap函數(shù)的內(nèi)部完成了x和y的交換,由于形參x、y和實參a、b各自擁有自己的內(nèi)存單元,因此a和b并沒有完成交換,程序運行結(jié)果錯誤。程序2:swap(int&x,int&y){inttemp;temp=x;x=y;y=temp;}voidmain(){inta=10,b=20;swap(a,b);cout<<a<<”,”<<b<<endl;}這個程序中采用的是另外一種參數(shù)傳遞方式:使用引用。此時實參a初始化形參x,實參b初始化形參y,在swap函數(shù)中實現(xiàn)了a和b的值交換。程序3:swap(int*p1,int*p2){intp;p=*p1;*p1=*p2;*p2=p;}voidmain(){inta=10,b=20;swap(&a,&b);cout<<a<<”,”<<b<<endl;}這個程序中采用的是地址傳遞的參數(shù)傳遞方式。此時通過兩個指針p1和p2分別指向變量a和b,在swap函數(shù)中通過指針實現(xiàn)了a和b的值交換。程序4:swap(int*p1,int*p2){int*p;p=p1;p1=p2;p2=p;}voidmain(){inta=10,b=20;swap(&a,&b);cout<<a<<”,”<<b<<endl;}這種參數(shù)傳遞方式雖然也是把地址傳遞給指針變量,但在swap函數(shù)中,進行交換的卻是兩個指針,也就是交換的結(jié)果是p1指向b,p2指向a,而a和b的值并沒有交換。因此運行結(jié)果也是錯誤的。通過這一案例幾種方法的對比、討論、分析和總結(jié),學生很快就能從理論上掌握函數(shù)的調(diào)用及參數(shù)的傳遞方法。同時結(jié)合上機實踐就能更好的理解和運用所學的知識。3.發(fā)散思維教學法要在有限的課時內(nèi)完成相應的教學任務,又讓學生掌握必要的知識,只講語法不行,關(guān)鍵是讓學生學會如何活學活用,培養(yǎng)學生的發(fā)散性思維。同樣的一個問題要引導學生從不同的角度來進行思考,通過自己對問題的理解采取不同的方法來解決。這樣不僅有助于學生對知識的鞏固,同時還能讓學生具有靈活的應變能力,將機器語言真正轉(zhuǎn)化為“自己的語言”。如學習條件結(jié)構(gòu)時,通過對學生成績評定等級來講解不同的條件結(jié)構(gòu)和語句。例:從鍵盤上輸入一個成績,如果大于等于90,輸出“優(yōu)秀”;如果大于等于80小于90,輸出“良好”;如果大于等于70小于80,輸出“中”;如果大于等于60小于70,輸出“及格”;如果小于60,輸出“不及格”。方法一:if語句voidmain(){ints;cout<<"請輸入成績";cin>>s;if(s>=90){cout<<"優(yōu)秀"<<endl;}elseif((s>=80)&&(s<90)){cout<<"良好"<<endl;}elseif((s>=70)&&(s<80)){cout<<"中"<<endl;}elseif((s>=60)&&(s<70)){cout<<"及格"<<endl;}else{cout<<"不及格"<<endl;}}方法二:switch語句voidmain(){ints,i;cout<<“請輸入成績"; cin>>s; i=s/10; switch(i) {case10: case9: cout<<“優(yōu)秀”<<endl;break; case8: cout<<“良好”<<endl;break; case7: cout<<“中”<<endl;break; case6: cout<<“及格”<<endl;break; default: cout<<“不及格”<<endl;break; }}從上面例子可以看出,同一問題可以有不同的解決辦法。用if語句雖然可以實現(xiàn)多分支結(jié)構(gòu),但比較煩瑣;switch語句是專門用于實現(xiàn)多分支結(jié)構(gòu)程序的;用switch語句實現(xiàn)的程序都可以用if語句實現(xiàn),反之不成立。通過這種發(fā)散思維訓練,可使學生輕松掌握條件語句的格式和使用方法,深刻體會C++的靈活,激發(fā)學生思考和學習積極性。4.互動教學法針對不同專業(yè)的學生,可以結(jié)合專業(yè)做程序設計。在課程進行到一定程度以后,開始搜集學生在學習專業(yè)課程中所遇到的各種計算或設計難題,從中尋找適合用C++來解決的問題,由淺入深地教會學生如何運用所學的C++知識來解決自己的專業(yè)難題,同時也讓他們明白了自己的專業(yè)中開設《C++程序設計》這門課程的必要性。下例為統(tǒng)計學中提煉出的計算模型。例:編寫一個函數(shù)計算1k+2k+3k+…nk,其中n和k在主函數(shù)中輸入,并在主函數(shù)中輸出計算結(jié)果。提示:可以寫兩個函數(shù),一個計算nk,另一個調(diào)用前面的函數(shù)計算機各項和。代碼如下:#include<iostream.h>longf1(intn,intk);longf2(intn,intk);voidmain(){longs;intn,k;cout<<"請輸入n的值:";cin>>n;cout<<"請輸入k的值:";cin>>k;s=f1(n,k);cout<<"1k+2k+3k+…nk="<<s<<endl;}longf1(intn,intk)//求和{inti;longsum=0;for(i=1;i<=n;i++) sum+=f2(i,k);returnsum;}longf2(intn,intk)//求n的k次方{inti;longs=1;for(i=1;i<=k;i++) s*=n;returns;}這道題很多學生在編程過程中,可以運行成功,但結(jié)果不對。我通過幾個同學的代碼比較,發(fā)現(xiàn)學生對函數(shù)的嵌套調(diào)用存在問題,于是就加強講解和練習,通過與學生溝通,使學生掌握知識點更牢固。實踐出真知。作為任課老師也在這種互動教學過程中不斷豐富自己的教學資源與程序設計的思想和方法,通過學生將自己不曾涉足過的領(lǐng)域中的一些實踐內(nèi)容加以提煉、匯總,進一步豐富了《C++程序設計》課程的教學內(nèi)容。三、上機實踐與鞏固上機這一環(huán)節(jié)是C++的重要組成部分。針對不同的學習基礎和不同的學習要求,部署不同層次和梯度的作業(yè),即保證大部分同學能夠完成,也能使基礎好的學生的得到相應的提高。因此,可以將作業(yè)分為基本筆必做作業(yè)和思考作業(yè),這樣也是引發(fā)學生學習興趣的一個重要手段。程序設計技能的培養(yǎng)只有通過大量的編程訓練和上機實踐才能獲得。為此,必須提供盡可能多的機時讓學生進行程序的編輯、編譯、調(diào)試和運行實踐。以二維數(shù)組上機教案為例:=1\*GB4㈠、必做作業(yè)1、找出4*4二維數(shù)組中對角線上元素的最大值。(課本例題)2、將兩個2*3的二維數(shù)組中的對應元素的值相加后存入第3個數(shù)組中,并輸出到屏幕。(課本例題)3、數(shù)組a[3][4]共有多少個元素?行下標的下限和上限分別是多少?(二維數(shù)組定義理解)4、編程實現(xiàn)數(shù)組a[3][4]的引用,即每個元

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論