石躍祥 朱東輝
摘要:本文針對(duì)大學(xué)本科非計(jì)算機(jī)專業(yè)理工科C語(yǔ)言教學(xué)中,如何培養(yǎng)學(xué)生的程序設(shè)計(jì)能力,掌握好程序設(shè)計(jì)工具,為所學(xué)專業(yè)的計(jì)算機(jī)應(yīng)用創(chuàng)造訓(xùn)練與鍛煉的條件等問題進(jìn)行了論述;討論了通過程序設(shè)計(jì)的演示法、嘗試法和實(shí)訓(xùn)法三個(gè)環(huán)節(jié),采取課堂教學(xué)互動(dòng)和三維立體教學(xué)法改進(jìn)教學(xué)效果,培養(yǎng)學(xué)生學(xué)習(xí)程序設(shè)計(jì)的興趣。經(jīng)對(duì)比分析,通過教學(xué)方法的改革,學(xué)生程序設(shè)計(jì)的能力有明顯的改善與提高。
關(guān)鍵詞:C語(yǔ)言;程序設(shè)計(jì);教學(xué)方法
中圖分類號(hào):G642文獻(xiàn)標(biāo)識(shí)碼:B
1前言
筆者從事高級(jí)語(yǔ)言程序設(shè)計(jì)教學(xué)與實(shí)習(xí),結(jié)合國(guó)內(nèi)外優(yōu)秀編程語(yǔ)言的教學(xué)方法和模式,不斷地總結(jié)和積累經(jīng)驗(yàn)并運(yùn)用于教學(xué)實(shí)踐之中,取得了較好的教學(xué)效果。這種教學(xué)方法有助于學(xué)生在有限的教學(xué)時(shí)間內(nèi),以最快最簡(jiǎn)單易懂的方式,扎實(shí)地掌握C語(yǔ)言的內(nèi)容,并能運(yùn)用自如。
2培養(yǎng)學(xué)習(xí)計(jì)算機(jī)興趣
學(xué)生進(jìn)入大學(xué)校園后,對(duì)大學(xué)充滿了好奇與幻想,而在學(xué)習(xí)方法上,這是最需要老師正確引導(dǎo)與影響的時(shí)刻。大學(xué)的學(xué)習(xí)與中學(xué)的學(xué)習(xí)有顯著的區(qū)別,大學(xué)需要培養(yǎng)有學(xué)習(xí)方法和學(xué)習(xí)思維的人才,通過在大學(xué)校園競(jìng)爭(zhēng)、創(chuàng)新、個(gè)性培養(yǎng)和發(fā)展的平臺(tái)上,展示學(xué)生最華彩的人生。
把學(xué)生從興奮、激動(dòng)的心情中引入到學(xué)習(xí)中來,高校老師有著義不容辭的責(zé)任。恩格斯說:“興趣與愛好是最好的老師”。在C語(yǔ)言教學(xué)中,為了使初學(xué)者能盡快地掌握計(jì)算機(jī)知識(shí),進(jìn)入計(jì)算機(jī)課程的學(xué)習(xí),在課程講授過程中,要特別注意培養(yǎng)學(xué)生的學(xué)習(xí)興趣。我采取的方法是,一開始就加入計(jì)算機(jī)應(yīng)用對(duì)社會(huì)帶來影響的具體例子,如網(wǎng)絡(luò)、銀行和游戲等,把學(xué)生的注意力吸引到計(jì)算機(jī)應(yīng)用的變革上。
上課的初始階段,我會(huì)介紹一些國(guó)外高校計(jì)算機(jī)學(xué)科發(fā)展的形勢(shì)與狀態(tài),讓學(xué)生充分認(rèn)識(shí)到學(xué)習(xí)計(jì)算機(jī)課程和C語(yǔ)言的必要性,同時(shí),也找一些“高等數(shù)學(xué)”、“線性代數(shù)”等課程中的問題,如:“菲波納契兔子問題”、“水仙花數(shù)”、“競(jìng)賽記分”等例題,培養(yǎng)學(xué)生的學(xué)習(xí)興趣,讓大家積極主動(dòng)、自覺獨(dú)立地獲取知識(shí),打好學(xué)習(xí)程序設(shè)計(jì)語(yǔ)言的基礎(chǔ)。整個(gè)教學(xué)過程中把問題的分析,解題思路、方法和步驟(即“算法”),該題目的關(guān)鍵與亮點(diǎn)當(dāng)作授課的重點(diǎn),從而讓學(xué)生明白如何分析并解決實(shí)際問題,逐漸培養(yǎng)學(xué)生進(jìn)行程序設(shè)計(jì)的正確思維模式。
隨著課程的不斷深入,大量的規(guī)則、定義、要求和格式等內(nèi)容的出現(xiàn),很容易使一部分(甚至是大部分)學(xué)生產(chǎn)生枯燥無味的感覺。這時(shí),在講述這部分內(nèi)容的時(shí)候,我會(huì)把這些規(guī)則和格式在實(shí)際應(yīng)用中的地位與作用結(jié)合起來,并將它們?cè)趹?yīng)用中的體現(xiàn)描繪出來,讓學(xué)生知道所以然,把好奇轉(zhuǎn)化為學(xué)習(xí)興趣,努力把枯燥無味的“語(yǔ)言”講得生動(dòng)、活潑。
3教學(xué)過程的循序漸進(jìn)
雖然有的學(xué)生在大學(xué)之前就已經(jīng)接觸過計(jì)算機(jī),但絕大部分學(xué)生是第一次接受計(jì)算機(jī)語(yǔ)言,“通俗性、可接受性”的教學(xué)原則是一直要把握的。在課程講授過程中,我們沒有把重點(diǎn)放在語(yǔ)法規(guī)則的敘述上,而是放在算法和程序設(shè)計(jì)方法上,放在培養(yǎng)學(xué)生思考與分析的過程中,把形式化的規(guī)則放到具體的問題中來講解。通常由幾個(gè)例題引出一種語(yǔ)法規(guī)則,通過一些求解具體問題的程序來分析算法,介紹程序設(shè)計(jì)的基本方法和技巧,既注重程序設(shè)計(jì)的系統(tǒng)性、科學(xué)性,又注意易讀性和啟發(fā)性。從最簡(jiǎn)單的問題入手,一開始就介紹程序,要求學(xué)生編寫程序,通過反復(fù)編寫、運(yùn)行程序來掌握語(yǔ)言的規(guī)定和程序設(shè)計(jì)的方法。同一個(gè)語(yǔ)法規(guī)則、同一種算法,在選擇例題時(shí)也是由簡(jiǎn)到難,逐步呈現(xiàn)給學(xué)生。在學(xué)習(xí)上不要求學(xué)生死記語(yǔ)法規(guī)則,而是要求學(xué)生能把各個(gè)孤立的語(yǔ)句組織成一個(gè)有機(jī)的、好的程序。注意培養(yǎng)學(xué)生良好的編程風(fēng)格,讓學(xué)生在編制程序過程中不斷總結(jié)、鞏固,達(dá)到學(xué)會(huì)方法、記住語(yǔ)法規(guī)則,提高設(shè)計(jì)技巧的目的。
以“菲波納契兔子問題”為例,在基本程序設(shè)計(jì)部分,可以啟發(fā)學(xué)生使用循環(huán)語(yǔ)句,利用變量的交替賦值實(shí)現(xiàn)。
第一個(gè)問題,讓學(xué)生思考變量的定義,提議變量的定義,應(yīng)有利于運(yùn)算和與菲波納的表示接近。
第二個(gè)問題,提出四十個(gè)菲波納兔子如何用循環(huán)語(yǔ)句實(shí)現(xiàn)。
第三個(gè)問題,四十個(gè)菲波納兔子需要循環(huán)的次數(shù)。
最后總結(jié),通過變量的變位和在每次循環(huán)中可以得到的菲波納兔子數(shù)而有效輸出的結(jié)果,通過這種模式,逐步訓(xùn)練學(xué)生程序設(shè)計(jì)的思維方式和想象的空間。
如果在學(xué)習(xí)了數(shù)組后,讓學(xué)生思考如何利用數(shù)組及下標(biāo)來輸出該結(jié)果。這樣,通過對(duì)兩種解法的比較和分析,幫助學(xué)生更好地掌握循環(huán)語(yǔ)句和數(shù)組的概念。
4課堂實(shí)現(xiàn)教學(xué)的互動(dòng)模式
教學(xué)中,我們要求學(xué)生課前做好預(yù)習(xí),實(shí)際上是要求他們通過自學(xué),發(fā)現(xiàn)學(xué)習(xí)中的問題和難點(diǎn),講課前先了解一下將要講述內(nèi)容的難點(diǎn);講解中,將這些問題重點(diǎn)剖析,只講難點(diǎn)、重點(diǎn)、有變化之處,一般性的內(nèi)容則輕點(diǎn)而過,這樣既給了學(xué)生思維分析的余地,又節(jié)省了課時(shí)。這就要求老師在以往教學(xué)中,通過積累與分析,掌握學(xué)生對(duì)這部分內(nèi)容學(xué)習(xí)的輕、重、難和關(guān)聯(lián)點(diǎn),必須精選教學(xué)內(nèi)容,注意詳略安排的合理性,在章節(jié)間的授課安排也注意要注意詳略得當(dāng)。
在知識(shí)點(diǎn)和問題的講解中,并不是一開始就講述解決問題的過程,而是先提出問題,給出學(xué)生思考的時(shí)間,在思考的基礎(chǔ)上,安排學(xué)生回答或在黑板上做題,這一環(huán)節(jié),就可以掌握學(xué)生對(duì)這知識(shí)掌握的程度和分析問題的能力,這有利于上課時(shí)集中學(xué)生的注意力和提高學(xué)習(xí)的興趣。
對(duì)于學(xué)生的回答或解題的結(jié)果,先對(duì)這些內(nèi)容作分析,給出學(xué)生思維的過程和方法,在些基礎(chǔ)上,對(duì)回答作一個(gè)結(jié)論,然后再給出回答或解題的新思考,如方法上、策略上和形式上的改進(jìn)。引導(dǎo)學(xué)生在問題思考過程中的多元化,開拓學(xué)生的思路,達(dá)到舉一反三的效果。另外,還應(yīng)經(jīng)常找一些設(shè)計(jì)技巧比較好、解題思路比較精的例題讓學(xué)生自己“讀程序”、“寫程序”和“分析程序”,找出精妙之處或不理解之處,對(duì)普遍性的問題共同講解,個(gè)別問題課后解答,并提出某些精辟的東西在其他地方、其他學(xué)科中的應(yīng)用。
此外,對(duì)有些問題,課堂上組織一定時(shí)間內(nèi)的討論。例如:給出一種程序設(shè)計(jì)方法后,讓學(xué)生討論,看看還有沒有其他的程序設(shè)計(jì)方法和思路,讓他們發(fā)表意見,提出自己的解題思路編程方法,給學(xué)生以表達(dá)已見、陳述思路、交流觀點(diǎn)的機(jī)會(huì)。這就要求老師既有引導(dǎo)又能放開,既有事先的精心備課,又有課堂上的因勢(shì)利導(dǎo),隨機(jī)應(yīng)變的能力,同時(shí)也可以從學(xué)生討論中提出的問題來豐富教學(xué)內(nèi)容,不斷地改進(jìn)教學(xué)效果。
5三位一體的立體訓(xùn)練法
做作業(yè)是復(fù)習(xí)、練習(xí)的過程,也是繼續(xù)和深入學(xué)習(xí)的過程。每次課后,給學(xué)生布置與教學(xué)內(nèi)容緊密聯(lián)系的一些習(xí)題,以鞏固課堂上所學(xué)的內(nèi)容,另外還可以通過學(xué)生所做作業(yè)的好壞來了解學(xué)生對(duì)課程內(nèi)容的掌握程度以及教師的教學(xué)效果。對(duì)作業(yè)中比較普遍出現(xiàn)的錯(cuò)誤,我們都要有適當(dāng)?shù)臅r(shí)間進(jìn)行講解,更進(jìn)一步地幫助學(xué)生鞏固所學(xué)知識(shí)。作業(yè)中表現(xiàn)出與眾不同的、新穎的程序設(shè)計(jì)方法和思路,也要對(duì)該學(xué)生進(jìn)行表?yè)P(yáng)與講解,鼓勵(lì)學(xué)生在思維上、方法上尋找不同的特色,培養(yǎng)另辟新徑的有創(chuàng)意的學(xué)風(fēng)。
每次上機(jī)前,老師都應(yīng)該根據(jù)教學(xué)計(jì)劃,有系統(tǒng)地布置上機(jī)實(shí)習(xí)作業(yè),讓學(xué)生明確上機(jī)任務(wù),編寫好上機(jī)調(diào)試的程序,使學(xué)生在每次上機(jī)實(shí)習(xí)中有所收獲。上機(jī)要求按所學(xué)內(nèi)容劃分層次:知識(shí)運(yùn)用,創(chuàng)新設(shè)計(jì)和合作分析等。在上機(jī)過程中,對(duì)好的、有創(chuàng)新思維的程序,通過投影設(shè)備,讓大家分享這獨(dú)特的方法與內(nèi)容,不斷提升學(xué)生的競(jìng)爭(zhēng)意識(shí);對(duì)有代表性的問題,則通過講解與分析,讓學(xué)生避免上機(jī)調(diào)試過程的一般性錯(cuò)誤。這種在實(shí)習(xí)過程中,老師對(duì)一些操作難點(diǎn),分組集中演示的方法,也能起到事半功倍的效果。
一般在學(xué)習(xí)一章后,安排時(shí)間進(jìn)行討論,老師提出一個(gè)主題或一些問題,學(xué)生分組進(jìn)行商量后,擬定一個(gè)對(duì)策與方案,然后與其他組的同學(xué)進(jìn)行討論,各方可提出解決問題的思路,也可以提出不同的方法,并且對(duì)提出新穎的策略一方給予肯定與表?yè)P(yáng)。通過討論,學(xué)生可以提高口頭表達(dá)和分析問題的能力,并在這過程中學(xué)到不同的解決問題的方法,取長(zhǎng)補(bǔ)短,培養(yǎng)協(xié)作精神和團(tuán)隊(duì)理念。
6網(wǎng)絡(luò)學(xué)習(xí)與自評(píng)系統(tǒng)的開放
在提高學(xué)習(xí)能力方面,可以網(wǎng)絡(luò)加強(qiáng)習(xí)題練習(xí)與程序設(shè)計(jì)的學(xué)習(xí),我們聯(lián)絡(luò)了國(guó)外C語(yǔ)言網(wǎng)絡(luò)學(xué)習(xí)的網(wǎng)站:http://codelab.discoverips.com/codelab,提供網(wǎng)上開放環(huán)境及相關(guān)視頻鏈接:http://codelab.discoverips.com/codelab/intro,以此幫助學(xué)生進(jìn)行網(wǎng)上練習(xí)與學(xué)習(xí),同學(xué)們也可以共享國(guó)際最先進(jìn)的教學(xué)資源,達(dá)到與國(guó)際接軌的教學(xué)水平。
同時(shí),通過對(duì)我院的程序設(shè)計(jì)網(wǎng)站和教學(xué)網(wǎng)站,包括課程資料,實(shí)驗(yàn)指導(dǎo),網(wǎng)上答疑,知識(shí)自測(cè)等子系統(tǒng)的應(yīng)用,學(xué)生在師生教與學(xué)的過程中,充分發(fā)揮了主觀能動(dòng)性和創(chuàng)造性,在認(rèn)知生成過程中融入了自己的創(chuàng)造性見解。
2007年,我校將“C語(yǔ)言程序設(shè)計(jì)”課程確定為校級(jí)精品課程建設(shè)項(xiàng)目,并取得了豐碩的成果。我們開創(chuàng)了網(wǎng)絡(luò)教學(xué)的多層次課程教學(xué)新模式,詳細(xì)修訂了教學(xué)大綱,細(xì)化了教學(xué)內(nèi)容;設(shè)計(jì)編寫了課堂教學(xué)樣本教案、實(shí)驗(yàn)教案、課程設(shè)計(jì)樣本和試卷庫(kù),建立了非計(jì)算機(jī)專業(yè)的C語(yǔ)言網(wǎng)上考試系統(tǒng)和模擬系統(tǒng),使教學(xué)與考試分離,教學(xué)手段和考核機(jī)制更加規(guī)范;制作了電子教案和輔助教學(xué)課件,提高了學(xué)生的學(xué)習(xí)興趣和教師的授課效果;提高了任課教師的整體素質(zhì),建立了青年教師培養(yǎng)機(jī)制和提高辦法;為其他課程起到了示范和積累教學(xué)經(jīng)驗(yàn)的作用;全校非計(jì)算機(jī)專業(yè)學(xué)生的計(jì)算機(jī)等級(jí)考試通過率不斷提高。
7結(jié)論
通過對(duì)非計(jì)算機(jī)專業(yè)理工科“C語(yǔ)言程序設(shè)計(jì)”的教學(xué)改革,學(xué)生對(duì)如何運(yùn)用計(jì)算機(jī)工具更好地解決本專業(yè)應(yīng)用中所面臨的問題,在思維方式上、分析問題上、設(shè)計(jì)和編程上都有了充分的認(rèn)識(shí)和積累。實(shí)踐證明,注重思維方式的訓(xùn)練,講究動(dòng)手能力的提高,充分調(diào)動(dòng)學(xué)生的主動(dòng)性,加強(qiáng)網(wǎng)絡(luò)上的訓(xùn)練與考核,就可以培養(yǎng)出有扎實(shí)基礎(chǔ),能靈活運(yùn)用知識(shí)編程調(diào)試、解決實(shí)際問題的創(chuàng)新性學(xué)生。
參考文獻(xiàn):
[1] 何岸. 論《C語(yǔ)言程序設(shè)計(jì)》課程的趣味教學(xué)[J]. 高等函授學(xué)報(bào):自然科學(xué)版,2008(05):24-25.
[2] 蘇丹丹,孟祥銳,褚麗娟. 高校非計(jì)算機(jī)專業(yè)C語(yǔ)言程序設(shè)計(jì)課程四位一體教學(xué)模式研究[J]. 長(zhǎng)春師范學(xué)院學(xué)報(bào):人文社會(huì)科學(xué)版,2008(10):129-132.