寧丹
【摘要】程序設(shè)計(jì)類課程的實(shí)驗(yàn)教學(xué)是整個(gè)課程教學(xué)的重要環(huán)節(jié),本文分析了當(dāng)前程序設(shè)計(jì)類課程實(shí)驗(yàn)教學(xué)的現(xiàn)狀及弊端,提出了一種與ACM競(jìng)賽相結(jié)合的程序設(shè)計(jì)類課程實(shí)驗(yàn)教學(xué)模式。實(shí)踐證明,在實(shí)驗(yàn)教學(xué)中應(yīng)用該模式能夠提升教學(xué)效果,有利于提高學(xué)生的實(shí)際應(yīng)用能力。
【關(guān)鍵字】程序設(shè)計(jì) 實(shí)驗(yàn)教學(xué) ACM
一、引言
近來(lái)年,隨著信息技術(shù)在社會(huì)各個(gè)應(yīng)用領(lǐng)域的滲透和普及,程序設(shè)計(jì)類課程已經(jīng)發(fā)展為高校計(jì)算機(jī)教育的重點(diǎn)課程。理論教學(xué)與實(shí)驗(yàn)教學(xué)是程序設(shè)計(jì)類課程的重要組成部分,其中,實(shí)驗(yàn)教學(xué)是完整教學(xué)過(guò)程中的不可或缺的實(shí)踐性教學(xué)環(huán)節(jié)。實(shí)驗(yàn)的目的不僅僅是為了驗(yàn)證所編程序的正確與否,也是為了加深對(duì)程序設(shè)計(jì)語(yǔ)言知識(shí)的充分理解,更重要的是培養(yǎng)學(xué)生的實(shí)際操作能力和積累豐富的編程經(jīng)驗(yàn),從而引導(dǎo)他們利用程序設(shè)計(jì)語(yǔ)言編程來(lái)解決實(shí)際問(wèn)題。基于此,本文對(duì)如何更好的進(jìn)行程序設(shè)計(jì)類課程的實(shí)驗(yàn)教學(xué)作一些探討。
二、現(xiàn)狀分析
目前,我校計(jì)算機(jī)學(xué)院開(kāi)設(shè)了高級(jí)語(yǔ)言如C、C++等多門程序設(shè)計(jì)類課程,這些課程的共同目標(biāo)就是讓學(xué)生通過(guò)上機(jī)實(shí)驗(yàn)和課程設(shè)計(jì)來(lái)鞏固課堂上講解的語(yǔ)法規(guī)則和算法技巧,鍛煉編程能力。但是現(xiàn)有的程序設(shè)計(jì)類課程實(shí)驗(yàn)教學(xué)存在著很多問(wèn)題,導(dǎo)致整個(gè)教學(xué)效果得不到提高,與教學(xué)目標(biāo)的要求不相符。本節(jié)將主要從三個(gè)方面對(duì)其存在的問(wèn)題進(jìn)行總結(jié):
2.1 實(shí)驗(yàn)教學(xué)安排
我院程序設(shè)計(jì)類課程的上機(jī)實(shí)驗(yàn)課時(shí)是有限的,一般都是每周安排兩個(gè)課時(shí),或者最多四個(gè)課時(shí),通常會(huì)在連續(xù)的幾周內(nèi)結(jié)束。由于一般程序的編寫(xiě)和調(diào)試比較費(fèi)時(shí)間,要是學(xué)生不事先做好充分的準(zhǔn)備,僅僅靠在兩個(gè)課時(shí)內(nèi)去完成一個(gè)完整的程序編寫(xiě)是不太可能的,對(duì)所學(xué)內(nèi)容也沒(méi)能充分理解,很難在課堂上培養(yǎng)學(xué)生的實(shí)際編程能力。
2.2 實(shí)驗(yàn)教學(xué)內(nèi)容
我院專業(yè)實(shí)驗(yàn)中心的機(jī)房環(huán)境是一個(gè)內(nèi)部的局域網(wǎng),不能連接到互聯(lián)網(wǎng),教師都是通過(guò)課件投影或屏幕廣播教學(xué)軟件來(lái)完成主要的實(shí)驗(yàn)教學(xué)過(guò)程。實(shí)驗(yàn)內(nèi)容基本卜^都是對(duì)課堂理論教學(xué)內(nèi)容進(jìn)行驗(yàn)證和實(shí)現(xiàn),學(xué)生按照教材或課件來(lái)完成實(shí)驗(yàn)。整個(gè)的實(shí)驗(yàn)教學(xué)環(huán)節(jié)中,教師根據(jù)實(shí)際的情況來(lái)選擇是否進(jìn)行案例教學(xué),而當(dāng)前多數(shù)實(shí)驗(yàn)教學(xué)過(guò)程中的案例所覆蓋的知識(shí)點(diǎn)范圍不夠理想,不能將新舊知識(shí)點(diǎn)都包含進(jìn)來(lái)。案例陳舊,缺少更新,實(shí)用性和趣味性也不強(qiáng),因此不能很好的激發(fā)學(xué)生的學(xué)習(xí)熱情,不利于培養(yǎng)學(xué)生的獨(dú)立思考和動(dòng)手操作能力,未能達(dá)到教學(xué)目標(biāo)的要求。
2.3 實(shí)驗(yàn)教學(xué)考核
實(shí)驗(yàn)課程主要是通過(guò)實(shí)驗(yàn)報(bào)告中的程序編寫(xiě)情況來(lái)考核的。由于時(shí)間有限,實(shí)驗(yàn)報(bào)告的批改都是教師在課后另找時(shí)間檢查,教師往往只能通過(guò)紙質(zhì)的實(shí)驗(yàn)報(bào)告來(lái)分析學(xué)生的程序,要求程序能正常通過(guò),看到運(yùn)行結(jié)果就可以了,而忽略了程序中的調(diào)試環(huán)節(jié),而這些環(huán)節(jié)中通常都是學(xué)生未掌握的知識(shí)點(diǎn)。這種考核方式不利于教師對(duì)學(xué)生學(xué)習(xí)情況的掌握,也不利于培養(yǎng)學(xué)生的創(chuàng)新能力。
三、ACM學(xué)習(xí)模式的特點(diǎn)
現(xiàn)在,隨著ACM國(guó)際大學(xué)生程序設(shè)計(jì)競(jìng)賽(簡(jiǎn)稱ACM)在高校中的推廣,越來(lái)越多的學(xué)生參與進(jìn)來(lái)了。在迎接ACM競(jìng)賽的學(xué)習(xí)過(guò)程中,形成了一種具有ACM競(jìng)賽特點(diǎn)的學(xué)習(xí)模式,這種學(xué)習(xí)模式的特點(diǎn)如下:
l、ACM競(jìng)賽所涉及的知識(shí)面十分廣泛,算法電極具復(fù)雜性。通常在平時(shí)的訓(xùn)練過(guò)程中為了能深刻而透徹的理解各個(gè)知識(shí)點(diǎn),教師會(huì)引入大量的案例教學(xué)。運(yùn)用典型案例可以將學(xué)生帶人特定的問(wèn)題進(jìn)行案例分析,通過(guò)學(xué)生的獨(dú)立思考或團(tuán)隊(duì)合作,進(jìn)一步提高其解決具體問(wèn)題的能力。
2、ACM競(jìng)賽是通過(guò)在線測(cè)評(píng)系統(tǒng)上實(shí)時(shí)提交程序代碼,給出評(píng)判結(jié)果的競(jìng)賽形式。ACM測(cè)評(píng)系統(tǒng)能夠?qū)崟r(shí)的給出參賽隊(duì)的排名情況和每道題的通過(guò)率以及通過(guò)人數(shù),教師可根據(jù)題目的通過(guò)率來(lái)掌握學(xué)生對(duì)知識(shí)點(diǎn)的學(xué)習(xí)情況,也可以反思其教學(xué)方法和教學(xué)內(nèi)容中存在的問(wèn)題。
四、基于ACM模式的程序設(shè)計(jì)類課程實(shí)驗(yàn)教學(xué)的做法
將ACM學(xué)習(xí)模式應(yīng)用到我院現(xiàn)有的程序設(shè)計(jì)類課程實(shí)驗(yàn)教學(xué)過(guò)程中,具體措施運(yùn)用如下:
4.1 實(shí)驗(yàn)課程的開(kāi)設(shè)
我院高級(jí)語(yǔ)言(C、C++)程序設(shè)計(jì)實(shí)驗(yàn)課程都是在大一這一學(xué)年開(kāi)設(shè)的,大一第一學(xué)期是面向過(guò)程的C語(yǔ)言編程學(xué)習(xí),大一第二學(xué)期是面向?qū)ο蟮腃++語(yǔ)言編程學(xué)習(xí)。這樣開(kāi)課的結(jié)果就使得大多數(shù)學(xué)生連面向過(guò)程的編程都還沒(méi)有完全搞清楚,就直接跳到了面向?qū)ο蟮木幊蹋梢哉f(shuō)整個(gè)大一學(xué)期都是處于混沌的編程狀態(tài)。因?yàn)閷?duì)程序設(shè)計(jì)語(yǔ)言的思想和語(yǔ)法還沒(méi)完全掌握,所以很多學(xué)生不具備基本的編程能力,甚至對(duì)編程有恐懼感。為了解決這些問(wèn)題,我們結(jié)合ACM的競(jìng)賽模式來(lái)調(diào)整開(kāi)課計(jì)劃,把原計(jì)劃2個(gè)學(xué)期的高級(jí)語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)課程的教學(xué)時(shí)間調(diào)整為5個(gè)學(xué)期,這樣可以貫穿整個(gè)計(jì)算機(jī)專業(yè)課的學(xué)習(xí)過(guò)程,從而將程序設(shè)計(jì)語(yǔ)言和其他計(jì)算機(jī)專業(yè)課的學(xué)習(xí)更好的結(jié)合起來(lái),讓學(xué)生有時(shí)間去深刻地理解程序設(shè)計(jì)語(yǔ)言的思想和方法,不斷地鍛煉實(shí)踐操作能力和積累編程經(jīng)驗(yàn)。
4.2 實(shí)驗(yàn)內(nèi)容的選取和實(shí)驗(yàn)課程的考核
對(duì)實(shí)驗(yàn)環(huán)境來(lái)說(shuō),要求將我院專業(yè)實(shí)驗(yàn)中心機(jī)房連接到我校的源程序在線測(cè)評(píng)(Onlinejudge,簡(jiǎn)稱OJ)平臺(tái)上。根據(jù)程序設(shè)計(jì)類課程的實(shí)驗(yàn)內(nèi)容和具體要求,每次實(shí)驗(yàn)前,教師可以從我?;蛘咂渌咝5腛J平臺(tái)上的ACM競(jìng)賽題庫(kù)中挑選或改造2-3個(gè)相關(guān)題目作為實(shí)驗(yàn)內(nèi)容掛到我校的OJ上。在實(shí)驗(yàn)課階段,由學(xué)生獨(dú)立完成或者自由組隊(duì)來(lái)編寫(xiě)程序,調(diào)試程序,解決問(wèn)題,編寫(xiě)好的程序提交給OJ來(lái)判斷正確與否。通過(guò)每次實(shí)驗(yàn)在OJ上完成的做題數(shù)量,教師可以由此掌握到學(xué)生對(duì)知識(shí)點(diǎn)的學(xué)習(xí)情況,對(duì)欠缺的知識(shí)點(diǎn)再給與重點(diǎn)講解。同時(shí)教師可以根據(jù)OJ上的排名很輕松的完成實(shí)驗(yàn)課程的考核。學(xué)生也可以通過(guò)每次實(shí)驗(yàn)的做題和排名情況,來(lái)檢查自己的學(xué)習(xí)方法和學(xué)習(xí)內(nèi)容,從而達(dá)到熟練掌握所學(xué)內(nèi)容的實(shí)驗(yàn)教學(xué)目的。
五、結(jié)束語(yǔ)
在整個(gè)程序設(shè)計(jì)語(yǔ)言的教學(xué)過(guò)程中,實(shí)驗(yàn)教學(xué)是非常重要的實(shí)踐性教學(xué)環(huán)節(jié)。把ACM學(xué)習(xí)模式應(yīng)用到程序設(shè)計(jì)類課程實(shí)驗(yàn)教學(xué)過(guò)程中,同時(shí)把ACM的競(jìng)賽機(jī)制引入到實(shí)驗(yàn)課程的考核當(dāng)中,使其成為程序設(shè)計(jì)類課程實(shí)驗(yàn)教學(xué)的一個(gè)重要組成部分。不但增強(qiáng)了師生之間的互相溝通和交流,培養(yǎng)了學(xué)生的自主學(xué)習(xí)與合作學(xué)習(xí)能力,也使教師能不斷調(diào)整教學(xué)策略來(lái)完善教學(xué),更重要的是學(xué)生掌握了程序設(shè)計(jì)語(yǔ)言的思想和方法,提高了教學(xué)效果。