前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的c語言課程設(shè)計主題范文,僅供參考,歡迎閱讀并收藏。
為了激發(fā)學(xué)生的興趣,可以采用Funcode平臺進行課程設(shè)計。Funcode平臺是一款基于游戲設(shè)計和動畫界面的C\C++\Java綜合實驗教學(xué)平臺,該平臺以游戲設(shè)計為“噱頭”,吸引學(xué)生的學(xué)習(xí)興趣,雖然如此,該平臺通過精選大量的游戲案例,還是很好地將程序設(shè)計知識點和游戲設(shè)計緊密地結(jié)合起來,始終緊扣C語言知識點,為C語言課程設(shè)計教學(xué)提供了一個很好的工具。
1.1圖形方式的游戲界面編輯Funcode平臺采用圖形界面方式的游戲編輯環(huán)境,直觀、美觀、簡潔易用。圖1所示為正在設(shè)計中的游戲,左側(cè)矩形框中為最終運行時可見的游戲界面,可以從右側(cè)中的“魚”(Funcode中稱為“精靈”,任何類似的圖片都是精靈,不同的精靈以精靈名區(qū)分)中任意拖拽一條“魚”到左側(cè)矩形框中,即可在游戲界面中增加一條魚。
1.2提供功能函數(shù),屏蔽對圖形的復(fù)雜處理Funcode平臺提供了大量功能函數(shù),屏蔽對圖形對象的復(fù)雜處理,使學(xué)生能夠?qū)W⒂诔绦蛟O(shè)計和游戲邏輯功能的實現(xiàn)。例如:功能函數(shù)voiddSetSpriteLinearVelocityX(constchar*szName,constfloatfVelX)可以使精靈以某一速度水平運動。讓圖1左側(cè)中的魚(假設(shè)該魚命名為fish0)游動起來,學(xué)生只需用一條函數(shù)調(diào)用語句dSetSpriteLinearVeloctyX(“fish0”,30)即可實現(xiàn);亦可通過調(diào)用功能函數(shù)dSetSpriteLinearVelocity(“fish0”,30,30)使魚水平方向和垂直方向分速度均為30,即在屏幕上“斜向”游動;功能函數(shù)dSetSpriteFlipX(“fish0”,true)調(diào)用可以使魚水平翻轉(zhuǎn),即實現(xiàn)“掉頭”功能。
1.3整體邏輯框架簡潔,功能強大Funcode平臺整體邏輯框架由7個主要函數(shù)模塊組成,分別是主函數(shù)模塊、鼠標(biāo)移動事件模塊、鼠標(biāo)單擊事件模塊、按鍵事件模塊、按鍵彈起事件模塊、對象碰撞事件模塊、對象與邊界碰撞事件模塊。其主函數(shù)模塊如以下程序代碼所示,通過主函數(shù)模塊控制整個游戲的運行和界面刷新。其他的6個函數(shù)模塊幾乎包含了游戲設(shè)計中需要處理的所有事件,并且向?qū)W生屏蔽了事件激發(fā)所需要的復(fù)雜判斷過程,所有的鼠標(biāo)事件、鍵盤事件、碰撞事件均為自動激發(fā),這很大程度上降低了設(shè)計難度,使學(xué)生可以專注于游戲邏輯功能的實現(xiàn)。例如:要實現(xiàn)圖1中的“魚”游到右側(cè)邊界時掉頭向左游邏輯功能,在Funcode平臺下,當(dāng)圖1中的“魚”游到右側(cè)邊界時,“對象與邊界碰撞”模塊將會自動激發(fā),該模塊的初始程序代碼如下所示。此時,學(xué)生無需判斷和處理“魚”是否游到邊界(這對大學(xué)一年級學(xué)生而言比較困難),只需要知道“魚”游到邊界后會自動調(diào)用“對象與邊界碰撞”模塊對應(yīng)的dOnSpriteColWorldLimit函數(shù)即可。因此,學(xué)生只要能夠根據(jù)游戲功能在該函數(shù)中正確地編寫相應(yīng)的代碼就可以了,具體實現(xiàn)“掉頭向左游”邏輯功能的完整程序代碼如下所示。顯然,這樣就極大地簡化了對圖形對象和事件的處理,學(xué)生就可以把更多的精力投入到游戲邏輯功能的實現(xiàn)和代碼的編寫和調(diào)試中。
1.4開放式環(huán)境,極大地激發(fā)學(xué)生創(chuàng)新能力Funcode提供了開放式的開發(fā)環(huán)境,除了完成Funcode提供的課程設(shè)計案例以外,學(xué)生也可以按照自己的思路,添加素材,大膽創(chuàng)新,設(shè)計和開發(fā)真正屬于自己的游戲,這樣能極大地激發(fā)學(xué)生的程序設(shè)計熱情。例如:一組學(xué)生開發(fā)的“大魚吃小魚”游戲,當(dāng)大魚吃小魚得分達到一定的分值時,可以生出“魚寶寶”,尾隨大魚游動,生動有趣。
2教學(xué)內(nèi)容和方法的改革
基于Funcode平臺,在教學(xué)內(nèi)容和方法的改革上,以激發(fā)學(xué)生興趣,調(diào)動學(xué)生學(xué)習(xí)主動性為主要目標(biāo),在此基礎(chǔ)上,貫穿整個課程設(shè)計的各個階段,采用多種教學(xué)方式和方法培養(yǎng)學(xué)生各方面的綜合素質(zhì)。
2.1選題階段在選題內(nèi)容上,典型游戲設(shè)計和自主創(chuàng)新相結(jié)合。改變原有的設(shè)計內(nèi)容變?yōu)榛贔uncode平臺游戲設(shè)計。設(shè)計內(nèi)容分為兩類:一類是典型的可在Funcode平臺上實現(xiàn)的游戲,比如坦克大戰(zhàn)、打地鼠等;另一類是學(xué)生自選題目,要學(xué)生根據(jù)Funcode平臺功能,發(fā)揮自己的想象力,創(chuàng)造自己的游戲。教師要通過討論、引導(dǎo)等方式,鼓勵學(xué)生自己設(shè)計游戲,培養(yǎng)其創(chuàng)新意識和創(chuàng)新能力。題目選定之后,要求學(xué)生將游戲整體功能用功能模塊和流程圖的方式清楚地表示出來,并且要能夠準(zhǔn)確地描述各模塊之間的關(guān)系,鍛煉學(xué)生的抽象思維和邏輯思維能力。在選題方式上,要堅持組內(nèi)討論和師生互動相結(jié)合。組內(nèi)討論有利于游戲功能的完善,有利于發(fā)揮所有同學(xué)的創(chuàng)新潛力,有利于調(diào)動學(xué)生參與的積極性。通過教師和學(xué)生的討論交流,教師要控制游戲功能的實現(xiàn)復(fù)雜度,既要保證設(shè)計的工作量,又要保證控制在可實現(xiàn)的范圍內(nèi)。
2.2設(shè)計階段在課程設(shè)計過程中,要避免“學(xué)生問,教師答”的教學(xué)模式,教師要積極地參與到所有學(xué)生的設(shè)計中,主動和學(xué)生交流討論,掌握他們的設(shè)計情況;善于通過引導(dǎo)啟發(fā),培養(yǎng)學(xué)生各方面的綜合素質(zhì)。在設(shè)計中,要及時發(fā)現(xiàn)并指出存在的問題;對于學(xué)生提出的問題,要善于引導(dǎo)他們積極獨立思考,盡量讓其自主分析,找到原因,進而找到解決問題的方法,這一方面可以培養(yǎng)學(xué)生獨立思考,分析問題和解決問題的能力,另一方面可以增強學(xué)生的成就感和自信心,有利于調(diào)動學(xué)生參與實踐的熱情。對于游戲功能的實現(xiàn),要讓學(xué)生畫出流程圖或?qū)崿F(xiàn)步驟,體會程序設(shè)計中的抽象思維和邏輯思維。比如對于“打飛蟲”游戲,當(dāng)“拍子”拍中“飛蟲”時,對應(yīng)Funcode抽象概念為“拍子”對象和“飛蟲”對象發(fā)生碰撞事件,由于碰撞事件自動激發(fā),所以拍中“飛蟲”后對應(yīng)的游戲功能實現(xiàn)邏輯應(yīng)該在碰撞事件中表達。對于該碰撞事件的處理,要求學(xué)生首先畫出拍中“飛蟲”后的處理邏輯,體會程序設(shè)計中的邏輯思維。比如:使“飛蟲”圖像從界面消失在“飛蟲”鏈表中刪除該飛蟲顯示拍效根據(jù)拍中的“飛蟲”類型計分刷新游戲界面上顯示的實時得分值。課程設(shè)計要求按組進行,設(shè)計中要求分工合理,任務(wù)明確,緊密協(xié)作,嚴(yán)格按照日程安排,完成設(shè)計任務(wù)。要求每2天一次,將每人獨立設(shè)計的模塊進行整合并測試,同時要求學(xué)生定期開展討論,鼓勵他們對設(shè)計中存在的問題,積極和同組同學(xué)交流溝通,要善于發(fā)揮集體的力量,解決問題。在協(xié)作設(shè)計中,培養(yǎng)學(xué)生的團隊合作意識。此外,在游戲的設(shè)計過程中,必然會存在一些較難實現(xiàn)或者知識點超出課本內(nèi)容的功能,從經(jīng)驗來看,大多數(shù)學(xué)生都會無奈地選擇放棄該功能。此時,教師一定要向?qū)W生強調(diào)自主學(xué)習(xí)的重要意義,讓他們認(rèn)識到課堂教學(xué)中講的內(nèi)容大多是最基礎(chǔ)的核心知識點,而實際的應(yīng)用中要涉及的知識卻遠非如此,并積極鼓勵和指導(dǎo)學(xué)生學(xué)習(xí)和掌握相關(guān)知識點。
2.3考評階段為了進一步培養(yǎng)學(xué)生興趣,調(diào)動其積極性,考核采用每組分別進行講解和演示,交流心得體會,其他組同學(xué)和教師進行打分的形式。打分項分為游戲功能、工作量、流暢性、創(chuàng)新性、美觀性等5個方面。演示中鼓勵其他組的同學(xué)提問和試玩游戲,盡量找出游戲設(shè)計的缺陷,通過多種方式培養(yǎng)學(xué)生的展示能力和競爭意識。最后,教師再進行總結(jié)性點評,指出設(shè)計的優(yōu)缺點。
3教學(xué)效果
從調(diào)動學(xué)生學(xué)習(xí)積極性方面來看,在整個課程設(shè)計過程中,學(xué)生始終保持著極高的熱情。教師為課程設(shè)計建立了QQ群,提供全天答疑服務(wù),從QQ群討論情況來看,學(xué)生提問很多,討論熱烈,而且絕大多數(shù)在課外時間。此外,課程設(shè)計結(jié)束后,很多學(xué)生指出,F(xiàn)uncode平臺美中不足的是:自己創(chuàng)造出的游戲最終生成的可執(zhí)行程序離開Funcode平臺不能運行,非常令人遺憾。這也可以從一個側(cè)面反映了學(xué)生的熱情和對自己勞動成果的珍惜。從課程設(shè)計內(nèi)容來看,學(xué)生大多是按照自己的想法設(shè)計的,游戲功能可謂五花八門,創(chuàng)新能力得到了很好的培養(yǎng)和鍛煉。更重要的一點是達到了課程設(shè)計的教學(xué)目的,學(xué)生對程序設(shè)計的理解更加深刻,鞏固了C語言學(xué)習(xí)成果,能夠?qū)⒂螒蚬δ艿膶崿F(xiàn)邏輯用計算機語言準(zhǔn)確地表達出來。在程序設(shè)計中遇到的具體問題,學(xué)生能夠提出自己的解決思路,并通過編寫程序表達自己的思路,很好地將課堂上學(xué)到的理論知識應(yīng)用于實際問題的解決,抽象思維和邏輯思維能力、程序設(shè)計實踐動手能力均得到了很好的鍛煉。例如:圖2所示為學(xué)生設(shè)計的游戲初始界面。該游戲?qū)崿F(xiàn)的功能有:游戲?qū)崟r倒計時;游戲?qū)崟r顯示得分;通過鍵盤控制游戲的開始、暫停和游戲場景的切換;用鼠標(biāo)控制“拍子”進行移動和拍打;打到大蚊子、小蚊子積分不同,打到堅果則減分,且打中目標(biāo)有圖片特效產(chǎn)生;蚊子的產(chǎn)生地點、時間、數(shù)量和產(chǎn)生時的飛行速度都是隨機的,且飛行速度隨著積分級別越來越快;游戲結(jié)束時顯示得分最高的三條歷史記錄等。此游戲中,學(xué)生自己編寫代碼(不包括自動生成的代碼)行數(shù)在800行以上,使用的C語言知識點涵蓋了數(shù)組、鏈表、函數(shù)、變量作用域、多分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)等。
4結(jié)語
關(guān)鍵詞: C語言課程設(shè)計; 項目驅(qū)動; 分組教學(xué); 模塊化思想; 協(xié)作
中圖分類號:G642 文獻標(biāo)志碼:A 文章編號:1006-8228(2013)08-65-03
0 引言
當(dāng)今社會,隨著信息技術(shù)的高速發(fā)展,各種程序設(shè)計語言蓬勃發(fā)展,如C、C++、JAVA、C#等。在這些語言中,C語言是各高等院校的計算機及相關(guān)專業(yè)的一門核心基礎(chǔ)課程,它的學(xué)習(xí)效果會極大程度影響學(xué)生后續(xù)相關(guān)課程,如數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)、算法分析以及其他高級語言的學(xué)習(xí)。
作為一種實踐性很強的程序設(shè)計語言,C語言課程的教學(xué)一般采用理論教學(xué)結(jié)合上機實踐的模式,理論教學(xué)以講授語法和基本算法為主,上機實踐則主要練習(xí)簡單程序的編寫,通常以驗證性實驗為主,以掌握、鞏固基礎(chǔ)的語法為目的。從教學(xué)效果來看,學(xué)生雖然掌握了不少語法知識,但在面對實際問題時,往往不能靈活應(yīng)用。為了進一步拓展學(xué)生的實踐編程能力,我們學(xué)院繼兩個學(xué)期的C語言教學(xué)后開設(shè)了“C語言課程設(shè)計”課程,該課程以設(shè)計性和綜合性實驗為主,重點培養(yǎng)和鍛煉學(xué)生獨立分析問題,解決實際問題能力。根據(jù)這一教學(xué)目標(biāo),我們結(jié)合日常教學(xué),針對實踐教學(xué)中存在的不足,開展項目驅(qū)動的分組教學(xué)方法,使學(xué)生形成自主和協(xié)作型的學(xué)習(xí)模式。
1 教學(xué)現(xiàn)狀
C語言是一種面向過程的結(jié)構(gòu)化程序設(shè)計語言,具有數(shù)據(jù)類型較多、表達式豐富、語法結(jié)構(gòu)復(fù)雜、語法規(guī)則繁多等特點,其授課對象往往又是第一次接觸程序設(shè)計語言的低年級學(xué)生,這些都給學(xué)生學(xué)習(xí)和教師教學(xué)帶來了難度。通過對學(xué)生進行教學(xué)效果調(diào)查,發(fā)現(xiàn)在“理論+實驗”的教學(xué)模式中,由于課時限制等各種因素,實際教學(xué)常存在著如下問題。
⑴ 實驗訓(xùn)練以知識點訓(xùn)練為主,與實際應(yīng)用存在脫節(jié)。
在理論課后的上機練習(xí),通常是針對特定語法設(shè)計,形式上采用練習(xí)書上的例子、驗證某個語法或者實現(xiàn)一些簡單的相關(guān)算法,驗證性實驗占了多數(shù)。這種訓(xùn)練模式雖然能夠加深學(xué)生對各種語法細(xì)節(jié)的認(rèn)識,但同時導(dǎo)致的問題是,學(xué)生容易孤立地去看待各章節(jié)的語法,割裂了各知識之間的聯(lián)系,在編程時以模仿改寫書上的程序為主,欠缺工程型知識,處于被動灌輸?shù)膶W(xué)習(xí)狀態(tài),常常會覺得語法知識點繁瑣、內(nèi)容枯燥,很難調(diào)動積極性,當(dāng)面對實際工程問題時,程序規(guī)模一大,就束手無策,無法有機地綜合應(yīng)用所學(xué)知識去解決問題。
⑵ 沒有形成系統(tǒng)化的分析過程。
由于教學(xué)和教材均側(cè)重于對語法進行講授和剖析,未強調(diào)分析及測試的重要性,也沒有將軟件工程的思想融合在實踐教學(xué)中,因此,長久以來,學(xué)生養(yǎng)成一接觸題目就馬上開始編寫代碼的習(xí)慣,并且,運行時往往僅按照預(yù)先設(shè)定的正確的輸入數(shù)據(jù),去驗證自己的所編的程序是否正確。
⑶ 忽略算法邏輯思維能力的培養(yǎng)。
從學(xué)習(xí)效果來看,學(xué)生常存在著兩種誤區(qū),一種是將參與和獲得計算機等級考試證書作為學(xué)習(xí)目的,這就導(dǎo)致他們習(xí)慣于程序填空題形式的編程方式,獨立編程能力欠缺;一種是對C語言中的指針、遞歸問題存在畏難情緒,又認(rèn)為就業(yè)時可以選擇其他語言工具如Java來避免這些難點,沒有認(rèn)識到指針和遞歸的真正價值在于學(xué)習(xí)它們過程中得到的思維深度[1],忽略了推理能力、抽象思考能力方面的培養(yǎng)。
⑷ 實踐操作能力不強。
學(xué)生的實驗操作能力不強主要表現(xiàn)在對程序運行中一些常見編譯問題無法很快做出反應(yīng),不會依據(jù)提示信息去判斷發(fā)生錯誤的原因,對一些運行問題更是束手無策,通常一有問題產(chǎn)生,就轉(zhuǎn)向?qū)ふ遗涮椎膶嶒炛笇?dǎo)書中所提供的正確答案,或者依賴教師指出問題所在,幫忙改正錯誤。
2 項目驅(qū)動的分組教學(xué)方法的具體實施
建構(gòu)主義學(xué)習(xí)理論認(rèn)為,個體的認(rèn)知發(fā)展與學(xué)習(xí)過程密切相關(guān),知識獲取是以學(xué)習(xí)者為中心,利用“情境”、“協(xié)作”、“會話”等學(xué)習(xí)要素,通過意義建構(gòu)的方式而獲得。針對C語言課程設(shè)計這一門實踐性非常強的課程,我們采用項目驅(qū)動的分組教學(xué)方法,在建構(gòu)主義學(xué)習(xí)理論基礎(chǔ)上進行教學(xué)設(shè)計,以學(xué)生為中心,融合軟件工程思想,以培養(yǎng)學(xué)生的程序設(shè)計能力、創(chuàng)新能力、邏輯思維能力和協(xié)作精神為主線,通過項目任務(wù)引導(dǎo)他們主動學(xué)習(xí),去深入理解軟件設(shè)計思想,并加深對重要知識點的理解。為了將課內(nèi)實踐和課外自學(xué)有機結(jié)合起來,我們將15個學(xué)時的上機實踐分為5次,集中安排在5天內(nèi),每次上機后留充足時間,要求學(xué)生去查閱資料,提升獲取信息、解讀信息的能力。整個教學(xué)過程中,需要在多個教學(xué)環(huán)節(jié)注意改革和創(chuàng)新。
2.1 項目設(shè)計
項目的提出是能否調(diào)動學(xué)生學(xué)習(xí)積極性的關(guān)鍵。目前隨著信息化建設(shè)的深入,軟件在各個行業(yè)都獲得了廣泛應(yīng)用,其實際應(yīng)用領(lǐng)域非常廣泛。課程設(shè)計應(yīng)該提供一個良好的學(xué)習(xí)“情境”,要結(jié)合教學(xué)目標(biāo),來模擬演練實際軟件開發(fā)過程。項目的設(shè)計需要遵循以下幾點:①選擇學(xué)生比較熟悉的領(lǐng)域,貼近學(xué)生生活和學(xué)習(xí)方面的應(yīng)用,避免選擇需要較強專業(yè)背景、業(yè)務(wù)邏輯復(fù)雜的應(yīng)用,例如可以選擇學(xué)生選課、書籍管理、宿舍管理等,而盡量不要去選擇企業(yè)人事管理之類的應(yīng)用。這樣可以方便學(xué)生理解或完整需求,激發(fā)他們用程序去解決現(xiàn)實生活問題的興趣。②功能上要有層次性,可劃分為一般性要求和可拓展性要求,一般性要求指出必須實現(xiàn)的功能,可拓展性要求則指出可以擴展的功能,引導(dǎo)學(xué)生去探索和想象,可以方便開展梯隊型教學(xué)。③從項目的編碼實現(xiàn)考慮,要能涵蓋C語言中的結(jié)構(gòu)體或聯(lián)合體等復(fù)雜數(shù)據(jù)類型,體現(xiàn)函數(shù)和指針這條主線,以促進學(xué)生去綜合運用和深入理解這些重要的知識點。
2.2 分組劃分
一個軟件的開發(fā)僅依靠個人力量往往是無法實現(xiàn)的。軟件生命周期的各個階段需要軟件小組開發(fā)人員協(xié)作完成[2],因此,在課程設(shè)計教學(xué)中,我們采用分組教學(xué)模式來培養(yǎng)學(xué)生的團隊合作意識和團隊精神,來充分體現(xiàn)合作與競爭、分層教學(xué)與因材施教[3],并且還可以通過幫帶方式和組內(nèi)討論消化掉一部分問題。分組是否合理、有效,直接影響協(xié)作模式能否取得良好的教學(xué)效果。在C語言課程設(shè)計實踐中,我們按照任務(wù)量安排人數(shù),學(xué)生分為以3-5人一組,按照組內(nèi)搭配合理,組件平衡原則分配,在分組時充分考慮到學(xué)生的個體能力差異,使學(xué)生能在交流合作過程中取長補短。分組觀點認(rèn)為組內(nèi)成員之間的合作關(guān)系可以有“頭腦風(fēng)暴”式、模擬課題式、同伴互助式、角色扮演式和組合式[4]。這里,我們可以結(jié)合軟件開發(fā)的分工特點,將角色扮演應(yīng)用到課程設(shè)計的分組中,由小組組長擔(dān)當(dāng)開發(fā)經(jīng)理角色,其他人員針對其特長分別擔(dān)當(dāng)需求分析師、架構(gòu)設(shè)計師、開發(fā)人員、測試人員等角色,根據(jù)開發(fā)階段的不同,各成員可以扮演不同類型的角色。
2.3 培養(yǎng)學(xué)生用模塊化思想對實際問題進行分析和設(shè)計
結(jié)構(gòu)化方法強調(diào)以模塊為中心,采用模塊化、自頂向下、逐步求精設(shè)計過程。項目驅(qū)動的教學(xué)要培養(yǎng)學(xué)生用模塊化思想思考復(fù)雜問題,即將程序劃分成獨立命名且可獨立訪問的模塊,最后裝配集成模塊完成指定的功能。指導(dǎo)過程中,不僅需要糾正學(xué)生一接觸題目馬上編碼的習(xí)慣,而且需要糾正學(xué)生在main方法中編寫所有代碼的習(xí)慣,這種方式會使得整個函數(shù)變得龐雜,代碼冗余大,不利于分工協(xié)作,也給閱讀和維護帶來很大的困難。當(dāng)學(xué)生在程序分解主函數(shù)和若干個其他函數(shù)時,發(fā)現(xiàn)常存在著隨意分解、隨心所欲定義函數(shù)的現(xiàn)象,針對這一情況,教師可以先以一個項目為例,如成績管理系統(tǒng),演示模塊的分解過程,說明內(nèi)聚性和耦合性要求[5]。在實際項目應(yīng)用時,要求學(xué)生按功能分解,模塊內(nèi)的函數(shù)做到功能盡量單一,留出接口供其他模塊調(diào)用,一個模塊對應(yīng)一個文件,便于分工協(xié)作。各小組在完成按模塊劃分的軟件體系結(jié)構(gòu)圖后,才被允許進入下一個詳細(xì)設(shè)計編碼階段。
2.4 強化編程思想的訓(xùn)練,加深對重要知識點的理解
算法是程序設(shè)計的靈魂,教學(xué)中需要成功訓(xùn)練好學(xué)生的頭腦,使他們變得足夠熟練、敏捷和靈活,需要訓(xùn)練學(xué)生在多個抽象層次上同時思考問題[1]。因此,實踐過程中,要求學(xué)生熟練應(yīng)用程序流程圖或偽代碼等工具設(shè)計算法,在組內(nèi)展開討論,比較不同算法實現(xiàn)方案的優(yōu)劣,以及如何在完成程序的功能基礎(chǔ)上,改善程序結(jié)構(gòu),優(yōu)化算法,進一步提高運行效率和空間利用率。
對C語言而言,訓(xùn)練學(xué)生的編程思想,離不開指針、函數(shù)參數(shù)傳遞這些重要概念,是否真正理解這些概念也與能否成為一個優(yōu)秀程序員直接相關(guān)。在學(xué)生編碼時,可幫助他們建立內(nèi)存模型,通過跟蹤每條語句的執(zhí)行情況,感受不同數(shù)據(jù)類型在內(nèi)存中所占用的空間,直觀地觀察內(nèi)存布局變化、變量的生命周期、變量狀態(tài)的變化等,去深入理解這些概念尤其是指針的本質(zhì)。
程序設(shè)計的另一目的是要培養(yǎng)學(xué)生的操作能力,其中很重要的一點就是提高調(diào)試能力。調(diào)試的方便與否與程序書寫風(fēng)格密切相關(guān),學(xué)生通常不注意代碼的規(guī)范化,出現(xiàn)沒有層次縮進,標(biāo)記符隨意命名、詞不達意,也沒有必要的注釋等現(xiàn)象,這些給查錯和閱讀帶來了很大的不便,不利于分組模式下的協(xié)作開發(fā)和維護,因此,實踐教學(xué)時應(yīng)該培養(yǎng)學(xué)生注意良好程序風(fēng)格。此外,教學(xué)時還需糾正部分學(xué)生寫代碼一寫到底的習(xí)慣,讓學(xué)生認(rèn)識到程序的編寫是一個調(diào)試-修改-調(diào)試的反復(fù)迭代過程,要在多次錯誤或失敗中獲取調(diào)試經(jīng)驗。在學(xué)生出現(xiàn)錯誤時,要引導(dǎo)學(xué)生根據(jù)錯誤和警告信息,分析辨別是語法錯誤還是邏輯錯誤,并鼓勵學(xué)生使用調(diào)試工具,應(yīng)用斷點跟蹤和對分查找等調(diào)試方法,去主動地發(fā)現(xiàn)和解決問題。
測試在軟件開發(fā)中占重要地位,軟件測試的工作量往往占軟件開發(fā)總工作量的40%以上。從學(xué)生實踐情況調(diào)查來看,測試往往是初學(xué)C語言的學(xué)生特別容易忽略的,普遍出現(xiàn)一些諸如不重視人機交互界面設(shè)計,沒有輸入提示或出錯提示信息,僅使用在預(yù)定范圍內(nèi)、滿足預(yù)定格式要求的正確數(shù)據(jù)進行測試等問題。項目驅(qū)動的教學(xué)尤其應(yīng)該注重培養(yǎng)學(xué)生的測試意識,指導(dǎo)學(xué)生學(xué)會設(shè)計簡單的有效測試用例和無效測試用例,并開展組內(nèi)測試和組間測試,以提高測試效率和質(zhì)量。
2.5 考核方式改革
對不容易理解的常量、變量和語句有注釋\&5%\&函數(shù)、變量取名較規(guī)范易懂\&5%\&函數(shù)功能是否滿足功能內(nèi)聚\&15%\&調(diào)試手段\&會單步運行到任何一個語句,查看變量值\&5%\&會斷點調(diào)試\&5%\&總結(jié)報告\&用流程圖或偽代碼描述一個函數(shù)的算法\&10%\&有小組分工情況說明和各自的經(jīng)驗總結(jié)\&5%\&語言簡練,條理清楚,圖表規(guī)范,附程序清單\&10%\&]
分組形式的課程設(shè)計需采用彈性考核機制,個人考核、組內(nèi)考核和教師考核有機結(jié)合方式。課程設(shè)計考核成績=個人自我評價(15%)+組內(nèi)評價(35%)+教師評價(50%)。自我評價是促進學(xué)生反思的一種有效手段,組內(nèi)評價可以觀察學(xué)生組內(nèi)交流協(xié)調(diào)時有沒有突出表現(xiàn),而為避免少數(shù)學(xué)生抄襲實驗報告,教師評價采用答辯形式,考核學(xué)生的實際操作能力、對數(shù)據(jù)結(jié)構(gòu)設(shè)計和算法的理解程度,以及功能和算法上的應(yīng)用亮點??己说木唧w內(nèi)容和評分標(biāo)準(zhǔn)可以多元化,比如對一個用鏈表實現(xiàn)圖書信息管理系統(tǒng)的項目,可以按表1來指定具體考核標(biāo)準(zhǔn)。
3 結(jié)束語
本學(xué)院的C語言課程設(shè)計教學(xué)實踐表明,通過項目驅(qū)動的分組教學(xué)法的實施,能充分調(diào)動學(xué)生的學(xué)習(xí)積極性,學(xué)生的編程邏輯性和實踐能力都得到了明顯提高。在模仿實際開發(fā)環(huán)境過程中,學(xué)生對項目開展的整個流程和各環(huán)節(jié)的具體要求程有了切實了解,積累了一定的項目開發(fā)經(jīng)驗,培養(yǎng)起了團隊協(xié)作能力。為了能更好地提高學(xué)生實踐能力,為他們將來從事軟件開發(fā)工作奠定扎實基礎(chǔ),我們還需要在今后的實踐教學(xué)中繼續(xù)開拓和探索,以期達到更好的實踐效果。
參考文獻:
[1] Spolsky J. More Joel on Software: Further Thoughts on Diverse and Occasionally Related Matters that Will Prove of Interest to Software Developers, Designers, and Managers, and to Those Who, Whether by Good Fortune Or Ill Luck, Work with Them in Some Capacity[M].Apress,2008.
[2] Brooks, Jr. Frederick P., "The Mythical Man-Month", The: Essays on Software Engineering[M]. Anniversary Edition, 2/E, Addison Wesley,1995.
[3] 時貴英,劉華鎣,李瑞芳.分組協(xié)作教學(xué)模式在程序設(shè)計課程中的應(yīng)用[J].長江大學(xué)學(xué)報自然科學(xué)版:理工卷,2010.3:704-705
關(guān)鍵詞:C++程序設(shè)計;課程建設(shè);負(fù)反饋教學(xué)法;實踐環(huán)節(jié);特色教材
中圖分類號:G64 文獻標(biāo)識碼:B
文章編號:1672-5913(2007)12-0018-03
C++不僅是一門程序設(shè)計課程,而且是這些專業(yè)后續(xù)專業(yè)課程(如數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)、微機原理、單片機及應(yīng)用等)的重要基礎(chǔ),更是這些專業(yè)開展計算機研究和應(yīng)用的重要表達工具和開發(fā)工具。因此,Visual C++程序設(shè)計課程的教學(xué)改革與建設(shè)具有十分重要的意義。本文下面從教學(xué)方法改革、教學(xué)內(nèi)容研究、實踐環(huán)節(jié)建設(shè)、特色教材編寫等方面介紹我校VC++課程建設(shè)的一些做法。
1積極推進教學(xué)方法改革,形成頗具特色的負(fù)反饋教學(xué)法
負(fù)反饋教學(xué)法的原理是從教學(xué)過程中反饋(作業(yè)、實驗、答疑、單元測驗等)的問題入手,通過及時講評,解決學(xué)生學(xué)習(xí)中存在的問題,以達到預(yù)期的教學(xué)目標(biāo)。由于反饋的是教學(xué)過程中存在的問題故稱此方法為負(fù)反饋教學(xué)法。負(fù)反饋教學(xué)法包括以下方面。
1.1用“范例”組織課堂教學(xué),貫徹“發(fā)現(xiàn)式”教學(xué)思想
范例教學(xué)法由教育學(xué)家瓦根舍因提出,教師通過范例輔助學(xué)生理解、掌握知識和原理,其目的是讓學(xué)生能夠獨立地獲得判斷能力、推理能力、認(rèn)識能力和繼續(xù)學(xué)習(xí)的能力。以往,程序設(shè)計課程教學(xué)通常以一門具體語言為主線,圍繞語法知識展開。而實質(zhì)上,設(shè)計程序是為了解決實際問題,是一種縝密思維方式、創(chuàng)新素質(zhì)和綜合能力的培養(yǎng)。要使學(xué)生對程序設(shè)計有興趣,必須親自感受并體驗程序設(shè)計的無限魅力。為此,我們改用范例組織課堂教學(xué)。在多媒體教學(xué)設(shè)備和真實編程環(huán)境的支持下,課堂教學(xué)以程序(范例)為主線。所選范例程序具有典型性、綜合性和可擴展性,涉及基本語法、基本算法和基本調(diào)試技術(shù)。范例程序的講解首先符合“現(xiàn)象發(fā)現(xiàn)問題分析問題解決問題驗證”的探索過程,使學(xué)生掌握基本語法、算法及應(yīng)用。其次,通過對范例程序的啟發(fā)式擴展,揭示程序由小到大、由簡單到復(fù)雜直到實用的過程,激發(fā)學(xué)生的探索熱情和興趣,使學(xué)生掌握知識間的聯(lián)系和編程的工程化思想,獲得實際編程能力。
1.2采集教學(xué)負(fù)反饋信息,做好分類、分析和講評
按負(fù)反饋教學(xué)法要求,任課教師做好作業(yè)和實驗報告的抽樣批改、單元測驗的全樣批改,重視實驗指導(dǎo)和答疑,從中了解學(xué)生的學(xué)習(xí)情況。在獲取足夠的負(fù)反饋信息后,任課教師及時做好問題的分類、分析和講評,及時發(fā)現(xiàn)和解決學(xué)生學(xué)習(xí)中存在的問題,確保學(xué)生對所學(xué)知識的真正掌握。
1.3根據(jù)大班教學(xué)特點,推進強同步教學(xué)策略
大班教學(xué)成功的關(guān)鍵在于保持師生教與學(xué)的同步狀態(tài)。負(fù)反饋教學(xué)法的師生同步措施有授課、作業(yè)、實驗、講評和測驗等。其中,作業(yè)與實驗報告由于學(xué)生存在一定抄襲現(xiàn)象,同步效果欠佳,為弱同步措施。授課、講評和測驗同步效果較好,為強同步措施。為使大班教學(xué)取得較好效果,采用強同步措施是必要的。特別地,我們在每個單元安排一次測驗,以實現(xiàn)師生的強同步,及時取得真實的負(fù)反饋信息。
1.4編寫負(fù)反饋教學(xué)法配套教輔資料,培養(yǎng)學(xué)生自學(xué)、探索和自我完善能力
配套教輔資料主要有:①學(xué)習(xí)指導(dǎo)。注重概念理解、知識鞏固,設(shè)單元測試,便于學(xué)生學(xué)習(xí)和自測自查;②實驗指導(dǎo)。共有17個實驗,每個實驗包含調(diào)試技術(shù)介紹、程序調(diào)試題、程序設(shè)計題和選做題,注重培養(yǎng)學(xué)生的編程能力和調(diào)試能力,激發(fā)學(xué)生編程興趣;③典型問題和綜合問題編程。共8個專題,便于學(xué)生突破難點,融會貫通,體驗綜合編程的樂趣,培養(yǎng)分析和解決問題的能力;④二級考試模擬試卷;⑤VC++ 6.0程序調(diào)試技術(shù),包括使用VC++ 6.0 IDE編寫和調(diào)試程序的方法和技巧。
2強化實踐教學(xué),注重培養(yǎng)學(xué)生的實際編程能力
VC++課程是一門難點多、綜合性較強的課程,實驗是該課程至關(guān)重要的環(huán)節(jié),只有通過實驗才能檢驗自己是否真正掌握和運用該語言。通過上機調(diào)試程序,會發(fā)現(xiàn)很多想不到的問題,通過解決這些問題,可以加深對語言和算法的理解,提高程序調(diào)試和實際編程能力。為此,本課程設(shè)有課內(nèi)實驗(32學(xué)時)和課程設(shè)計(兩周)實踐教學(xué)環(huán)節(jié)。
2.1課內(nèi)實驗注重培養(yǎng)學(xué)生基本編程和調(diào)試能力
基本編程和調(diào)試能力是深入學(xué)習(xí)本課程并取得實際編程能力的前提。課程實驗是至關(guān)重要的教學(xué)環(huán)節(jié),與課堂教學(xué)同步進行。我們根據(jù)教學(xué)內(nèi)容編寫了一套以調(diào)試技術(shù)、基本語法、基本算法、綜合編程為核心內(nèi)容的同步實驗指導(dǎo),共擬定了17個實驗,每個實驗通常包括調(diào)試題、編程題和選做題,可供不同層次的學(xué)生選用。
2.2課程設(shè)計注重培養(yǎng)學(xué)生綜合編程和實際應(yīng)用能力
課程設(shè)計安排在課程結(jié)束以后,以綜合性程序設(shè)計訓(xùn)練為主,選題具有典型性、綜合性和示范性,突出難點與實用價值,使學(xué)生體會到難點不難,難點在實際編程中非常有用。通過課程設(shè)計,學(xué)生進一步鞏固和掌握基本語法、基本算法和基本調(diào)試技術(shù),養(yǎng)成良好程序設(shè)計風(fēng)格(模塊化、結(jié)構(gòu)化)和嚴(yán)謹(jǐn)?shù)目茖W(xué)作風(fēng),初步形成軟件工程化思想,具有一定的程序組織能力。
課程設(shè)計的內(nèi)容涉及基本算法和數(shù)據(jù)結(jié)構(gòu)。基本算法包括窮舉、迭代、遞推、遞歸、排序和查找等。基本數(shù)據(jù)結(jié)構(gòu)包括數(shù)組、結(jié)構(gòu)、指針、動態(tài)內(nèi)存分配、單向鏈表、對象、文件等。課程設(shè)計的實施,對非計算機專業(yè)采用小綜合方案,計算機專業(yè)采用大綜合方案。所謂小綜合是指程序規(guī)模在幾十到幾百行的小題目,大綜合則是程序的規(guī)模在數(shù)百行以上有一定實用價值的題目。
2.3實踐教學(xué)認(rèn)真實施,嚴(yán)格考核,確保效果
在課內(nèi)實驗和課程設(shè)計的實施過程中,配備富有經(jīng)驗的指導(dǎo)教師,現(xiàn)場實時進行輔導(dǎo)和答疑,指導(dǎo)學(xué)生解決編程中出現(xiàn)的問題。同時對學(xué)生嚴(yán)格要求,嚴(yán)格考核,確保實踐教學(xué)質(zhì)量。加強實踐環(huán)節(jié)的考核是提高實踐教學(xué)質(zhì)量的重要保證。預(yù)習(xí)和考勤占總成績的30%,上機檢查并回答提問占總成績的40%,課程實驗報告和課程設(shè)計報告占總成績的30%。
3積極開展教學(xué)內(nèi)容研究,不斷優(yōu)化和更新教學(xué)內(nèi)容
根據(jù)程序設(shè)計課程本身發(fā)展快、更新快、綜合性強、存在問題多的特點,針對同類教材中存在的一些問題和不足,積極開展教學(xué)內(nèi)容的研究,先后發(fā)表 “C++運算符重載教學(xué)和編程中易被忽視的問題”、“C++中二維數(shù)組與指針關(guān)系的深入剖析”、“C++語言引用型變量的實現(xiàn)機制淺析”、“C/C++語言可變參數(shù)函數(shù)的參數(shù)傳遞機制剖析” 等論文,并及時把這些教研成果和學(xué)科最新進展引入教學(xué)。
3.1課程內(nèi)容分為三個知識模塊
(1) 結(jié)構(gòu)化程序設(shè)計基礎(chǔ):包括C++概述、數(shù)據(jù)類型、運算符、表達式、簡單的輸入輸出、算法與流程控制語句等。
(2) 模塊化程序設(shè)計:包括函數(shù)、編譯預(yù)處理、程序的多文件組織、數(shù)組、結(jié)構(gòu)體、共用體、枚舉類型、指針和引用。
(3) 面向?qū)ο蟪绦蛟O(shè)計:包括類、對象、構(gòu)造函數(shù)、析構(gòu)函數(shù)、繼承、派生、友元、虛函數(shù)、靜態(tài)成員、運算符重載、I/O類庫、命名空間、模板和異常處理等。
3.2課程的重點、難點及解決辦法
(1) 算法表達、結(jié)構(gòu)化語句:結(jié)構(gòu)化編程的基礎(chǔ)。注重講授算法的結(jié)構(gòu)化表示法,結(jié)構(gòu)化語句,常用基本算法,斷點+單步調(diào)試技術(shù)。
(2) 函數(shù):模塊化編程基礎(chǔ)。注重講授程序的模塊化組織思想和方法,自頂向下逐步求精的程序設(shè)計思想,參數(shù)傳遞,變量作用域,程序的多文件組織。
(3) 數(shù)組、結(jié)構(gòu)體、指針:數(shù)據(jù)的結(jié)構(gòu)化和模塊化組織基礎(chǔ)。指針是重點和難點,應(yīng)正確區(qū)分指針與地址,強調(diào)指針類型的作用,講清各類指針的含義及作用。特別注重講授指針在動態(tài)生成基本數(shù)據(jù)結(jié)構(gòu),解決實際問題方面的綜合實例。
(4)類、對象、繼承、運算符重載、虛函數(shù):面向?qū)ο蟪绦蛟O(shè)計基礎(chǔ)。運算符重載較易理解,但有些方面易忽視,應(yīng)提請學(xué)生注意。虛函數(shù)是重點和難點,應(yīng)注重講授虛函數(shù)的必要性、重要性、實現(xiàn)機制和綜合實例。
4改革考評方式,正確發(fā)揮考試的導(dǎo)向作用
根據(jù)VC++課程的特點,正確發(fā)揮考試的導(dǎo)向作用。改革考評方式,實行考教分離,并使其與江蘇省大學(xué)生計算機等級(二級)考試方式接軌,采取筆試(50%)+機試(50%)的方式,理論與實踐并重。
試卷的試題源自題庫和現(xiàn)任教師的征卷,試卷由選題算法和軟件系統(tǒng)產(chǎn)生,難度與二級考試相當(dāng),提高了考評的科學(xué)性。
5總結(jié)提煉教學(xué)經(jīng)驗和成果,積極開展特色教材建設(shè)
教材建設(shè)是課程建設(shè)的重要方面。幾年來,課程組對國內(nèi)外流行C++教材進行研究、分析和試用,總結(jié)、積累和提煉自己的教學(xué)經(jīng)驗和成果,從校內(nèi)講義開始,逐步開展具有自己特色的教材建設(shè)工作。2005年2月,自編教材《Visual C++程序設(shè)計習(xí)題、實驗與編程實踐》由華東理工大學(xué)出版社出版,同年12月又第二次印刷,得到了社會讀者的認(rèn)可。2005年10月,本課程獲江蘇省高等學(xué)校精品教材立項建設(shè),課程組編著的體現(xiàn)“負(fù)反饋”教學(xué)特色的教材《C++程序設(shè)計實踐教程》一書目前已與清華大學(xué)出版社簽訂出版合同,書稿已經(jīng)交付,將于2007年上半年出版。
6運用現(xiàn)代化教學(xué)手段,加強網(wǎng)絡(luò)教學(xué)資源建設(shè)
經(jīng)過多年的教學(xué)、研究、建設(shè)和總結(jié),本課程已積累了豐富的網(wǎng)上教學(xué)資源,經(jīng)常更新,在教學(xué)中發(fā)揮重要作用。網(wǎng)上教學(xué)資源包括:課程教學(xué)大綱、課程設(shè)計大綱、教學(xué)日歷、課程設(shè)計任務(wù)書、實驗指導(dǎo)書、教學(xué)課件、習(xí)題集、典型問題及參考程序、相關(guān)教學(xué)論文、英文版課外輔導(dǎo)材料、模擬試卷等。課程組成員開發(fā)的“基于WEB的《C語言程序設(shè)計》教學(xué)系統(tǒng)”2006年11月獲得第二屆全國高等學(xué)校計算機課件評比二等獎。本課程網(wǎng)上教學(xué)資源的網(wǎng)址為:。
參考文獻:
[1] 劉維富,陳建平,王春明. 淺談“C++程序設(shè)計”課程的建設(shè)與實踐[C]. 第二屆全國計算機課程報告論壇,2006,11.
[2] 劉維富,丁衛(wèi)平,沈?qū)W華. Visual C++程序設(shè)計習(xí)題、實驗與編程實踐[M]. 上海:華東理工大學(xué)出版社,2005,2.
[3] 顧暉,劉維富,管致錦. 負(fù)反饋教學(xué)法的原理與實踐[J]. 電氣電子教學(xué)學(xué)報,2004,(4): 102-104.
[4] 邱建林,劉維富,顧暉. C語言程序設(shè)計教學(xué)的研究與實踐[J]. 電氣電子教學(xué)學(xué)報, 2003,(4):96-98.
[5] 劉維富. C++運算符重載教學(xué)和編程中易被忽視的問題[J]. 南通工學(xué)院學(xué)報(自然科學(xué)版),2003,(3):56-59.
[6] 劉維富. C++語言引用型變量的實現(xiàn)機制淺析[J]. 南通工學(xué)院學(xué)報(自然科學(xué)版),2002,(1):64-66.
[7] 顧暉. C/C++語言可變參數(shù)函數(shù)的參數(shù)傳遞機制剖析[J]. 電腦與信息技術(shù), 2004,(3): 37-38.
[8] 丁衛(wèi)平,劉維富,沈天晴. C++中二維數(shù)組與指針關(guān)系的深入剖析[J]. 南通工學(xué)院學(xué)報(自然科學(xué)版),2004,(3):85-87.
投稿日期:2007-2-24
作者簡介:陳建平(1960-),男,江蘇南通人,碩士,教授,研究方向為快速算法設(shè)計與實現(xiàn)等。
劉維富(1961-),男,江蘇南通人,碩士,副教授。研究方向為計算機語言與程序設(shè)計等。
通信地址:江蘇省南通市嗇園路9號南通大學(xué)計算機科學(xué)與技術(shù)學(xué)院陳建平郵編226019
E-mail:
電話:0513-85975405,13962955020
程序設(shè)計 C語言教學(xué) 基本方案
一、引言
計算機科學(xué)與技術(shù)學(xué)科強調(diào)4個方面的專業(yè)能力:計算思維能力,算法設(shè)計與分析能力,程序設(shè)計與實現(xiàn)能力,以及計算機系統(tǒng)的認(rèn)知、分析、設(shè)計和運用能力。程序設(shè)計與實現(xiàn)能力在程序設(shè)計C語言課程得到了具體的體現(xiàn)。其中設(shè)計到的程序設(shè)計的內(nèi)容,為算法設(shè)計與分析能力奠定了良好的基礎(chǔ)。
作為一種系統(tǒng)程序設(shè)計語言,C語言已廣泛用于為各種不同的計算機系統(tǒng)編寫系統(tǒng)軟件,如操作系統(tǒng)、編譯系統(tǒng)、匯編器及編輯器等;作為一種應(yīng)用程序設(shè)計語言,C語言已廣泛用于編寫各種應(yīng)用領(lǐng)域的應(yīng)用軟件。
關(guān)于C語言的教學(xué)探討一直都是學(xué)者、教師和相關(guān)人員的主要探討的課題之一。與國外相比,我國的教學(xué)往往缺少活力。在開設(shè)的理工類課程中,科學(xué)邏輯很強,通常采用演繹方式進行教材編寫和教學(xué)活動,學(xué)生缺乏主動探索精神和自己設(shè)計課程內(nèi)容環(huán)節(jié)。C語言的教學(xué)也大體如此。
1.沒有充分調(diào)動學(xué)生的學(xué)習(xí)積極性。一般在大一開設(shè)C語言,對于剛進入大學(xué)的學(xué)生,C語言概念性強,理論內(nèi)容較豐富;抽象性強;邏輯性要求高;一開始容易陷入C語言的繁瑣的細(xì)節(jié)中。
2.沒有突出C語言本身的特點。課堂教學(xué)沒有突出C語言本身的特點,如靈活的指針、追求執(zhí)行效率等,不容易掌握C語言的精華。
3.對實踐環(huán)節(jié)重視不夠。對實踐環(huán)節(jié)重視不夠,導(dǎo)致要求完成的實踐內(nèi)容脫離實際的、有趣的應(yīng)用。
4.相關(guān)基本內(nèi)容設(shè)計不足。對算法思想、數(shù)據(jù)結(jié)構(gòu)的相關(guān)基本內(nèi)容設(shè)計不足。
二、解決的主要問題
1.強調(diào)以學(xué)生為中心。要在學(xué)習(xí)過程中充分發(fā)揮學(xué)生的主動性,要能體現(xiàn)出學(xué)生的首創(chuàng)精神;要讓學(xué)生有多種機會在不同的情境下去應(yīng)用他們所學(xué)的知識(將知識“外化”);要讓學(xué)生能根據(jù)自身行動的反饋信息來形成對客觀事物的認(rèn)識和解決實際問題的方法(實現(xiàn)自我反饋)。
2.強調(diào)“情境”教學(xué)。在教學(xué)過程中,實際情境下的學(xué)習(xí),能使學(xué)生更加深刻地理解所學(xué)知識的意義,并容易看到自己的勞動成果,從而激發(fā)學(xué)習(xí)的動力和興趣,提高學(xué)習(xí)的效率。
3.強調(diào)“協(xié)作學(xué)習(xí)”。學(xué)生們在教師的組織和引導(dǎo)下一起討論和交流,共同建立起學(xué)習(xí)群體。在群體中,允許觀點和方法的碰撞和交鋒,但最終需要群體成員的配合和支持,才能完成一個具體的任務(wù)。這樣的協(xié)作學(xué)習(xí)對培養(yǎng)學(xué)生的團隊精神起著關(guān)鍵性的作用。
4.強調(diào)對學(xué)習(xí)環(huán)境(而非教學(xué)環(huán)境)的設(shè)計。學(xué)習(xí)環(huán)境是學(xué)生可以在其中進行自由探索和自主學(xué)習(xí)的場所。學(xué)生可以利用其中的各種工具和信息資源來達到自己學(xué)習(xí)的目標(biāo)。
5.強調(diào)利用各種信息資源來支持“學(xué)”(而非支持“教”),建立教學(xué)資源庫。在學(xué)習(xí)過程中為學(xué)習(xí)者提供各種信息資源(包括各種教學(xué)媒體和資料),以支持學(xué)習(xí)者主動探索和完成意義建構(gòu)。
三、具體方案
1.教學(xué)目標(biāo)分析。確定當(dāng)前學(xué)生學(xué)習(xí)的主題(即確定與基本概念、語法以及程序設(shè)計有關(guān)的知識內(nèi)容),是教學(xué)設(shè)計面臨的首要任務(wù)。
2.學(xué)習(xí)任務(wù)設(shè)計。基于真實問題情景下的探索、學(xué)習(xí)的過程,就是解決實際問題的過程。擬采用“以培養(yǎng)能力為核心,以實踐為主線,以項目為載體,用任務(wù)進行驅(qū)動”的教學(xué)方法。以某個實際項目為主線,貫穿順序、選擇、循環(huán)結(jié)構(gòu)和數(shù)組、指針等所有章節(jié)中,課程教學(xué)具有連貫性。同時結(jié)合現(xiàn)場提供實際項目案例(子項目)組織教學(xué)。教學(xué)過程中,通過案例導(dǎo)入,任務(wù)驅(qū)動,引導(dǎo)學(xué)生由簡到繁、由易到難、循序漸進地完成一系列“任務(wù)”。在完成“任務(wù)”的過程中,培養(yǎng)學(xué)生分析問題、解決問題以及用計算機處理信息的能力,完成課程設(shè)計和教學(xué)訓(xùn)練的全過程。使學(xué)生體會到知識的實用性,提高學(xué)習(xí)興趣。
內(nèi)容由淺入深,涉及的相關(guān)的專業(yè)基礎(chǔ)知識較為全面,并以一個完整的典型的小型軟件系統(tǒng)的設(shè)計與實現(xiàn)為主線,貫穿教學(xué)的各章內(nèi)容。
借助于計算機相關(guān)課程(如軟件工程、算法設(shè)計與分析、數(shù)據(jù)結(jié)構(gòu)、編譯原理等)的基本內(nèi)容,對C語言加深理解和應(yīng)用。
3.學(xué)習(xí)情境設(shè)計。學(xué)習(xí)情景指為學(xué)生提供一個完整、真實的問題背景,以此為支撐物啟動教學(xué),使學(xué)生產(chǎn)生學(xué)習(xí)的需要;同時促進學(xué)習(xí)共同體中成員間的互動、交流,即合作學(xué)習(xí),驅(qū)動學(xué)習(xí)者進行自主學(xué)習(xí)。將實際開發(fā)項目引入課堂教學(xué),作為教學(xué)和實驗實訓(xùn)項目。根據(jù)課程內(nèi)容和工作過程,結(jié)合學(xué)生特點,采用任務(wù)驅(qū)動、項目教學(xué)、講練結(jié)合等教學(xué)手段,把工作項目開發(fā)過程的工作環(huán)節(jié)及任務(wù)穿插于各個知識點的學(xué)習(xí)中。
4.信息資源設(shè)計。確定與項目完成相關(guān)的信息資源。確定所需信息資源的種類和每種資源在完成本次任務(wù)的過程中所起的作用。需要確定從何處獲取有關(guān)的信息資源,如何去獲取以及如何有效地利用這些資源等問題。建立系統(tǒng)的信息資源庫,提供引導(dǎo)學(xué)生正確使用搜索引擎的方法。
5.自主學(xué)習(xí)設(shè)計。自主學(xué)習(xí)是讓學(xué)生進行自我學(xué)習(xí)、自我探究的學(xué)習(xí)方式。其核心是發(fā)揮學(xué)生學(xué)習(xí)的主動性、積極性,充分體現(xiàn)學(xué)生的認(rèn)知主體作用,其重點是如何幫助學(xué)生“學(xué)”。自主學(xué)習(xí)策略的設(shè)計是整個以學(xué)為主教學(xué)設(shè)計的核心內(nèi)容之一。
6.協(xié)作學(xué)習(xí)環(huán)境設(shè)計。在個人自主學(xué)習(xí)的基礎(chǔ)上開展小組討論、協(xié)商,以進一步完善和深化對主題的意義建構(gòu)。整個協(xié)作學(xué)習(xí)過程均由教師組織引導(dǎo),討論的問題可由師生根據(jù)教學(xué)內(nèi)容,聯(lián)系生活實際提出,在教師的指導(dǎo)下通過個人、小組搜集材料、提取信息、處理信息、合作研究、探索解決問題的學(xué)習(xí)方式,為學(xué)生提供一個交流、合作、探索、發(fā)展的平臺。
7.考試考核方法改革。在對學(xué)生進行能力評價時,要根據(jù)目標(biāo)多元、方式多樣、注重過程的評價原則,綜合運用觀察、測驗、操作、作品展示、項目設(shè)計等多種評價方式。評價要體現(xiàn):突出能力本位;重視對原有學(xué)習(xí)能力的認(rèn)可;個性化評價;強調(diào)創(chuàng)新能力的評價。
四、總結(jié)
通過對程序設(shè)計C語言課程的教學(xué)改革,培養(yǎng)學(xué)生編程思想,使其具備基本程序結(jié)構(gòu)代碼的編寫能力,熟悉基本程序設(shè)計方法,能更好地利用程序設(shè)計思想解決本專業(yè)領(lǐng)域中的問題,將程序設(shè)計方法用于后續(xù)計算機語言課程的學(xué)習(xí)中,為其他相關(guān)課程奠定基礎(chǔ)。
參考文獻:
[1]蔣宗禮,姜守旭.形式語言與自動機理論(第2版)[M].北京:清華大學(xué)出版社,2007.
[2]朱清新.計算機算法設(shè)計與分析導(dǎo)論[M],北京:人民郵電出版社,2008.
關(guān)鍵詞:C語言;程序設(shè)計;課程論;后現(xiàn)代;對話
中圖分類號:G 文獻標(biāo)識碼:B
文章編號:1672-5913(2007)07-0018-05
1 二十年教學(xué)之總結(jié)
筆者從事程序設(shè)計語言教學(xué)20余年,從早期講授解釋性BASIC,中間穿插講授Pascal、匯編、HTML,直到近十年主講C和C++。在多年的教學(xué)中,逐漸形成以現(xiàn)代教學(xué)論為指導(dǎo)的教學(xué)范式,現(xiàn)分三個方面予以總結(jié)。
1.1 突出程序設(shè)計語言的基本結(jié)構(gòu)
教學(xué)首要的問題是如何處理教材、恰當(dāng)選擇教學(xué)內(nèi)容。C語言的教學(xué)要突出的是:基本語法規(guī)則,C程序的基本結(jié)構(gòu)及算法設(shè)計以及上機操作的基本方法。在教學(xué)中以閱讀、編寫、調(diào)試C程序為主線,對某些次要的語法細(xì)節(jié)和數(shù)學(xué)問題的算法則不必繁瑣講解。有些教材對數(shù)學(xué)問題有偏愛,常拿數(shù)學(xué)問題作為例程或習(xí)題,如“已知三角形的三條邊求其面積”、“求兩個數(shù)的最大公約數(shù)、最小公倍數(shù)”等等。這些問題求解涉及數(shù)學(xué)公式或數(shù)論知識,對于數(shù)學(xué)程度較弱的學(xué)生,增加了學(xué)習(xí)上的困難??紤]到學(xué)生的差異性,一開始上課時還是舉些貼近實際的問題效果較好。
1.2 范例導(dǎo)向的教學(xué)方法
C語言教學(xué)有兩種方法,一種是以語法體系為中心,首先介紹語法規(guī)則,然后舉例說明。這是多數(shù)教材和教師采用的方法。另一種是以問題為中心,圍繞精心選擇的“范例”展開教學(xué)。筆者的具體作法是:(1)提出問題;(2)板書程序(或投影),要求學(xué)生做好筆記并思考;(3)分析程序,講解其中的語法規(guī)則及算法;(4)上機實驗,內(nèi)容為例程、教師布置習(xí)題或自選題。例程的選擇要“少而精”,選擇和實際應(yīng)用密切相關(guān)的問題才能引起學(xué)生的興趣。每次課(2節(jié))講3~4個例程,一學(xué)期將積累40多個例程。如果學(xué)生能將這些例程融會貫通,C語言程序設(shè)計可以說已經(jīng)入門。
1.3 操作―強化的教學(xué)策略
程序設(shè)計是實踐性很強的學(xué)科,需要通過實驗操作來培養(yǎng)動手能力、實踐能力。有的教師說:“這個問題我已經(jīng)講過,學(xué)生怎么還不會呢?”問題是學(xué)習(xí)并非簡單的刺激―反應(yīng)式(桑代克的學(xué)習(xí)理論),并非教師告訴學(xué)生是什么、怎么做,學(xué)生就能學(xué)會。真正的學(xué)習(xí)要經(jīng)過操作―強化過程(斯金納的學(xué)習(xí)理論),通過操作結(jié)果的反饋――正確結(jié)果的強化與對錯誤結(jié)果的反思,學(xué)生才能真正理解掌握。比如初學(xué)者使用標(biāo)準(zhǔn)輸入函數(shù)scanf()時常常搞不清它是在什么時候執(zhí)行的,有些學(xué)生會寫錯它在程序中的位置。上機實驗后才恍然大悟?!翱罩v無效,多講無益”,認(rèn)識到這一點很重要,教師要下決心精簡講課時間,增加實驗課時間,兩者比例1:1較合適。最好每講2節(jié)課緊跟2節(jié)實驗。
以上“三招”在教學(xué)中比較靈,教師自感得心應(yīng)手,學(xué)生反映也好。為此,筆者于1998年、2002年兩次獲院優(yōu)秀教學(xué)獎。
2 教育“大眾化”后的教學(xué)困惑
隨著計算機教育的發(fā)展,“C語言程序設(shè)計”從20年前僅由研究生、訪問學(xué)者學(xué)習(xí)的高級課程,成為基礎(chǔ)課程,很多非計算機專業(yè)(包括文科專業(yè))也加入到學(xué)習(xí)C語言的行列。高校擴招以來,教學(xué)對象的變化使C語言教學(xué)遇到前所未有的問題,一部分學(xué)生跟不上教學(xué)進度,達不到規(guī)定的教學(xué)要求,考試不及格的比例之高難以想象。筆者也嘗試降低某些較難章節(jié)的教學(xué)要求,但因為基礎(chǔ)較好的同學(xué)有較高的要求,以及學(xué)位考試和部分學(xué)生考研的需要,也不能一味降低教學(xué)要求。教學(xué)面臨兩難的抉擇。建立在現(xiàn)代教育觀、現(xiàn)代課程觀基礎(chǔ)之上的教學(xué)受到教學(xué)現(xiàn)實的強烈沖擊,不能不引起筆者深刻的反思。2006~2007年度筆者獲得到華東師范大學(xué)訪學(xué)的機會。通過廣泛的學(xué)術(shù)交流及文獻資料閱讀,開闊了視野,對C語言教學(xué)有了新的認(rèn)識。
3 現(xiàn)代課程觀批判
現(xiàn)代課程論的奠基之作是拉爾夫?泰勒(Ralph Tyler)的《課程與教學(xué)的基本原理》(1949),簡稱為“泰勒原理”,其要點有4條:(1)確定教育目標(biāo);(2)選擇能達到教育目標(biāo)的經(jīng)驗;(3)有效組織教育經(jīng)驗;(4)通過教育評價檢驗教育目標(biāo)是否實現(xiàn)?!疤├赵怼痹从?0世紀(jì)工業(yè)化時代工廠模式。學(xué)生猶如流水線的產(chǎn)品,按照相同的標(biāo)準(zhǔn)、用相同工藝塑造,最后檢驗產(chǎn)品質(zhì)量。合格的出廠(畢業(yè)),不合格的返工(補考)。
現(xiàn)代課程模式的最大弊端是簡單,既忽視了學(xué)生差異,也忽視了社會對人才的多元化要求。學(xué)生之間的天賦、特長、能力、基礎(chǔ)、興趣、就業(yè)意愿、理想與抱負(fù)各不相同。無視這種差別,以相同的標(biāo)準(zhǔn)、相同的方法教育學(xué)生,并期望都達到預(yù)設(shè)的人才目標(biāo),無異于希臘神話中的“普洛克路斯忒斯之床”,按床的長短(統(tǒng)一標(biāo)準(zhǔn)),把腿長的斬短,腿短的拉長。這是多么可笑的事情。教學(xué)困惑的根源也出于此。
4 后現(xiàn)代課程觀的啟示
隨著科學(xué)技術(shù)的進步、“信息化”、“經(jīng)濟全球化”的到來,社會步入后工業(yè)時代。人們開始認(rèn)識到世界是何等復(fù)雜而又豐富多彩,進而向“自然是自足而簡單”(牛頓語)的現(xiàn)代主義思維范式發(fā)起挑戰(zhàn)。于是,重視“差異”、崇尚“個性”與“多元”的后現(xiàn)代主義泛文化思潮開始興起,并日益滲透到政治、經(jīng)濟、文化、教育等各個領(lǐng)域。在這樣的文化背景下,后現(xiàn)代教育思想應(yīng)運而生,并在對現(xiàn)代教育觀弊端的批判以及對教育重大問題的重新詮釋下發(fā)展。后現(xiàn)代課程觀流派紛呈,William E. Doll的4R課程觀有其代表性。4R指豐富性(rich)、回歸性(recursive)、關(guān)聯(lián)性(relational)和嚴(yán)密性(vigorous)。下面通過對4R的解讀探索其對C語言程序設(shè)計課程改革與教學(xué)的啟示。
豐富性:指課程的“復(fù)雜性”和“多元化”。多爾解釋復(fù)雜性時說:“教師和課程設(shè)計者要接受復(fù)雜性,生活本身就是復(fù)雜的,我們要利用這一復(fù)雜性,而不是否定差異,變化和困難?!盵1]
Abstract: In this paper, on the basis of analyzing the characteristics of C programming language, and fully considering the poor ability to understand and weakness of basic knowledge of the students in the bilingual classes, the instance- driven teaching approach is introduced for improve the programming ability of the minority ethnic students and enhance the classroom teaching effects.
Keywords: C programming language, teaching method, reform, Bilingual Class, Minority ethnics
C語言程序設(shè)計是一門實踐性很強的課程,必須通過大量的上機操作才能掌握所學(xué)的知識,所以要特別強調(diào)教學(xué)方法與實踐教學(xué)相結(jié)合。但在實際教學(xué)安排和實施過程中我們遇到了由于課程改革使得總學(xué)時減少、課程內(nèi)容的壓縮以及課程內(nèi)容提前等許多實際問題。所以,如何加強C語言程序設(shè)計這門綜合性及實踐性較強的學(xué)科的教學(xué)改革,對新的技術(shù)手段背景下的教學(xué)規(guī)律的探討,更好地培養(yǎng)對社會有用之才已成為迫切需要研究的課題。進一步研究和改革C語言序設(shè)計語言課程的教學(xué)方法和手段、不斷提高學(xué)生的創(chuàng)新思維和創(chuàng)新能力,已成為教學(xué)改革、提高教學(xué)質(zhì)量的重要研究內(nèi)容。
教學(xué)目標(biāo)是通過一門程序設(shè)計語言的學(xué)習(xí),使學(xué)生掌握程序設(shè)計的基本思想和編程方法,培養(yǎng)學(xué)生靈活運用所學(xué)知識來解決實際問題的能力。所以,如何提高教學(xué)效果,進一步提高教學(xué)質(zhì)量是非常值得研究并加以解決的問題。根據(jù)多年的教學(xué)經(jīng)驗,本人認(rèn)為對C語言程序設(shè)計課程的教學(xué)應(yīng)該以語法為基礎(chǔ),側(cè)重算法,重點是編程能力的培養(yǎng);教學(xué)改革的目標(biāo)是通過掌握先進的編程思想及編程能力的基礎(chǔ)上不斷提高學(xué)生的創(chuàng)新思維和創(chuàng)新能力。
1 C語言程序設(shè)計課程的特點和地位
C語言程序設(shè)計是計算機專業(yè)的學(xué)生接觸比較早的專業(yè)課,課程中知識重點和難點內(nèi)容較多,難教難學(xué),具有理論性強、內(nèi)容豐富且抽象、實踐性要求高等特點。因此,對教學(xué)內(nèi)容的安排,以及以什么為重點,講授的內(nèi)容要達到什么深度等都是每一位任課教師事先必須認(rèn)真考慮的問題。C語言程序設(shè)計是我校計算機科學(xué)與技術(shù)專業(yè)學(xué)生必修的一門專業(yè)基礎(chǔ)課程,同時該課程又是培養(yǎng)學(xué)生編程思想的直接工具,是把所學(xué)的專業(yè)知識轉(zhuǎn)化為應(yīng)用的重要基礎(chǔ)和橋梁,所以該課程在整個教學(xué)體系中占據(jù)非常重要的地位。
2 C語言程序設(shè)計課程教學(xué)過程中存在的問題
2.1 基本概念講解枯燥,教學(xué)內(nèi)容比較陳舊,例題選擇不恰當(dāng),缺乏實例分析
基本概念的講解只是給出概念的定義,缺乏比較恰當(dāng)?shù)穆?lián)系實際講解,很多學(xué)生學(xué)完后對這門課程的收獲僅停留在一些教條或死記硬背的術(shù)語上,不能學(xué)以致用,不會用程序設(shè)計方法開發(fā)應(yīng)用軟件。教師在授課時,所選的例題基本上都是書上的例題,把重心放在對每一個例題的語法和語句的講解上,忽略了程序設(shè)計思想在解決實際問題的應(yīng)用上,選題缺乏應(yīng)用性和趣味性,沒有完整的一個實例分析,導(dǎo)致很多學(xué)生覺得C語言很枯燥,影響了學(xué)生對C語言的學(xué)習(xí)的積極性及主動性。
2.2 教學(xué)方法與教學(xué)手段單一,缺乏良性互動,實踐教學(xué)環(huán)節(jié)重視不夠
傳統(tǒng)的教學(xué)方法主要灌輸式的教學(xué)方法,對實例式、討論式的教學(xué)方法采用的比較少。教學(xué)內(nèi)容理論性較強,內(nèi)容抽象,不利于激發(fā)學(xué)生的學(xué)習(xí)興趣,不容易調(diào)動課堂氣氛,不利于培養(yǎng)社會需求的創(chuàng)新性軟件人才。
教學(xué)手段上雖然采用了先進的多媒體教學(xué)方式,但還沒有真正用到綜合采用多媒體教學(xué)、電子教案、網(wǎng)上輔導(dǎo)答疑等現(xiàn)代化的教學(xué)手段和方法,即使采用了多媒體教學(xué),其多媒體課件通常是教材的羅列。
在課堂教學(xué)中,缺乏師生之間的良性互動,不重視啟發(fā)式、實例式、討論式的教學(xué)方法,沒有更好地把教材、教師和學(xué)生有機聯(lián)系起來,最終影響了學(xué)生在實際課堂中的參與能力、創(chuàng)新能力的發(fā)揮。
在實踐教學(xué)環(huán)境中,教師對實踐教學(xué)的目的及其重要性不夠重視,所以,即使安排了上機內(nèi)容,但沒有相應(yīng)的實驗要求和目標(biāo),只是要求學(xué)生把書上的例題或現(xiàn)成的案例分析輸入計算機調(diào)試完成,并沒有要求總結(jié),根本沒有真正理解程序設(shè)計的核心在于編程思想而不是抄現(xiàn)有的程序到計算機看結(jié)果,更談不上掌握C語言基本編程思想了。
2.3 C語言編程能力的培養(yǎng)認(rèn)識不夠
教學(xué)的最終目的是讓學(xué)生靈活應(yīng)用所學(xué)的知識解決實際問題。所以,在整個教學(xué)和實踐環(huán)境中必須注重讓學(xué)生掌握C語言程序設(shè)計的基本思想及編程方法。C語言程序設(shè)計作為培養(yǎng)專門人才的一門課程,所以,如果教學(xué)不是站在如何運用C語言程序設(shè)計基本思想來解決實際問題的角度,則根本不可能培養(yǎng)學(xué)生的如何分析問題和解決問題的能力,結(jié)果導(dǎo)致學(xué)生程序設(shè)計的概念不清楚、綜合編程能力差、不能學(xué)以致用,更談不上引導(dǎo)學(xué)生進行課題研究和科研探索。因此在開始學(xué)習(xí)時就要努力培養(yǎng)學(xué)生掌握解決實際問題的程序設(shè)計思想、養(yǎng)成良好的程序設(shè)計習(xí)慣。這就要求教學(xué)的重點放在理論基礎(chǔ)、解題思路、算法設(shè)計、編程構(gòu)思及編程能力的培養(yǎng)上,使學(xué)生更好地掌握怎樣用程序設(shè)計的方法開發(fā)應(yīng)用軟件的能力。
3 C語言程序設(shè)計課程教學(xué)改革
3.1 改進教學(xué)方法和教學(xué)內(nèi)容,加強編程思想的培養(yǎng)
教學(xué)效果與教學(xué)方法有著直接的聯(lián)系,教師在教學(xué)過程中應(yīng)該注重教學(xué)方法,以激發(fā)學(xué)生學(xué)習(xí)的積極性和主動性。
C語言程序設(shè)計課程的教學(xué)改革涉及師資隊伍建設(shè)、教學(xué)大綱、教學(xué)方法、教學(xué)內(nèi)容、教學(xué)手段、實踐教學(xué)、考核方式等方面。本文結(jié)合少數(shù)民族雙語班學(xué)生漢語理解能力比較差、基礎(chǔ)知識薄弱等特點對C語言程序設(shè)計教學(xué)方法、教學(xué)內(nèi)容及教學(xué)手段等方面進行探討研究,提出了實例驅(qū)動教學(xué)法。
由于過去一段時間對少數(shù)民族雙語教學(xué)重要性的認(rèn)識不足、師資隊伍水平不高等因素導(dǎo)致了雙語班學(xué)生基礎(chǔ)知識薄弱、漢語理解能力較差,所以剛?cè)雽W(xué)的雙語班學(xué)生來說C語言教學(xué)過程就成了基本概念的講解和語法分析,同學(xué)們在學(xué)習(xí)過程中普遍感到難學(xué)難懂,容易使學(xué)生深陷復(fù)雜的語法知識的泥潭而產(chǎn)生厭煩心理,喪失了學(xué)習(xí)的耐心和興趣,以至于最終放棄C語言的學(xué)習(xí)。針對上述現(xiàn)象若不及時正確引導(dǎo)學(xué)生則難以調(diào)動學(xué)生學(xué)習(xí)的積極性、不利于培養(yǎng)同學(xué)們的編程能力和創(chuàng)新能力,綜合素質(zhì)能力的培養(yǎng)難以實現(xiàn)。
實例驅(qū)動教學(xué)法中將能夠體現(xiàn)出課程知識點的幾個典型實例貫穿于整個教學(xué)過程中,以實例為驅(qū)動,通過任務(wù)訓(xùn)練來培養(yǎng)學(xué)生分析問題解決問題的能力,從而達到提高學(xué)生主動學(xué)習(xí)、快速提高學(xué)生編程能力的目的。
結(jié)合多年的教學(xué)經(jīng)驗,針對雙語班學(xué)生在學(xué)習(xí)過程中所遇到和存在的問題,本人首先以實際應(yīng)用為背景、以提高學(xué)生學(xué)習(xí)興趣為切入點,對教學(xué)內(nèi)容重新進行了整合,采用了將難點分散化、由簡單到復(fù)雜、采用模塊化的實例教學(xué)方法;針對每一章的每一個知識點和難點都準(zhǔn)備了典型實例,通過大量的實例教學(xué)使雙語班學(xué)生從聽不懂、看不懂、不會分析、不會編程逐步形成了學(xué)習(xí)熱情高、積極學(xué)習(xí)的良好學(xué)習(xí)氣氛,更可喜的是經(jīng)過多年的教學(xué)改革使同學(xué)們逐步養(yǎng)成了通過網(wǎng)絡(luò)獲取所需知識的主動學(xué)習(xí)的習(xí)慣,這不僅可以使學(xué)生鞏固前面所學(xué)到的知識,更重要的是進一步激發(fā)了學(xué)生的學(xué)習(xí)興趣、增強了學(xué)生的學(xué)習(xí)主動性、創(chuàng)新性和自豪感,從而達到了培養(yǎng)學(xué)生理解能力、邏輯思維能力、解決實際問題的能力和創(chuàng)新能力的目的,保證了進一步提高教學(xué)質(zhì)量的教學(xué)目標(biāo)。
對雙語班的C語言課程教學(xué)中除了先進的教學(xué)理念、使用現(xiàn)代化教學(xué)手段和多媒體輔助教學(xué)之外,最關(guān)鍵的是語言障礙、基礎(chǔ)薄弱等困難所困擾的雙語班學(xué)生來說,首先如何激發(fā)學(xué)生的學(xué)習(xí)興趣、如何深入挖掘?qū)W生的學(xué)習(xí)潛能、這就成為急待解決的問題;如果處理不好上述關(guān)系,那么提高教學(xué)質(zhì)量就無從談起,所以本人首先讓學(xué)生明確了學(xué)習(xí)C語言的目的,讓學(xué)生知道學(xué)習(xí)該課程能夠做什么,能解決什么問題;針對這些問題再用實例說明程序設(shè)計與信息技術(shù)的關(guān)系,以及在信息技術(shù)領(lǐng)域中的重要地位;經(jīng)過上述措施及雙方的努力,進一步激發(fā)了學(xué)生的學(xué)習(xí)興趣和學(xué)習(xí)熱情,從而保證了提高教學(xué)質(zhì)量及培養(yǎng)學(xué)生運用所學(xué)知識解決實際問題的能力。
針對雙語班這特殊群體,在教學(xué)過程中利用現(xiàn)代化教學(xué)手段的同時大膽采用了“實例引導(dǎo)、循環(huán)漸進、不斷豐富和鞏固知識”的實例教學(xué)法,積極探討教學(xué)方法的創(chuàng)新,將網(wǎng)絡(luò)課堂、網(wǎng)上答疑、定期考核和課外溝通等多種教學(xué)方式相結(jié)合,培養(yǎng)學(xué)生獨立分析和解決問題的能力。在講解每一章的重點和難點時,首先通過典型實例來證明知識點,采用了典型的案例分析來演示具體應(yīng)用,使學(xué)生易于理解抽象概念,增加學(xué)生學(xué)習(xí)的興趣,使學(xué)生能及時理解和掌握C語言的編程思想。
3.2 要重視教學(xué)內(nèi)容和教學(xué)過程
改變教學(xué)觀念,從講解語法為主逐步過渡到提高編程能力為主,圍繞程序設(shè)計的關(guān)鍵技術(shù)來強調(diào)編程思想的重要性,使學(xué)生在解決實際問題的過程中逐步學(xué)習(xí)如何編程,在編程過程中逐步理解和鞏固C語言的語法。因此,在每一章的教學(xué)內(nèi)容和教學(xué)過程中重視突出重點和難點,在各章的實例選擇上,重視知識點的證明和知識點的擴展,所選實例要突出各章節(jié)的知識點、包括已學(xué)過的和即將要學(xué)習(xí)的知識點,將原來枯燥乏味的抽象知識點融入到有趣的實例中,同時保持各實例之間的連貫性,條件成熟時給出完整的實例分析,讓學(xué)生盡早體驗較大程序的編寫過程,使學(xué)生知道如何編寫大型程序的方法,讓學(xué)生明白所學(xué)的知識點可以應(yīng)用在什么場合。隨著同學(xué)們的大量的編程及編程經(jīng)驗的積累,同學(xué)們逐步建立了自信心和成就感,這更加激發(fā)了學(xué)生的求知欲望,引導(dǎo)學(xué)生積極主動探索問題,從而達到了培養(yǎng)學(xué)生創(chuàng)新能力的目的。
3.3 強化實踐教學(xué)和課程設(shè)計
在實踐教學(xué)過程中始終重視平時上機實驗的考核,這樣就可以隨時掌握學(xué)生的學(xué)習(xí)情況。定期的以大作業(yè)的形式提出一些應(yīng)用題,讓學(xué)生通過分析找出解決方法,訓(xùn)練學(xué)生掌握應(yīng)用領(lǐng)域的知識并綜合運用知識的能力。學(xué)生在解決問題時若有新的思路,就讓學(xué)生演示自己的算法或程序并給予相應(yīng)的鼓勵成績。這樣做可以激發(fā)學(xué)生的學(xué)習(xí)積極性和求知欲望,給他們展示自己才能的機會,充分發(fā)揮學(xué)生的想象力和創(chuàng)造力,從而形成了良好的學(xué)習(xí)氣氛。采用實例分析的方式連貫性的完成小型管理系統(tǒng),使學(xué)生的編程能力進一步提高,同時能夠培養(yǎng)學(xué)生的團隊意識,為以后的畢業(yè)設(shè)計和研究方向打下堅實的基礎(chǔ),更重要的是能培養(yǎng)出學(xué)生的初步科研能力。與此同時,鼓勵同學(xué)們參加自己的課題組和參加各類程序設(shè)計類大賽,給學(xué)生提供展示自己才能的平臺。
經(jīng)過幾年的教學(xué)改革,學(xué)生的分析能力、編程能力、解決實際問題的能力、綜合素質(zhì)以及學(xué)習(xí)成績等都有了顯著的提高。
3.4 要提高自己的專業(yè)水平,加強科研能力
為了更好地完成教學(xué)任務(wù)、提高教學(xué)質(zhì)量和教學(xué)效果,除了要不斷學(xué)習(xí)最新前沿知識外還要進一步提高自己的科研水平,吸收新的教學(xué)理念,針對教學(xué)過程中所出現(xiàn)的問題加強與教學(xué)經(jīng)驗豐富的教師的交流,不斷探索和開展針對性的教學(xué)研究,注重科研和教學(xué)的互相結(jié)合,以科研促進教學(xué)質(zhì)量的提升。
關(guān)鍵詞:C語言程序設(shè)計;任務(wù)型教學(xué);教學(xué)評價
學(xué)習(xí)任務(wù)單是任務(wù)驅(qū)動式教學(xué)的一種表現(xiàn)形式,是一種以“做中學(xué)”為主的教學(xué)方法[1],讓學(xué)生在自主完成任務(wù)的過程中學(xué)習(xí)和獲取知識及技能。這一教學(xué)方法的教學(xué)效果判定不能僅僅靠成績決定,要利用教學(xué)評價進行更客觀的判斷。教學(xué)評價在教學(xué)過程中發(fā)揮著從整體上調(diào)節(jié)、控制著教學(xué)活動進行的作用。本次課程中,筆者利用教學(xué)評價來驗證學(xué)習(xí)任務(wù)單對于C語言程序設(shè)計教學(xué)效果起到的作用。在本研究中,C語言程序設(shè)計是一門選修課程,這門課程的授課形式分為理論課和上機課。
一、基于學(xué)習(xí)任務(wù)單的C語言程序設(shè)計課程的教學(xué)評價及其必要性
(一)學(xué)習(xí)任務(wù)單與教學(xué)評價相結(jié)合
C語言程序設(shè)計是一門實踐操作性比較高的課程,而傳統(tǒng)的教學(xué)方法則是理論大于實踐的“紙上談兵”[2]。本研究利用學(xué)習(xí)任務(wù)單的教學(xué)形式使知識與技能并重,更注重學(xué)生的實際操作能力,改變了原有的由“教為主、學(xué)為輔”的上課模式。傳統(tǒng)的教學(xué)評價方式往往是以一次期末考試成績?yōu)闆Q定性因素,成績的高低不僅代表著教師的教學(xué)水平也是學(xué)生學(xué)習(xí)能力、學(xué)習(xí)效果的結(jié)果,這種片面的評價方式忽略了師生在教學(xué)過程以及學(xué)習(xí)過程中的表現(xiàn)。在本門課程中導(dǎo)入學(xué)習(xí)任務(wù)單,讓學(xué)生獨立自主學(xué)習(xí),教師進行適當(dāng)引導(dǎo),是一種更加注重學(xué)生學(xué)習(xí)過程的體驗、在“做”中學(xué)的教學(xué)方式[3]。因此,教學(xué)評價的方式應(yīng)該與學(xué)習(xí)任務(wù)單相結(jié)合,期末成績定性質(zhì)的教學(xué)評價方式不適用于本次研究教學(xué)過程的評價[4]。
(二)教學(xué)評價的必要性
客觀、公正、科學(xué)的教學(xué)評價會對課堂、學(xué)生及教師產(chǎn)生非常重要的影響。教學(xué)評價的結(jié)果可以對教學(xué)過程起一個診斷、總結(jié)的作用。教師通過獲取反饋信息可以了解教學(xué)各方面的情況,判斷教學(xué)質(zhì)量和水平,并對教學(xué)成效和教學(xué)短板進行分析、反思,從而做出調(diào)整,不斷改進和完善任務(wù)單的設(shè)計。而學(xué)生在完成任務(wù)單的過程中可以體驗解決問題的成就感,建立興趣,提高自信心,進一步激發(fā)內(nèi)在的潛力。
二、基于學(xué)習(xí)任務(wù)單的C語言程序設(shè)計課程的教學(xué)評價方式
學(xué)習(xí)任務(wù)單貫穿了整個學(xué)期的教學(xué)活動,對本次課程的教學(xué)評價,從一定程度來說,就是評價基于學(xué)習(xí)任務(wù)單的教學(xué)效果。對于這一形式的教學(xué)方式,形成性評價則是最佳的教學(xué)評價方式。形成性評價是一種根據(jù)學(xué)生平時學(xué)習(xí)過程中的行為表現(xiàn)、最終的學(xué)習(xí)成果以及在學(xué)習(xí)過程中呈現(xiàn)出來的學(xué)習(xí)態(tài)度、學(xué)習(xí)習(xí)慣、學(xué)習(xí)方法等做出評價的一種教學(xué)評價方式[5],其最終目的是為了能夠有效幫助學(xué)生學(xué)習(xí),最大效能地管理學(xué)習(xí)過程,激發(fā)學(xué)生學(xué)習(xí)的動力以增強自信心,有效地培養(yǎng)學(xué)生自主學(xué)習(xí)的能力與合作能力,提高教學(xué)效果、改善教學(xué)過程。這與通過導(dǎo)入學(xué)習(xí)任務(wù)單的形式所要達到培養(yǎng)學(xué)生自主學(xué)習(xí)能力、科學(xué)高效的學(xué)習(xí)方法與習(xí)慣、提高課堂教學(xué)效果的目的相一致。本研究是基于任務(wù)型教學(xué)的教學(xué)方法展開的課程研究,采用形成性評價的教學(xué)評價方法既符合了對學(xué)生學(xué)習(xí)過程持續(xù)觀察的基本要求,也符合了科學(xué)性、導(dǎo)向性原則。
(一)課堂情緒觀察法
觀察法是最直觀、也最能從細(xì)節(jié)之處發(fā)現(xiàn)學(xué)生情緒以及行為上的變化的方法。在上機操作課中,總體觀察學(xué)生在收到任務(wù)單時的表情、肢體行為,感受學(xué)生情緒的變化;再從學(xué)生個體入手,仔細(xì)觀察其面部表情,比如略有惆悵、較為嚴(yán)肅的面部表情,可能代表任務(wù)單對該學(xué)生來說有一定的難度;如果打開任務(wù)單是無所謂、毫無思考的表現(xiàn),可能該學(xué)生存在著對此學(xué)習(xí)任務(wù)單或者學(xué)習(xí)方式甚至是本門課喪失興趣與動力的情況,這種情況需要特別關(guān)注。由于開設(shè)本門課程的班級的人數(shù)較少,完全可以做到觀察每個學(xué)生。
(二)任務(wù)完成度與“QQ檔案袋”相結(jié)合
學(xué)生在完成學(xué)習(xí)任務(wù)單時的表現(xiàn)以及完成學(xué)習(xí)任務(wù)單的結(jié)果都是教學(xué)評價的重要內(nèi)容和依據(jù)。如果完成學(xué)習(xí)任務(wù)單較為輕松、不用查閱資料,可能就意味著任務(wù)的難度系數(shù)較低,并不能實現(xiàn)對知識技能的拔高。學(xué)習(xí)任務(wù)單的完成情況將從兩個方面進行分析,一是數(shù)量,任務(wù)完成的多少反映了學(xué)習(xí)任務(wù)單任務(wù)量的制定是否合理;二是質(zhì)量,質(zhì)量的好壞很大程度上體現(xiàn)出任務(wù)的難易度、精準(zhǔn)度以及是否適合學(xué)生。此評價都是以大多數(shù)學(xué)生為相對參考。如果個別或少數(shù)學(xué)生未能完成學(xué)習(xí)任務(wù)單,可能是學(xué)生的個體差異性導(dǎo)致這一現(xiàn)象。反之,大多數(shù)學(xué)生都未能達到完成任務(wù)單的標(biāo)準(zhǔn),這反映出設(shè)計的學(xué)習(xí)任務(wù)單存在問題,需要進一步完善和改進?!癚Q檔案袋”是指將檔案袋評價方式與現(xiàn)代信息技術(shù)相結(jié)合,利用大眾使用的網(wǎng)絡(luò)平臺騰訊QQ所建立起來的一個集溝通、收納、保存于一體的網(wǎng)絡(luò)檔案袋。QQ群,為學(xué)生討論和解決問題提供了平臺,也為教師提供了一個了解學(xué)生情況的途徑。學(xué)生將完成的學(xué)習(xí)任務(wù)單通過QQ平臺發(fā)送給教師,以此作為評價的依據(jù)和內(nèi)容。學(xué)生在各自小組的QQ群里討論小組作業(yè)(教師在每一個小組的群里),作業(yè)是以PPT的形式進行匯報展示,同樣是QQ備份,教師可以以“QQ檔案袋”的形式了解學(xué)生的情況。
(三)學(xué)生自評與教師評價相結(jié)合
現(xiàn)代教育注重引導(dǎo)學(xué)生在教學(xué)過程中發(fā)揮主體作用[6],讓學(xué)生參與教學(xué)評價的過程之中是發(fā)揮學(xué)生主體作用的一個重要表現(xiàn),在新形勢下,學(xué)生的自我評價是整個教學(xué)評價中不可缺少的一部分。每一個學(xué)習(xí)任務(wù)單后都有自我評價環(huán)節(jié),學(xué)生在完成本次任務(wù)單后需要對自身的學(xué)習(xí)情況進行評價。評價整體上包括兩大模塊的內(nèi)容,一是學(xué)習(xí)內(nèi)容方面的自評,包括知識方面如函數(shù)的基本概念等、技能方面以及能力方面。在能力方面的自評中,主要體現(xiàn)的是學(xué)生能否完成拔高型、提升型的任務(wù)。二是在小組作業(yè)中,學(xué)生對于自己做的工作及付出、參與度進行自評。讓學(xué)生對自己的學(xué)習(xí)過程、學(xué)習(xí)方式、學(xué)習(xí)效果以及在學(xué)習(xí)過程中的感受、體驗等進行反思和評價。教師對學(xué)生完成的學(xué)習(xí)任務(wù)單以及小組作業(yè)匯報展示情況進行評價,在此環(huán)節(jié)中,教師評價與學(xué)生自評相結(jié)合,實現(xiàn)了生生、師生之間的交流與互動。
三、結(jié)語
教學(xué)評價是教學(xué)活動中必不可少的一個環(huán)節(jié),通過對學(xué)生完成任務(wù)情況的分析,不僅可以反映出學(xué)習(xí)者對知識點的了解和掌握情況,而且能夠比較精準(zhǔn)且客觀地反映出學(xué)生的實際操作能力,有利于教學(xué)目標(biāo)的實現(xiàn)和改進?;趯W(xué)習(xí)任務(wù)單的教學(xué)評價,主要是根據(jù)學(xué)生在完成學(xué)習(xí)任務(wù)單時的實際表現(xiàn)來反映學(xué)生知識與技能的掌握水平,因此,教學(xué)評價要能有效地判斷每個學(xué)生學(xué)習(xí)任務(wù)完成的真實情況以及學(xué)生的潛力所在,判斷學(xué)習(xí)任務(wù)單是否有益于樹立學(xué)生的自信心,是否能夠培養(yǎng)學(xué)生的自主學(xué)習(xí)能力,增強學(xué)生繼續(xù)向上的動力。
參考文獻:
[1]楊維東,趙娟.基于建構(gòu)主義理論的“任務(wù)型、互動式”教學(xué)模式研究:以非英語專業(yè)碩士研究生英語課堂教學(xué)為例[J].外語教學(xué),2011(5):56-60.
[2]鄧曉云.新課標(biāo)背景下任務(wù)型教學(xué)模式初探[J].新課程研究(基礎(chǔ)教育),2010(5):45-46.
[3]佟玉潔.任務(wù)驅(qū)動教學(xué)法在高職《Photoshop》教學(xué)中的應(yīng)用研究[D].濟南:山東師范大學(xué),2013.
[4]張凌.基于多元智能評價觀構(gòu)建大學(xué)英語多元評價體系[J].遼寧公安司法管理干部學(xué)院學(xué)報,2010(2):91-93.
[5]王瑜.基于多元智能理論的學(xué)生評價研究[D].開封:河南大學(xué),2005.
關(guān)鍵詞:C 語言;教學(xué)內(nèi)容;教學(xué)方法與手段;教學(xué)改革
1.引言
我院開設(shè)的“C語言程序設(shè)計”課程不但是計算機專業(yè)的必修課,而且也是非計算機專業(yè)的公共計算機基礎(chǔ)課。但在“C語言程序設(shè)計”課程教學(xué)中,許多學(xué)生都認(rèn)為C語言涉及的概念比較復(fù)雜,規(guī)則繁多,使用靈活,容易出錯,且程序設(shè)計課程邏輯性又很強,[1]學(xué)生不能很好地理解算法,編寫程序也很困難,教師教學(xué)和學(xué)生學(xué)習(xí)都感到困難,并在不同程度上產(chǎn)生畏難心理。特別是我院將C 語言作為理工科學(xué)生進校后首先接觸的第一門計算機基礎(chǔ)課,這種現(xiàn)象尤為明顯,而C語言基礎(chǔ)打不牢會直接影響后續(xù)專業(yè)課程的學(xué)習(xí)。因此如何改革“C語言程序設(shè)計”課程,進一步提高教學(xué)效果成為一個緊迫任務(wù)。本文根據(jù)多年的程序設(shè)計課程的教學(xué)實踐,對“C語言程序設(shè)計”課程從教學(xué)內(nèi)容、教學(xué)手段、教學(xué)方法等方面提出幾點建議。
2.教學(xué)內(nèi)容的改革
2.1課堂教學(xué)內(nèi)容的改革
傳統(tǒng)的《C 語言程序設(shè)計》教學(xué)內(nèi)容主要包括C語言語法基礎(chǔ)、數(shù)據(jù)類型、程序控制結(jié)構(gòu)、函數(shù)、指針、文件等。教材在內(nèi)容組織上,在語法上講解過細(xì)、過多。在各章節(jié)的編程例子中,多數(shù)難度較大,分析較少;不夠形象,學(xué)生較難理解,且適用性不強。筆者本著“以任務(wù)為驅(qū)動”的指導(dǎo)思想,在課堂教學(xué)過程中,對教學(xué)內(nèi)容重新進行了歸納,將難點再次分散,以縮小臺階,達到循序漸進。
2.2 實驗教學(xué)內(nèi)容的改革
“C語言程序設(shè)計”是一門實踐性很強的課程,既要掌握概念,更要動手編寫程序。其主要任務(wù)就是培養(yǎng)學(xué)生具有一定的閱讀程序、設(shè)計編寫程序的能力,分析問題、解決問題的能力和邏輯思維的能力。因此,上機實驗是學(xué)習(xí)程序設(shè)計課程必不可少的實踐環(huán)節(jié),特別是C語言靈活、簡潔,更需要通過編程的實踐來真正掌握它。我院為非計算機系理工科學(xué)生開設(shè)的“C語言程序設(shè)計”課程的實驗學(xué)時是32 學(xué)時,共8個實驗。由于實驗課時較少,在實驗內(nèi)容的安排上就顯得十分重要。實驗的總體要求,強調(diào)上機實驗要經(jīng)歷三個步驟:
(1) 上機前的準(zhǔn)備讓學(xué)生寫出實驗預(yù)習(xí)報告。內(nèi)容包括對實驗題目的理解和分析,選擇適當(dāng)算法,畫出流程圖并編寫程序。分析可能遇到的問題及解決的對策。準(zhǔn)備幾組測試程序的數(shù)據(jù)和預(yù)期的正確結(jié)果,以便發(fā)現(xiàn)程序中可能存在的錯誤。
(2) 上機輸入和編輯程序,并調(diào)試運行程序。首先調(diào)用C語言集成開發(fā)環(huán)境,輸入并編輯事先準(zhǔn)備好的源程序;然后進行調(diào)式。在調(diào)試過程中,要充分利用C語言集成開發(fā)環(huán)境提供的調(diào)試手段和工具,例如單步跟蹤、設(shè)置斷點、監(jiān)視變量值的變化等。整個過程應(yīng)自己獨立完成。
(3)每次上機結(jié)束時老師都逐一檢查學(xué)生編寫的程序并打分評定。
3.教學(xué)方法與手段
在教學(xué)方法上,從以教師為主體的的方式轉(zhuǎn)向以學(xué)生為主體、教師為主導(dǎo)的教學(xué)方法。有效地培養(yǎng)學(xué)生的分析問題與解決問題的能力。以“遞歸函數(shù)”為例,筆者先給出問題:王小二自夸刀工不錯,有人放一張大的煎餅在案板上,問他:“餅不許離開案板,切100刀最多能切多少塊?”。[2]通過引導(dǎo)學(xué)生分析問題,建立數(shù)學(xué)模型q(n)=q(n-1)+n,q(0)=1(一刀都不切當(dāng)然只有1塊)。再通過與或節(jié)點圖分析數(shù)學(xué)模型的含義。最后給出遞歸算法程序。整個講解過中結(jié)合板書,逐步引導(dǎo),層層深入,取得了很好的教學(xué)效果。
在教學(xué)手段上,積極采用現(xiàn)代化的教學(xué)手段,如多媒體教學(xué)這樣有利于激發(fā)學(xué)生的學(xué)習(xí)興趣,發(fā)展學(xué)生的主體能力;同時由于多媒體信息量大,也能夠優(yōu)化教學(xué)過程。但對于案例分析或程序的編寫過程,就發(fā)揮傳統(tǒng)教學(xué)的優(yōu)勢,進行課堂討論、板書講解、結(jié)合提問,將問題層層剖析、層層深入,達到師生互動的效果,學(xué)生的想象力也會得到充分的發(fā)揮,對問題的理解也變得更容易。
4.課程考核辦法的改革
建立一個服務(wù)于課程目標(biāo)的學(xué)生學(xué)習(xí)評價方法是一項非常重要的工作,考核不是目的,“以考促學(xué)”才是考核的本質(zhì)。傳統(tǒng)的期末“筆試”這種單一的、“一考定終身”式的考核方式,已遠遠不能滿足課程的需要。為使考核真正發(fā)揮“以考促學(xué)”的作用,要重視對學(xué)生學(xué)習(xí)過程的考核,重視實際動手能力的考核,側(cè)重考核學(xué)生對知識的融會貫通和靈活運用能力,而不僅僅是基本理論、基本知識的掌握。具體的改革措施如下:
(1) 變單一考核為復(fù)合考核,從多個方面對學(xué)生進行考核。課程總成績由平時成績、實驗成績、期中成績、期末成績四個部分構(gòu)成。其中,平時成績考核包括對出勤、隨堂實訓(xùn)、課堂提問、作業(yè)等部分;實驗成績考核是針對課程的8 次實驗成績。
(2) 衡量這門課學(xué)習(xí)的好壞,不是看學(xué)生“知不知道”,而是“會不會干”。期末試題考核的方法不用是非題和選擇題,把重點放在讀程序、編制程序和調(diào)試程序。實踐表明,這種考核方法不但能更客觀地反映學(xué)生的學(xué)習(xí)情況,同時也能促進學(xué)生學(xué)習(xí),起到良好的教學(xué)效果。
5.結(jié)束語
本文教學(xué)內(nèi)容、教學(xué)方法與手段的改革,是根據(jù)實際教學(xué)過程中學(xué)生存在的問題提出的,并已經(jīng)在“C語言程序設(shè)計”課程教學(xué)實踐中加以運用,得到大部分學(xué)生的認(rèn)可,取得了較好的教學(xué)效果。只要我們不斷探索教學(xué)改革,我校的C語言程序設(shè)計課程的教學(xué)必會取得長足的進步。
參考文獻:
【關(guān)鍵詞】授課設(shè)計;講課比賽;C語言
0 引言
隨著我國高等教育的發(fā)展,高校中的青年教師逐漸成為了講臺的中堅力量,站穩(wěn)講臺是他們的首要任務(wù)。講課比賽是學(xué)校對青年教師進行激勵和教師自我激勵[1]的常規(guī)而有效的方法,對促進本科教學(xué)設(shè)計、知識組織和課堂管理的交流起到了積極的作用[2-3]。西安科技大學(xué)兩年一度的青年教師講課比賽也成為全校非常重要的教學(xué)交流活動。C語言作為集匯編語言和高級語言的優(yōu)點于一身的程序設(shè)計語言,既可用來開發(fā)底層的嵌入式、系統(tǒng)開發(fā),也可用來開發(fā)上層的應(yīng)用程序開發(fā),是高等院校講授程序設(shè)計課程的首選語言。作為理工科專業(yè)的公共基礎(chǔ)課,其講授效果會持續(xù)影響學(xué)生后續(xù)課程的學(xué)習(xí)和編程應(yīng)用。C語言是一門結(jié)構(gòu)化的程序設(shè)計語言,由順序、選擇分支、循環(huán)三種基本結(jié)構(gòu)組成,任意復(fù)雜的程序都可分解為三種基本結(jié)構(gòu)。其中,循環(huán)結(jié)構(gòu)是最復(fù)雜的一種結(jié)構(gòu),所以該部分內(nèi)容的授課設(shè)計至關(guān)重要。因此,這里選擇C語言課程中的循環(huán)結(jié)構(gòu)作為講課比賽的內(nèi)容,精心設(shè)計了緊湊而飽滿的授課內(nèi)容。
1 授課方法分析
目前,對C語言課程教學(xué)的研究越來越多,文獻[4]針對學(xué)生的計算機基礎(chǔ)知識不同和傳統(tǒng)教學(xué)模式的不足,進行了分層教學(xué)模式的探討,首先對學(xué)生水平進行摸底分層,然后有針對性的進行分層教學(xué);文獻[5,6]認(rèn)為應(yīng)加強課程設(shè)置、教材體系和實踐教學(xué)建設(shè),建立突出實踐能力、創(chuàng)新能力、信息能力的考核機制。對于C語言循環(huán)結(jié)構(gòu)部分的教學(xué)設(shè)計,也出現(xiàn)了很多有意義的研究,文獻[7]針對計算機專業(yè)第一門程序語言的教學(xué)要求,采用循序漸進的方法,逐步啟發(fā)學(xué)生,通過分解程序執(zhí)行過程,逐步展示運行結(jié)果,使學(xué)生更清晰的認(rèn)識循環(huán)結(jié)構(gòu);文獻[8]針對C語言公共課授課對象,通過分析學(xué)生學(xué)習(xí)該部分內(nèi)容的心理規(guī)律,探討了一種適合公共課的“雙主體教學(xué)模式”,較好地解決了程序設(shè)計本身抽象、枯燥、難懂等問題。
通過以上分析,本門課程的授課對象是非計算機專業(yè)的學(xué)生,作為他們學(xué)習(xí)的第一門計算機語言,要采用公共課的授課方法。循環(huán)結(jié)構(gòu)部分的內(nèi)容語法講解太過抽象與枯燥,容易使學(xué)生產(chǎn)生抵觸與畏懼的心里。因此,在授課過程中會采用理論與時間相結(jié)合的引導(dǎo)、啟發(fā)式教學(xué)方法,以原理為主線、案例為引導(dǎo),重點突出、難點分散。結(jié)合傳統(tǒng)板書和多媒體教學(xué)的雙重優(yōu)勢,語法講解板書圖文并茂,并結(jié)合程序案例進行多媒體演示,以加深學(xué)生對語法的理解和應(yīng)用,提高他們的學(xué)習(xí)興趣。針對講課比賽時間有限的特點,講解內(nèi)容力求難度適中且信息量飽滿。
2 循環(huán)結(jié)構(gòu)授課設(shè)計
2.1 板書設(shè)計
板書不求面面俱到,要重點突出。具體板書設(shè)計如圖1所示,板書文字只有授課的框架標(biāo)題和關(guān)鍵字,中間四分之三的版面是三種循環(huán)結(jié)構(gòu)的介紹,語法格式結(jié)合流程圖和案例程序,這樣可以對教學(xué)重點進行對比展示,達到直觀的教學(xué)效果。
2.2 授課進程
授課進程主要分為四個遞進步驟:
(1)首先,復(fù)習(xí)C語言三種基本程序結(jié)構(gòu)中的順序和選擇分支結(jié)構(gòu)的特點,由連續(xù)自然數(shù)求和、迭代求根等問題,引出反復(fù)執(zhí)行同一段程序特點的循環(huán)結(jié)構(gòu);
(2)然后,結(jié)合程序流程圖,對while/do-while兩種當(dāng)型循環(huán)結(jié)構(gòu)語法和執(zhí)行流程進行板書講解,并結(jié)合同樣一個程序案例對比二者應(yīng)用語法的不同,然后進行上機VC程序演示;
(3)通過分析兩種當(dāng)型結(jié)構(gòu)中循環(huán)控制變量i的作用,結(jié)合程序流程圖,對for型循環(huán)結(jié)構(gòu)語法和執(zhí)行流程進行板書講解,并結(jié)合同樣一個程序案例對比應(yīng)用,然后進行上機VC程序演示;
(4)最后,對三種循環(huán)結(jié)構(gòu)進行總結(jié)比較,分析各自適用的情形,布置課后上機練習(xí)作業(yè)。
4 結(jié)語
本文以講課比賽為目的,結(jié)合非計算機專業(yè)學(xué)生(下轉(zhuǎn)第56頁)(上接第41頁)的特點,對C語言課程中循環(huán)結(jié)構(gòu)內(nèi)容的教學(xué)進行具體設(shè)計,包括授課方法分析、板書和授課進程設(shè)計,對該課程教學(xué)具有一定的指導(dǎo)意義。通過使用該授課設(shè)計參加西安科技大學(xué)青年教師講課比賽,得到了評委教師的認(rèn)可,取得了優(yōu)異的成績。
【參考文獻】
[1]嚴(yán)芳,余仰濤.高校青年教師講課比賽中的主要問題及對策研究[J].學(xué)校黨建與思想教育,2013,444:76-79.
[2]熊志勇.講課比賽對提升青年教師教學(xué)能力的作用[J].重慶科技學(xué)院學(xué)報:社會科學(xué)版,2011,3:170-172.
[3]范建玲.講課比賽評價指標(biāo)體系的研制與實施[J].廣西教育,2014,1:21-28.
[4]景泉.C語言程序設(shè)計課程改革分析與探索[J].價值工程,2014,15:282-283.
[5]楊健,徐東,劉海見,祁薇.C語言課程教學(xué)改革[J].科教文匯,2014,6(上):79-83.
[6]劉淑英,張順利.C語言課程的教學(xué)改革與實踐[J].吉林教育,2014,11:3-3.
[7]孫華,于炯,田生偉,錢育蓉.《C語言程序設(shè)計》中循環(huán)結(jié)構(gòu)的教學(xué)方法探討[J]. 科技教育創(chuàng)新,2012,8:238-238.
[8]徐東,祁薇,劉海見.《C語言循環(huán)結(jié)構(gòu)》課程教學(xué)設(shè)計研究[J].軟件導(dǎo)刊,2014, 13(6):154-156.