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