王金鵬,曹旗磊,王 涵
(山東工商學(xué)院 計算機科學(xué)與技術(shù)學(xué)院,山東 煙臺 264005)
程序設(shè)計基礎(chǔ)是一門實踐性很強的課程,傳統(tǒng)教學(xué)模式是理論課和實踐課(上機)分開上,導(dǎo)致理論和實踐脫節(jié):理論課時,學(xué)生只能被動地聽教師講或者看教師操作,自己不能動手實踐,“課上聽來終覺淺”;實踐課時,由于學(xué)生對知識的掌握度不同和操作進度不同,教師又不便做統(tǒng)一、系統(tǒng)的講解,學(xué)生只能憑著在理論課上所聽所看內(nèi)容的殘存記憶來操作,收效甚微。
傳統(tǒng)的作業(yè)方式一般是教師布置任務(wù)后由學(xué)生自行上機練習,由于缺少“分數(shù)驅(qū)動”式的激勵措施,故學(xué)生的積極性不高,且由于缺乏有效的驗收機制故作業(yè)完成度也不高。另外,在這種作業(yè)方式下,抄襲作業(yè)的現(xiàn)象時有發(fā)生,并非每個學(xué)生都能親自動手上機編程,使通過作業(yè)培養(yǎng)學(xué)生動手能力和實踐能力的目標難以達成。同時,教師對學(xué)生學(xué)習的真實情況也難以掌握。
傳統(tǒng)的考核方式是以期末考試(紙質(zhì)試卷)為主,平時成績只占很小比例,可以說是“一考定終身”,這種考試方式存在很多弊端,如考核內(nèi)容不全面,成績的偶然性很大,難以考查學(xué)生的動手實踐和程序調(diào)試能力,對學(xué)生平時學(xué)習缺乏過程化監(jiān)管和考核,對學(xué)習差的學(xué)生不能進行提前預(yù)警導(dǎo)致考試結(jié)束成績不理想時已無可挽回等。
鑒于上述問題,有必要對程序設(shè)計基礎(chǔ)的授課模式、作業(yè)方式和成績考核方式進行改革,以提高教學(xué)效果。
為解決理論和實踐脫節(jié)問題,可采用邊講邊練的教學(xué)模式[1]。所謂邊講邊練,就是在機房內(nèi)授課,學(xué)生人手一機,教師根據(jù)需要可以隨時講述理論知識,也可以隨時讓學(xué)生動手實踐,兩種授課模式任意切換。這種教學(xué)模式不僅將理論和實踐有機地結(jié)合起來,而且還可使教師實時地了解學(xué)生對知識的掌握情況,便于調(diào)節(jié)講課進度和授課計劃。
采用一種基于Online Judge(簡稱OJ)系統(tǒng)的作業(yè)方式[2],可有效解決傳統(tǒng)作業(yè)方式所存在的諸多的問題。
OJ 是一種廣泛用于大學(xué)生程序設(shè)計競賽的在線評判系統(tǒng),也叫ACM 在線評測系統(tǒng)[3],基于B/S 結(jié)構(gòu)實現(xiàn)[4]。在OJ 平臺上,參加比賽的隊員可通過網(wǎng)絡(luò)在系統(tǒng)中閱讀題目、編制代碼提交并查看運行結(jié)果是否正確。
基于OJ 的作業(yè)方式,是由教師在OJ 平臺上編制題目并布置作業(yè),學(xué)生可隨時隨地通過網(wǎng)絡(luò)登錄系統(tǒng)做題。這種作業(yè)方式的好處是學(xué)生提交的代碼是否正確可實時在線評判,若結(jié)果不正確可以修改代碼重新提交,直至正確為止,每次提交結(jié)果都有記錄。借助OJ 平臺,教師可以準確地掌握任何一名學(xué)生任何一次作業(yè)中的任何一題的完成情況(對于抄襲代碼,系統(tǒng)有相似度檢測,教師也可以人工查看代碼)。
采用基于OJ 的作業(yè)方式,可有效提高學(xué)生的動手編程能力和程序調(diào)試能力。傳統(tǒng)作業(yè)方式下,很難保證每個學(xué)生都能通過上機編程來完成作業(yè),更勿論程序調(diào)試了,而在OJ 平臺上,只有親自動手編程并調(diào)試出正確結(jié)果,方能提交代碼并被系統(tǒng)接受。
采用基于OJ 的作業(yè)方式,可有效提高學(xué)生做作業(yè)的主動性和積極性。新的作業(yè)方式可結(jié)合“分數(shù)驅(qū)動”的過程化考核方式(即每一題都按一定的分值計入期末總分),在每次作業(yè)后都實時公布每個學(xué)生的累計成績,并且由于OJ 系統(tǒng)中有按做題數(shù)量排名的功能,故極易在學(xué)生中形成你追我趕、爭先恐后的良好風氣。
采用基于OJ 的作業(yè)方式,可有效解決作業(yè)完成度不高的問題。在傳統(tǒng)的作業(yè)方式下,作業(yè)完成度不高主要原因是學(xué)生自身具有惰性,而教師又因為沒有有效的驗收手段而無法確定督促對象。在基于OJ 的作業(yè)方式下,每個學(xué)生對每個題目的完成情況教師都可隨時在OJ 上查看,一目了然,對于作業(yè)完成情況不好的學(xué)生教師可隨時進行督促。
基于OJ 的作業(yè)方式,還可以結(jié)合本文后面介紹的考核方式,對學(xué)生學(xué)習情況進行過程化監(jiān)控和即時預(yù)警。
考核方式的改革主要體現(xiàn)在新的考核方式增加了對平時學(xué)習的過程化考核和對學(xué)生動手實踐能力的考核兩方面的內(nèi)容。
2.3.1 對平時學(xué)習的過程化考核
將平時作業(yè)計入期末總分。結(jié)合基于OJ 的作業(yè)方式,規(guī)定平時作業(yè)中的每個題(含測驗中的題目)都占一定的分值,計入期末總成績(約占總成績的30%)。
將原來的1 學(xué)期考1 次改為1 學(xué)期考3 次。把1 學(xué)期的授課時間分成3 個階段,每一階段進行1 次機考,3 次機考成績共占期末總成績的70%。
每次作業(yè)、測驗和考試之后,都把學(xué)生所得的分值(績點)記錄在冊,用Excel 表格的形式公布于眾,學(xué)生可以查看自己每次的得分和總績點,實時掌握自己的學(xué)習情況。
采用上述兩項措施的目的是增加過程化評價環(huán)節(jié),盡量降低偶然性的影響,使考查的知識點更多,考核更全面、更合理;使學(xué)生對自己平時學(xué)習情況更了解并可即時預(yù)警;使教師在督促或激勵學(xué)生時有的放矢。
2.3.2 對動手實踐能力的考核
程序設(shè)計基礎(chǔ)旨在培養(yǎng)學(xué)生的計算思維能力、動手編程能力和程序調(diào)試能力[5],紙質(zhì)試卷難以對上述能力進行全面有效的考核。將紙質(zhì)考試改為上機考試的好處是能夠?qū)W(xué)生動手編程和程序調(diào)試的能力進行有效考核。
山東工商學(xué)院對程序設(shè)計基礎(chǔ)課程的教學(xué)改革始于2010 年,2010 年首創(chuàng)邊講邊練教學(xué)法并踐行至今,2012 年在計算機科學(xué)與技術(shù)(簡稱計科)專業(yè)實行新的基于OJ 系統(tǒng)的作業(yè)方式,2014 年推廣到全部6 個專業(yè),同時開始采用1學(xué)期3 次機考、結(jié)合平時成績評定總成績的考核方式。
為了更好地推進教學(xué)改革,2014 年,在借鑒兄弟院校OJ 系統(tǒng)的基礎(chǔ)上開發(fā)了本校的OJ 系統(tǒng)以及“程序設(shè)計基礎(chǔ)考試系統(tǒng)”。
“程序設(shè)計基礎(chǔ)考試系統(tǒng)”可用于平時作業(yè)和考試,目前已穩(wěn)定使用4 年。系統(tǒng)支持選擇、填空、判斷、程序填空、編程等題型。目前,系統(tǒng)中有用于平時練習的題目約1 500 題,用于考試的題目約800 題,題庫可進行增、刪、查、改等操作。系統(tǒng)還支持手動出題和隨機抽題兩種組卷方式,學(xué)生交卷時可立即看到考試成績,并能對考試成績進行分類統(tǒng)計分析。表1、表2 分別是考試之后的成績統(tǒng)計分析、各知識點得分率。
針對作業(yè)當中出現(xiàn)的抄襲代碼或提供代碼給別人的行為,筆者在OJ 平臺中加入了代碼相似度檢測功能,該功能可檢測出任何一份代碼與以往每一份代碼的相似度,并給出最高相似度及所對應(yīng)的代碼,教師可根據(jù)相似度并結(jié)合人工查看代碼的方式?jīng)Q定是否對學(xué)生進行判罰。
表1 計科18 級第2 次考試成績統(tǒng)計分析
表2 計科18 級第2 次考試選擇題得分率統(tǒng)計
上述改革措施是在不斷摸索、實踐、總結(jié)的基礎(chǔ)上逐漸成形的,是在計科專業(yè)首先實施,并在近幾年開始向其他專業(yè)推廣,但目前其他專業(yè)采用的措施并不徹底(因各種原因部分措施未實施),也不成熟。計科專業(yè)由于起步較早,做法更徹底,已經(jīng)形成了一套固定的模式和優(yōu)良學(xué)風的傳承,故計科專業(yè)的教學(xué)水平與其他專業(yè)的教學(xué)水平相比已形成了較大優(yōu)勢,表3 是2014 年實行各專業(yè)統(tǒng)一考試以來計科專業(yè)與其他專業(yè)的平均成績對比,從中可以看出新的教學(xué)模式、作業(yè)方式和考核方式具有壓倒性優(yōu)勢。
新的教學(xué)模式、教學(xué)方法應(yīng)用之后,學(xué)生的學(xué)習成績和學(xué)習興趣都有了顯著提高,學(xué)生參加各種競賽或考試(ACM 競賽、全國藍橋杯比賽、考研復(fù)試等)的成績都有了突破性進步,畢業(yè)生質(zhì)量更是迎來了令人驚喜的改變,近幾年計科專業(yè)的本科畢業(yè)生頻頻被百度、360、趨勢科技、餓了么、蘑菇街、鏈家等公司錄用,這些標志著基于Online Judge 教學(xué)法的程序設(shè)計基礎(chǔ)教學(xué)水平得到社會的廣泛認可。
表3 歷次考試計科專業(yè)與其他專業(yè)平均成績對比
研究和實踐表明,邊講邊練授課模式可有效解決理論和實踐脫節(jié)問題,基于Online Judge 的作業(yè)方式和考核方式,可有效提高學(xué)生的動手實踐能力和程序調(diào)試能力,提高學(xué)生編程的興趣和積極性,可對學(xué)生平時學(xué)習進行過程化評價,使成績考核更合理,還可使教師更好地掌握學(xué)生的學(xué)習情況,所有這些,對于提高學(xué)生的學(xué)習成績和程序設(shè)計基礎(chǔ)課程的教學(xué)水平都有巨大的作用。