摘要:越來越多的大學(xué)開設(shè)Java語言作為計算機(jī)程序設(shè)計類基礎(chǔ)課程,但對本課程的學(xué)時分配以及對學(xué)完Java語言后的后續(xù)課程安排是否合理,還有待于進(jìn)一步的研究。文章通過對加拿大Alberta大學(xué)計算機(jī)科學(xué)系程序設(shè)計教學(xué)的調(diào)查研究,闡述該校程序設(shè)計教學(xué)中的幾大特點(diǎn)。
關(guān)鍵詞:程序設(shè)計;Java技術(shù);教學(xué)模式
從事教學(xué)工作19年以來,筆者一直承擔(dān)程序設(shè)計課程的教學(xué)工作。教學(xué)期間得到國家留學(xué)基金委的委派,獲得去加拿大Alberta大學(xué)進(jìn)修一年的機(jī)會。在國外進(jìn)修期間,有機(jī)會旁聽Java程序設(shè)計課程的理論課,并參與了上機(jī)實(shí)驗(yàn)課。經(jīng)過一個學(xué)期的親身體驗(yàn),基本對該所大學(xué)的計算機(jī)科學(xué)系的教學(xué)過程與教學(xué)模式有了一定的了解。Alberta大學(xué)開設(shè)程序設(shè)計課程的最終目標(biāo)概括起來就兩句話:通過給學(xué)生提供廣闊的學(xué)習(xí)平臺,最大限度地挖掘?qū)W生的潛力;通過給學(xué)生提供全方位的服務(wù),最大程度地訓(xùn)練學(xué)生程序設(shè)計能力。經(jīng)過調(diào)查和詳細(xì)總結(jié),我們發(fā)現(xiàn)該校程序設(shè)計教學(xué)有如下特點(diǎn)。
1程序設(shè)計課程開設(shè)的數(shù)目較少,分配的課時較多
Alberta大學(xué)把程序設(shè)計課程作為計算機(jī)專業(yè)的基礎(chǔ)課程來開設(shè),主要安排在大學(xué)一年級。程序設(shè)計語言類課程的指導(dǎo)思想是:通過學(xué)習(xí),學(xué)生既要掌握高級語言的知識、編程技術(shù)和基本算法,又要掌握程序設(shè)計的思想和方法,更具備利用計算機(jī)求解實(shí)際問題的能力,并能運(yùn)用所學(xué)語言和其他課程相結(jié)合進(jìn)行程序設(shè)計。加拿大 Alberta大學(xué)開設(shè)的語言課程主要有C和Java。進(jìn)修期間,筆者對包含Java應(yīng)用技術(shù)的各類課程的安排與學(xué)時分配進(jìn)行了調(diào)查,調(diào)查結(jié)果如表1所示。
從表1可見,Alberta大學(xué)計算機(jī)科學(xué)系在不同學(xué)期的教學(xué)安排中涉及到Java技術(shù)的課程總共有5門,每門課程理論學(xué)時大約為30學(xué)時,實(shí)驗(yàn)學(xué)時為40學(xué)時。該大學(xué)將涉及Java技術(shù)的5門課安排在不同學(xué)期,以及總共約350小時的學(xué)時分配,充分體現(xiàn)了該校對程序設(shè)計課程所采用的循序漸進(jìn)、逐步求精、縱向深入的教學(xué)理念和將Java技術(shù)與各有關(guān)專業(yè)課程橫向融會貫通的教學(xué)模式。合理的課程安排和分配較多的學(xué)時,為該大學(xué)能夠培養(yǎng)出國際一流程序設(shè)計人才奠定了基礎(chǔ)。該所大學(xué)每年都會派學(xué)生參加國際性程序設(shè)計大賽,并且次次都能獲獎。筆者在該系的展覽廳里見到了許許多多的獎杯,都是學(xué)生參加各種大賽榮獲的。這些獎杯也算是對該系學(xué)生編程水平的肯定。
2多媒體教學(xué)授課時間短、次數(shù)多,充分利用網(wǎng)絡(luò)資源
Alberta大學(xué)程序設(shè)計課程多采用多媒體教學(xué),針對多媒體教學(xué)信息量大的特點(diǎn),該校采用每周3次理論課、每次50分鐘制授課方式,以便學(xué)生對授課內(nèi)容分階段進(jìn)行消化吸收。而且該校對每門課程都設(shè)立有完整的教學(xué)網(wǎng)站。網(wǎng)站囊括內(nèi)容、形式多樣的輔助學(xué)習(xí)材料。學(xué)生隨時可以從這些網(wǎng)站里獲取幫助,提高了學(xué)生自主學(xué)習(xí)的主觀能動性。老師授課時致力于基本概念及算法的講解,細(xì)枝末梢由學(xué)生自主學(xué)習(xí)、鞏固。實(shí)踐證明通過網(wǎng)絡(luò)資源補(bǔ)充學(xué)習(xí)內(nèi)容,不僅可以提高學(xué)生的自學(xué)能力,而且學(xué)生可以很大程度地拓展知識面。
3實(shí)驗(yàn)室設(shè)備齊全,實(shí)驗(yàn)時間長,指導(dǎo)形式多樣化
該校的每個實(shí)驗(yàn)室都配有白板、投影儀、打印機(jī)、教師使用機(jī)及最多30臺學(xué)生用機(jī)。實(shí)驗(yàn)指導(dǎo)老師在實(shí)驗(yàn)前會利用大約20分鐘的時間對實(shí)驗(yàn)重點(diǎn)、難點(diǎn)集中分析。有問題的個別學(xué)生,會把名字寫在白板上,等待指導(dǎo)老師按學(xué)生提問的先后次序指導(dǎo);每次實(shí)驗(yàn)大約180分鐘,學(xué)生每次至少應(yīng)完成4道程序設(shè)計題; 一學(xué)期內(nèi)要求學(xué)生完成的實(shí)驗(yàn)小題目有40道,大作業(yè)有2道;為加速學(xué)生實(shí)驗(yàn)課前預(yù)習(xí)實(shí)驗(yàn)內(nèi)容,實(shí)驗(yàn)題目及相關(guān)輔助資料會在Java課程網(wǎng)站提前一個星期發(fā)布;為了學(xué)生有足夠的時間提前預(yù)習(xí),甚至完成實(shí)驗(yàn)內(nèi)容,實(shí)驗(yàn)室為計算機(jī)系在冊學(xué)生全天24小時開放。提前做完的學(xué)生可以提前交作業(yè),有專門的課程指導(dǎo)老師負(fù)責(zé)查收作業(yè)。
實(shí)驗(yàn)指導(dǎo)工作由在該校就讀的碩士研究生、博士研究生承擔(dān)。這一舉措,一方面訓(xùn)練了研究生、博士生的工作能力;另一方面減輕了任課老師的負(fù)擔(dān),使他們有更多的時間搞科研寫論文,這一方式值得我們學(xué)習(xí)和借鑒。
學(xué)生注冊一門課程時會給每位學(xué)生分配一定的硬盤空間,并給其提供帳號、口令及該課程的公共郵箱地址。學(xué)生上機(jī)時,只能登陸到分配給自己的文件夾下完成并遞交作業(yè)。Alberta大學(xué)這種給學(xué)生獨(dú)立分配實(shí)驗(yàn)空間,并且只能通過口令,才能登陸到個人空間的做法,一方面減少了學(xué)生使用軟盤或U盤備份作業(yè)引起病毒交叉感染的現(xiàn)象;另一方面避免了作業(yè)被別人刪除的危險。做大作業(yè)時基本不占用實(shí)習(xí)時間,要求學(xué)生自行安排時間編寫,實(shí)驗(yàn)室全天24小時為本校在冊學(xué)生免費(fèi)開發(fā)。學(xué)生遇到問題時發(fā)E-mail給指導(dǎo)老師,指導(dǎo)老師會把答復(fù)發(fā)到公共郵箱,供學(xué)生集體參考。有時也鼓勵學(xué)生自由組合成幾個小組,合作完成較大的程序設(shè)計題目。學(xué)生所遇的問題會得到及時的解決。這樣做一方面提高了學(xué)生學(xué)習(xí)的積極性;另一方面也為學(xué)生能夠按時并獨(dú)立完成作業(yè)提供了保障。表2為Alberta大學(xué)在一年級第一學(xué)期對Java程序設(shè)計實(shí)驗(yàn)安排。從表中可以看出實(shí)驗(yàn)時間長,每組實(shí)驗(yàn)人數(shù)少。這樣的安排不僅可以保證學(xué)生有足夠的時間完成實(shí)驗(yàn),而且也可以保障老師有足夠的時間對學(xué)生提出的問題給予指導(dǎo)。
4大作業(yè)采用指導(dǎo)老師提供程序骨架、學(xué)生填補(bǔ)代碼的做法
布置大作業(yè)時,指導(dǎo)老師會把大作業(yè)分成幾大模塊,明確每個模塊要完成的具體任務(wù)。確定每個模塊具體任務(wù)時,指導(dǎo)老師會給出要在該模塊中使用的成員變量以及成員方法,會明確指定變量個數(shù),變量名、變量類型、方法名、方法的返回值類型、形參、形參類型,并用注釋語句說明每個模塊要實(shí)現(xiàn)的具體功能,由學(xué)生編寫程序,實(shí)現(xiàn)各模塊的功能。這樣做的好處是:學(xué)生拿到題目后心中基本有數(shù),按指導(dǎo)書中的安排一步一步地完成大作業(yè)。對大學(xué)一年級的學(xué)生采用這種方法,一方面會避免初學(xué)程序設(shè)計的學(xué)生拿到題目后一籌莫展、無從下手的局面;另一方面老師也不會花太多的時間和精力答復(fù)學(xué)生的疑問,這也是較科學(xué)的一種做法,很值得我們借鑒。學(xué)生通過一學(xué)期中安排的兩個大程序設(shè)計作業(yè)的訓(xùn)練,基本上可以掌握面向?qū)ο蟮能浖_發(fā)技巧。
5遞交作業(yè)的時間非常明確,逾期不交者,不予受理
指導(dǎo)老師對學(xué)生交作業(yè)時間控制的非常嚴(yán)格,會規(guī)定到幾月幾日幾時。學(xué)生會在規(guī)定的時間內(nèi)完成作業(yè),并遞交給指導(dǎo)老師。指導(dǎo)老師及時對作業(yè)進(jìn)行評分,指導(dǎo)老師登記完學(xué)生分?jǐn)?shù)后,要求學(xué)生在成績單上簽字。影響學(xué)生成績的因素主要有:1)逾期不交者,不予受理,成績?yōu)?。2)程序代碼雷同的學(xué)生實(shí)驗(yàn)成績一律為0分。指導(dǎo)老師會嚴(yán)格執(zhí)行此規(guī)定,督促學(xué)生獨(dú)立自主地按時完成作業(yè)。學(xué)生交完作業(yè)后,指導(dǎo)老師會把學(xué)生做過的實(shí)驗(yàn)的源代碼發(fā)布到網(wǎng)站,供學(xué)生參考學(xué)習(xí)。
6結(jié)語
本文是筆者在加拿大Alberta大學(xué)擔(dān)任訪問學(xué)者期間參與Java語言理論教學(xué)和實(shí)踐教學(xué)所獲得的經(jīng)驗(yàn)和心得體會的總結(jié)。它不是一種教學(xué)方法的系統(tǒng)論述,而是一些較有價值的教學(xué)觀點(diǎn)和方法的討論。如果我們要想培養(yǎng)出一批對Java程序設(shè)計技術(shù)掌握得精而透,并且可利用其解決實(shí)際問題的大學(xué)本科生,Alberta大學(xué)程序設(shè)計課程規(guī)范的教學(xué)模式中值得我們借鑒的地方有許多:提供比較齊全的實(shí)驗(yàn)室設(shè)備,并提供便利讓學(xué)生對所提供的實(shí)驗(yàn)設(shè)施的開放式的利用;校園網(wǎng)教學(xué)網(wǎng)絡(luò)資源的大力建設(shè),以及在教學(xué)過程中對校園網(wǎng)及Internet網(wǎng)中Java學(xué)習(xí)資源的利用;在提供形式多樣的指導(dǎo)形式的基礎(chǔ)上倡導(dǎo)學(xué)生根據(jù)自身情況利用多種手段靈活自主學(xué)習(xí)。尤其是該校對程序設(shè)計課程所采用的循序漸進(jìn)、逐步求精、縱向深入的教學(xué)理念和將Java技術(shù)與各有關(guān)專業(yè)課程橫向融會貫通的教學(xué)模式很值得我們借鑒。
Probe on Teaching Mode of Java Language Programming in Alberta University
Minawaer ? NULAHEMA