文章編號:1672-5913(2008)10-0067-02
摘要:本文就如何在本科程序設(shè)計(jì)類課程教學(xué)中培養(yǎng)學(xué)生的創(chuàng)新能力進(jìn)行了初步的探討,提出了實(shí)施開放式教學(xué)的思路和實(shí)施方案。
關(guān)鍵詞:創(chuàng)新型人才培養(yǎng);開放式教學(xué);程序設(shè)計(jì)
中圖分類號:G642
文獻(xiàn)標(biāo)識碼:B
1引言
大學(xué)的課程教學(xué)在創(chuàng)新型人才培養(yǎng)中起著無可替代的關(guān)鍵作用。我們在長期教學(xué)實(shí)踐中,對培養(yǎng)創(chuàng)新型人才思想如何具體地在程序設(shè)計(jì)類課程教學(xué)中實(shí)施進(jìn)行了一些有益的探討和嘗試。針對程序設(shè)計(jì)類課程的特點(diǎn),在教學(xué)理念、教學(xué)內(nèi)容組織、教學(xué)過程各環(huán)節(jié)的實(shí)施中都滲透了培養(yǎng)學(xué)生創(chuàng)新能力的新思想。本文總結(jié)了我們的思路和做法,提出實(shí)施開放式教學(xué),有利于培養(yǎng)學(xué)生的創(chuàng)新能力。
程序設(shè)計(jì)類課程是計(jì)算機(jī)專業(yè)的基礎(chǔ)課程,在計(jì)算機(jī)及其相關(guān)專業(yè)培養(yǎng)計(jì)劃中占有重要的地位,它們既重視培養(yǎng)程序設(shè)計(jì)的基本理論、基本概念,又重視培養(yǎng)程序設(shè)計(jì)與開發(fā)的技能技巧,最終體現(xiàn)為培養(yǎng)學(xué)生用程序解決實(shí)際問題的能力。學(xué)生解決問題的能力可以總結(jié)為能否清晰的提煉問題,進(jìn)行形式化的表達(dá),再用規(guī)范的計(jì)算機(jī)程序?qū)懗鼋鉀Q方案。在北京工業(yè)大學(xué),我們將開放式的教學(xué)理念和教學(xué)方法應(yīng)用于程序設(shè)計(jì)類課程,對培養(yǎng)學(xué)生創(chuàng)新能力進(jìn)行了嘗試。本文總結(jié)了我們的一些思路和做法,涉及的程序設(shè)計(jì)類課程有:高級語言程序設(shè)計(jì)(或稱C語言程序設(shè)計(jì))、C++程序設(shè)計(jì)、Windows編程基礎(chǔ)等。
2傳統(tǒng)教學(xué)過程中的問題與不足
要進(jìn)行教學(xué)改革與創(chuàng)新,首先要研究以前的教學(xué)經(jīng)驗(yàn)與教訓(xùn)。計(jì)算機(jī)科學(xué)與技術(shù)學(xué)科雖然年輕,但也有約50年的歷史,對程序設(shè)計(jì)類課程教學(xué)法的研究一刻也沒有停止過,已經(jīng)積累了非常多的教學(xué)經(jīng)驗(yàn),有了成熟的課程和教學(xué)體系,這是我們必須繼承和發(fā)揚(yáng)的。但是,我們在學(xué)習(xí)繼承這些經(jīng)驗(yàn)的同時(shí)也體會到諸多傳統(tǒng)教學(xué)系統(tǒng)中的問題與不足,我們總結(jié)歸納為以下幾點(diǎn):
⑴ 教學(xué)內(nèi)容安排和教材側(cè)重語言規(guī)范,輕視程序設(shè)計(jì)規(guī)律。目前絕大多數(shù)教材根據(jù)語言規(guī)范的內(nèi)在邏輯層次分為若干章節(jié),每章節(jié)對語言規(guī)范力求面面俱到,求全責(zé)備。這種方式確有其優(yōu)點(diǎn),層次分明,條理清晰,內(nèi)容詳盡,對于已經(jīng)有程序語言基礎(chǔ)的讀者看來確實(shí)合理清晰,但對于完全沒有程序設(shè)計(jì)概念的初學(xué)者卻有很多弊端。例如有些C語言程序設(shè)計(jì)教材中,講解數(shù)據(jù)類型語法知識,僅整數(shù)類型就列出了六種之多;講解各種運(yùn)算符和表達(dá)式,占用相當(dāng)?shù)钠?,而這些章節(jié)的學(xué)習(xí)者對編程幾乎還沒有什么體驗(yàn)。反之,對程序設(shè)計(jì)方法的學(xué)習(xí),對程序設(shè)計(jì)整體的把握和對編程思維習(xí)慣的培養(yǎng)卻明顯不足。過分糾纏語言細(xì)節(jié)的布局,使得學(xué)習(xí)難度增加,需要盲目記憶的內(nèi)容過多。由于沒有編程的成功體驗(yàn),死記硬背的東西越多,學(xué)生越易產(chǎn)生厭學(xué)情緒。這種面面俱到的方法貌似基礎(chǔ)扎實(shí),實(shí)則浪費(fèi)時(shí)間,并且越是強(qiáng)調(diào)細(xì)節(jié),越是難以把握程序設(shè)計(jì)技巧,僵化學(xué)習(xí)頭腦,不利于學(xué)生提升學(xué)習(xí)的廣度和深度,不利于創(chuàng)新能力的培養(yǎng)。
⑵ 例題和習(xí)題注重解釋和練習(xí)語法問題,忽視程序設(shè)計(jì)方法。由于死記硬背語法帶來的學(xué)習(xí)難度,使得教師需要相當(dāng)數(shù)量的例題和習(xí)題幫助學(xué)生理解語法,大量的實(shí)踐時(shí)間糾纏在語法上,不利于培養(yǎng)學(xué)生掌握程序設(shè)計(jì)方法,從全局角度把握程序;不利于提高分析問題解決問題的能力;也沒有時(shí)間、精力和興趣自己查閱資料,擴(kuò)展知識面。這對創(chuàng)新能力的培養(yǎng)顯然是不利的。
⑶ 考試試題側(cè)重語言細(xì)節(jié)??荚噷?dǎo)向是不可忽視的學(xué)習(xí)指揮棒,特別是對于剛剛經(jīng)過高考的低年級學(xué)生。目前我們看到很多C語言程序設(shè)計(jì)課程的考試題太多的關(guān)注了語法細(xì)節(jié),而非程序設(shè)計(jì)。我們認(rèn)為在學(xué)習(xí)用語言進(jìn)行程序設(shè)計(jì)的過程中,忽視一些語法細(xì)節(jié)問題,能夠使學(xué)生從更高的層次、更全面的把握知識,學(xué)生可以在編程過程中自行學(xué)習(xí)講課中忽略的語法細(xì)節(jié)。這樣可以更好的培養(yǎng)學(xué)生的探索意識、自學(xué)能力,使學(xué)生勤于思考、勤于鍛煉創(chuàng)新能力。
為了克服這些弊端,培養(yǎng)學(xué)生創(chuàng)新能力,結(jié)合程序設(shè)計(jì)類課程的特點(diǎn),我們提出“開放”式的教學(xué)思路和方法,并在我們的課程教學(xué)中實(shí)踐,初步取得較好的成果。本文在下面幾個(gè)方面介紹我們的想法和做法,供大家參考。
3開放式教學(xué)的思路與實(shí)踐
⑴ 安排開放式課堂教學(xué)內(nèi)容,提高課堂效率
在高等學(xué)校,每門課程的課時(shí)是有限的,以C語言程序設(shè)計(jì)課程為例,許多教師抱怨課時(shí)少,難度大。我們在尊重但不拘泥于教材的基礎(chǔ)上,采用了開放式的思路安排教學(xué)內(nèi)容。教學(xué)內(nèi)容安排的指導(dǎo)思想是根據(jù)程序設(shè)計(jì)的需要來學(xué)習(xí),以作業(yè)和課程設(shè)計(jì)為驅(qū)動,減少單純枯燥的語法學(xué)習(xí)。“開放式”教學(xué)內(nèi)容安排主要體現(xiàn)在下面兩個(gè)方面:
① 教材之內(nèi)的內(nèi)容開放。
不墨守成規(guī),大膽對教材內(nèi)容進(jìn)行取舍,恰當(dāng)選擇,以前必講的語法細(xì)節(jié)少講,甚至不講,有利于提高程序設(shè)計(jì)能力的內(nèi)容多講、細(xì)講。課上不講的細(xì)節(jié)留待學(xué)生在完成作業(yè)和程序設(shè)計(jì)題目時(shí)自行學(xué)習(xí)和補(bǔ)充。例如C語言程序設(shè)計(jì)課程,數(shù)據(jù)類型講解,重用途輕語法細(xì)節(jié);順序、選擇、循環(huán)三種基本結(jié)構(gòu)的講解,以案例推動,注重程序設(shè)計(jì)中的應(yīng)用,以循環(huán)為例,for、while、do-while三種基本語句用一個(gè)案例,一起講解,節(jié)省課時(shí),并且對程序循環(huán)也有更深的理解,學(xué)生能夠當(dāng)堂編寫循環(huán)程序片段。再如,盡早講解函數(shù),因?yàn)榻Y(jié)構(gòu)化程序設(shè)計(jì)即以函數(shù)為基礎(chǔ),這樣可以更好的滲透結(jié)構(gòu)化程序設(shè)計(jì)的概念。函數(shù)參數(shù)是C語言程序設(shè)計(jì)教學(xué)中的重點(diǎn)和難點(diǎn)內(nèi)容,在編程解決實(shí)際問題中也十分重要,需要占用更多的課時(shí),要按教材安排細(xì)致講解,并且還要在課程的后期再進(jìn)行總結(jié)提高,歸納值參數(shù)、地址參數(shù)等用法的不同特點(diǎn),引導(dǎo)學(xué)生體會應(yīng)用的情況,比如地址做參數(shù)常用于返回函數(shù)的結(jié)果等。
② 教材之外的內(nèi)容開放。
在課程設(shè)計(jì)和大型作業(yè)的驅(qū)動下,大力鼓勵(lì)學(xué)生提高學(xué)習(xí)深度和廣度,突破課堂教學(xué)的局限。引導(dǎo)學(xué)生提出自己感興趣的編程需求,再自己查閱資料,補(bǔ)充知識,形成自己的解決方案,最后成功完成編程實(shí)踐。例如,課程設(shè)計(jì)題目要求學(xué)生完成一個(gè)小游戲的設(shè)計(jì),學(xué)生為了將游戲設(shè)計(jì)的更逼真漂亮,自行學(xué)習(xí)C語言的圖形顯示方式的相關(guān)知識。再如,學(xué)生開始編程時(shí)沒有結(jié)構(gòu)化程序設(shè)計(jì)的經(jīng)驗(yàn),使得程序越寫越龐大混亂,這時(shí)教師適時(shí)引導(dǎo),可使學(xué)生對結(jié)構(gòu)化程序設(shè)計(jì)有親身的體驗(yàn)和認(rèn)識。學(xué)生在這樣有意安排的教學(xué)過程中有了成功的體驗(yàn),極大增加了學(xué)習(xí)的興趣,挖掘了學(xué)生的學(xué)習(xí)潛力,激活了發(fā)現(xiàn)問題、解決問題的創(chuàng)新意識。
⑵ 選擇經(jīng)典案例,熏陶學(xué)生良好的編程習(xí)慣
對于初學(xué)者,模仿是最好的老師。在課程教學(xué)中我們突破課程的局限,選擇了有一定實(shí)用價(jià)值,有一定難度的經(jīng)典案例供學(xué)生研讀模仿。這樣使學(xué)生在學(xué)習(xí)之初就看到程序的威力與精妙,養(yǎng)成良好的編程思維和編程習(xí)慣,也使學(xué)生對程序設(shè)計(jì)有更準(zhǔn)確的理解。例如Windows程序設(shè)計(jì)課程,這門課程的大部分內(nèi)容要學(xué)習(xí)MFC類庫。大家知道,MFC的經(jīng)典而龐大的應(yīng)用程序架構(gòu)在短短的課程教學(xué)時(shí)間內(nèi)是很難讓學(xué)生理解清楚的,因此這門課程采用開放式教學(xué)就尤為重要。教材的案例多趨于簡單,盡管有些教師認(rèn)為已經(jīng)比較難了,但我們認(rèn)為這種局限于局部細(xì)節(jié)的難度不利于提高學(xué)生的程序設(shè)計(jì)能力。我們的想法是越是陷于局部越是難以看清框架,學(xué)習(xí)越枯燥,不利于激發(fā)創(chuàng)造力,不利于程序設(shè)計(jì)能力提高。我們的做法是課上介紹框架和學(xué)習(xí)的方法,課后精選了MSDN中的經(jīng)典案例,布置類似作業(yè)供學(xué)生模仿。這一過程使學(xué)生有了很大的成就感,興趣大增,自信心大增,對于在課上不易弄懂的程序架構(gòu)問題也開始有了深的思考。
⑶ 設(shè)計(jì)開放式的課程設(shè)計(jì)題目,激活學(xué)生的創(chuàng)作激情
課程設(shè)計(jì)是開放式教學(xué)體系中激活學(xué)生參與激情的關(guān)鍵環(huán)節(jié)。我們選擇的課程設(shè)計(jì)題目通常有實(shí)際的應(yīng)用背景,有一定趣味性,運(yùn)用知識點(diǎn)的難度略高于課上內(nèi)容。課程設(shè)計(jì)題目是開放的,給出的課程設(shè)計(jì)題目要求只是課程設(shè)計(jì)的基本要求,明確告知學(xué)生,完成基本要求只能獲得70分的成績,基本內(nèi)容之外的功能可由學(xué)生任意的想像發(fā)揮。這樣的安排激活了學(xué)生的潛能和競爭意識,促使學(xué)生大量閱讀參考資料,學(xué)習(xí)課內(nèi)、特別是課外的知識。當(dāng)他們最終完成課程設(shè)計(jì)時(shí),就獲得了很好的“頂峰體驗(yàn)”。而這種“頂峰體驗(yàn)”正是培養(yǎng)創(chuàng)新型人才不可缺少的。
⑷ 利用好網(wǎng)絡(luò)媒體,建立活躍的網(wǎng)絡(luò)論壇
網(wǎng)絡(luò)的發(fā)展給教學(xué)活動帶來了新的空間,很多學(xué)校也已開始大量借助網(wǎng)絡(luò)輔助教學(xué)。除了通常方法使用網(wǎng)路媒體輔助教學(xué),我們在開放式教學(xué)中充分利用答疑和論壇的環(huán)節(jié),教師和學(xué)生均可以在網(wǎng)上提出問題和回答問題。特別提倡學(xué)生之間的相互答疑,從政策上配合以“積分”等形式,對提問多回答問題多的同學(xué)給予獎勵(lì)。
⑸ 控制考試的導(dǎo)向作用,提高學(xué)生的程序設(shè)計(jì)能力
考試在學(xué)習(xí)中的導(dǎo)向作用是毋庸置疑的,針對開放式教學(xué)的實(shí)施過程,結(jié)合程序設(shè)計(jì)類課程的特點(diǎn),我們在考試命題時(shí)側(cè)重考查程序設(shè)計(jì)能力,盡量避免死記硬背的知識環(huán)節(jié)??荚囶}型多為程序閱讀題,程序填空題和綜合的設(shè)計(jì)題,避免更適于考查單個(gè)語法點(diǎn)的選擇題和簡單填空題等。
⑹ 建立開放的師生關(guān)系,做學(xué)生的良師益友
開放的師生關(guān)系是實(shí)施開放式教學(xué)的保證。建立開放式的師生關(guān)系首先要求教師的心靈應(yīng)該是開放的,教師要用自己的真心平等地對待和熱愛自己的學(xué)生。既要愛護(hù)基礎(chǔ)好、學(xué)習(xí)上進(jìn)的學(xué)生,指導(dǎo)他們帶領(lǐng)其他同學(xué)使課程學(xué)習(xí)更上一層樓;還要不歧視基礎(chǔ)差、學(xué)習(xí)等各方面有問題的學(xué)生。另一方面,指導(dǎo)學(xué)生開放自己的心靈,克服畏難情緒,增強(qiáng)自信心,樹立正確的、嚴(yán)謹(jǐn)?shù)目茖W(xué)研究的態(tài)度,充分與老師和同學(xué)交流,培養(yǎng)良好的團(tuán)隊(duì)合作精神。學(xué)生的心態(tài)開放了,他們才能大膽地與教師同學(xué)進(jìn)行互動,才能更好地培養(yǎng)創(chuàng)新能力。
4結(jié)語
培養(yǎng)創(chuàng)新型人才是一個(gè)重大的、緊迫的、長期的、困難的任務(wù),培養(yǎng)創(chuàng)新型人才就要從今天做起,從我們教師每個(gè)日常工作做起。實(shí)施開放式的教學(xué)就是要開放師生的教學(xué)思想,開放教學(xué)的內(nèi)容和組織形式,在開放的思維和環(huán)境下,學(xué)生的創(chuàng)造力和潛能得到更好的發(fā)揮,使學(xué)生在成功體驗(yàn)中培養(yǎng)創(chuàng)新的意識和能力。
參考文獻(xiàn)
[1] 楊冬等. 任務(wù)驅(qū)動的高級語言程序設(shè)計(jì)教學(xué)[J]. 吉林大學(xué)學(xué)報(bào)(信息科學(xué)版),2005,(8):29-31.
[2] 張麗靜,潘衛(wèi)華. 高級語言程序設(shè)計(jì)教學(xué)改革研究與實(shí)踐[J]. 中國電力教育,2007,(11):48-49.