俞慶英 孫麗萍 夏蕓
摘要:《C程序設(shè)計》是高校計算機(jī)專業(yè)及相關(guān)理工科專業(yè)的必修基礎(chǔ)課程,《C程序設(shè)計》課程實踐教學(xué)是C語言學(xué)習(xí)過程中一個重要環(huán)節(jié)。為減輕教師在C語言實踐教學(xué)過程的繁重任務(wù),提高學(xué)生的學(xué)習(xí)效率和學(xué)習(xí)效果,開發(fā)并實現(xiàn)了一套C語言交互式作業(yè)管理系統(tǒng)。該系統(tǒng)主要功能包括用戶管理、題庫管理、作業(yè)管理、練習(xí)管理、成績統(tǒng)計與查詢等。系統(tǒng)使用Web方式開發(fā),開發(fā)環(huán)境為MyEclipse +Tomcat+ JSP+ MySQL。通過對《C程序設(shè)計》課程交互式作業(yè)管理平臺的個性化設(shè)計,充分發(fā)揮教師的指導(dǎo)作用,調(diào)動學(xué)生的學(xué)習(xí)積極性,提升學(xué)生發(fā)現(xiàn)問題和解決問題的能力,促進(jìn)師生交流以及學(xué)生之間的協(xié)同合作,從而提升《C程序設(shè)計》課程的教學(xué)質(zhì)量。
關(guān)鍵詞:C語言實踐教學(xué);程序設(shè)計;交互式作業(yè)管理
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2019)08-0029-03
開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):
《C程序設(shè)計》是大學(xué)計算機(jī)專業(yè)一年級學(xué)生的專業(yè)基礎(chǔ)課程,也是眾多高校為大一理工類新生開設(shè)的一門公共基礎(chǔ)課程。學(xué)習(xí)C程序設(shè)計課程有助于學(xué)生理解哪些是計算機(jī)擅長解決的問題,怎樣的方式方法是計算機(jī)擅長的手段,能為計算機(jī)專業(yè)學(xué)生后續(xù)學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)、面向?qū)ο蟮某绦蛟O(shè)計等專業(yè)核心課程奠定良好的編程基礎(chǔ),也有助于非計算機(jī)專業(yè)學(xué)生更好地利用計算機(jī)來解決本專業(yè)領(lǐng)域內(nèi)的問題。
實踐教學(xué)是《C程序設(shè)計》課程教學(xué)的重要組成部分,有利于加強(qiáng)學(xué)生的素質(zhì)教育,培養(yǎng)學(xué)生的實踐能力和創(chuàng)新能力[1]。《C程序設(shè)計》實踐教學(xué)內(nèi)容主要體現(xiàn)在將理論課知識靈活應(yīng)用于實際問題的解決中,對具體問題的編程作業(yè)完成情況可以體現(xiàn)出學(xué)生對知識的掌握程度。在實際教學(xué)過程中,作者發(fā)現(xiàn),大一新生在初學(xué)C語言課程時,對理論課學(xué)習(xí)和實踐課訓(xùn)練無法有效結(jié)合。而由于學(xué)生人數(shù)較多,教師在上機(jī)作業(yè)批閱方面花費了大部分時間,無法與學(xué)生進(jìn)行一對一細(xì)致交流,導(dǎo)致師生之間在作業(yè)完成質(zhì)量方面缺乏及時的交互探討。為了提高《C程序設(shè)計》課程的實踐教學(xué)效果,教師必須及時對學(xué)生的上機(jī)作業(yè)進(jìn)行評價,有針對性地對學(xué)生欠缺的知識內(nèi)容進(jìn)行補(bǔ)充,并培養(yǎng)學(xué)生的自學(xué)能力。
隨著新時代計算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,基于ACM/ICPC的在線測試系統(tǒng)應(yīng)運而生,能實現(xiàn)計算機(jī)程序評閱工作的自動化和高效性[2-3]。然而,如果將在線測試系統(tǒng)直接用于檢查本科學(xué)生程序作業(yè)的完成情況,則存在兩種極端。一方面,對于編程能力強(qiáng)的同學(xué),該測試系統(tǒng)無疑是增強(qiáng)其學(xué)習(xí)積極性的良好手段,刷題的成果大大提升了其編程興趣;另一方面,對于編程能力不足的同學(xué),往往因為各種小細(xì)節(jié)的規(guī)范問題而無法順利通過系統(tǒng)的驗收標(biāo)準(zhǔn),需要花費大量時間和精力用于細(xì)節(jié)檢查,導(dǎo)致在有限時間內(nèi)只能完成較少數(shù)量的題目,長此以往,這些學(xué)生的編程自信心和學(xué)習(xí)興趣都會受到極大影響。因此,為提高《C程序設(shè)計》課程的教學(xué)效果,建立一套準(zhǔn)確、高效、合理、實時交互的程序評測和管理系統(tǒng)已成為迫切的需求。
1 《C程序設(shè)計》課程編程作業(yè)管理現(xiàn)狀及存在問題
1.1 編程作業(yè)管理現(xiàn)狀
《C程序設(shè)計》是一門重在上機(jī)實踐操練的課程,編程作業(yè)必不可少。目前主要存在兩種形式的作業(yè)管理方式:一是教師先布置作業(yè),學(xué)生完成后上交紙質(zhì)作業(yè)或者提交電子作業(yè)到指定服務(wù)器上,然后由教師對紙質(zhì)作業(yè)一本一本地批閱或?qū)﹄娮幼鳂I(yè)逐個打開查看,最后人工匯總登記所有同學(xué)的作業(yè)完成情況;二是教師通過在線測試系統(tǒng)指定題目,學(xué)生完成程序編寫后在線提交,由在線測試系統(tǒng)評判程序?qū)﹀e,最后教師通過在線測試系統(tǒng)提供的統(tǒng)計功能匯總學(xué)生答題通過的數(shù)量。
1.2 存在的問題
人工批閱和匯總的方式較為煩瑣,雖然便于教師及時了解學(xué)生的學(xué)習(xí)情況,但是給教師的工作帶來了不必要的負(fù)擔(dān),急需尋找自動批改或自動統(tǒng)計作業(yè)完成情況的先進(jìn)手段。于是,在線測試系統(tǒng)在程序設(shè)計類課程的實踐教學(xué)中得到了廣泛的應(yīng)用[4,5]。然而,在線測試系統(tǒng)對輸入輸出的格式要求較為嚴(yán)格,僅依據(jù)程序運行結(jié)果評判程序的對錯,無法對程序源碼進(jìn)行細(xì)致的分析,不能評判學(xué)生運用所學(xué)技術(shù)解決問題的能力。雖然在線測試系統(tǒng)可以作為測定程序?qū)﹀e的依據(jù)之一,可以大大緩解教師的工作壓力,但程序具體的編寫質(zhì)量仍然需要教師人工評判。
一方面為了減少教師批閱編程作業(yè)和匯總學(xué)生作業(yè)完成情況的負(fù)擔(dān),另一方面也可以讓教師及時了解到學(xué)生的具體程序編寫能力,本文設(shè)計并實現(xiàn)了一個基于B/S結(jié)構(gòu)的《C程序設(shè)計》課程交互式作業(yè)管理系統(tǒng),利用該系統(tǒng),學(xué)生可以隨時提交其程序代碼,教師及時在系統(tǒng)上進(jìn)行批改,并將結(jié)果實時反饋給學(xué)生。通過該系統(tǒng)的使用,教師可以對整個實踐教學(xué)過程進(jìn)行高效的管理,包括導(dǎo)入師生信息、添加試題庫、布置作業(yè)、批閱作業(yè)、查看統(tǒng)計結(jié)果等功能。除判斷程序運行結(jié)果是否正確外,還提供教師評閱界面,對學(xué)生程序進(jìn)行評價打分并將結(jié)果反饋給學(xué)生。
2 《C程序設(shè)計》交互式作業(yè)管理平臺
《C程序設(shè)計》交互式作業(yè)管理平臺,為教師在《C程序設(shè)計》課程實踐作業(yè)批改、統(tǒng)計及反饋等工作提供了有效合理的管理方式,為學(xué)生及時查看教師批閱意見和作業(yè)答案提供便捷實時的平臺。基于《C程序設(shè)計》課程實踐作業(yè)的交互式管理新模式,師生互動交流得以增強(qiáng),學(xué)生學(xué)習(xí)效果更加明顯,效率顯著提高。
2.1 系統(tǒng)模塊
本系統(tǒng)模塊結(jié)構(gòu)如圖1所示。
后臺主要采用數(shù)據(jù)庫的操作方式,能夠?qū)?shù)據(jù)庫進(jìn)行分類管理及便捷操作。主要數(shù)據(jù)表包括:學(xué)生基本信息表、教師信息表、試題表、作業(yè)表、答題表等。
2.2 詳細(xì)設(shè)計與實現(xiàn)
1) 登錄管理
教師和學(xué)生使用本地電腦通過訪問《C程序設(shè)計》交互式作業(yè)管理平臺主頁,在如圖2所示的登錄界面輸入賬號和密碼后登錄,分別進(jìn)入教師操作主界面和學(xué)生操作主界面。
2) 基本信息管理
信息的操作權(quán)級別由高到低依次為:admin(管理員),teacher(教師),student(學(xué)生)。
教師用戶登錄系統(tǒng)后,可以對所有學(xué)生用戶學(xué)生基本信息進(jìn)行相關(guān)管理,包括:查看、添加、刪除、修改自己所教學(xué)生用戶的信息。教師在添加學(xué)生時,可以選擇Excel文件導(dǎo)入(圖3)和手動添加(圖4)兩種方式。各用戶在修改自己的信息(圖5)時,對不同信息要做不同處理。例如:學(xué)生的學(xué)號、專業(yè)、班級,教師的職工號、專業(yè),管理員的編號(ID)等關(guān)鍵性的信息都是不允許自己修改的,只能由信息操作權(quán)級別比自己高的用戶修改。
3) 題庫管理
教師在登錄該系統(tǒng)后,可以對題庫信息進(jìn)行相關(guān)管理,包括:查詢、添加、刪除、修改題庫里的題目等。
執(zhí)行查詢:教師可以在全部試題的數(shù)據(jù)庫中根據(jù)“多條件”(出題時間、出題者、題目內(nèi)容等)進(jìn)行準(zhǔn)確或模糊查詢。執(zhí)行添加:教師可以根據(jù)界面指示添加不同的類型的題目,添加方式分為批量導(dǎo)入(Excel)和手動輸入(單個);在添加試題的過程中,需判定題庫中是否已存在所添加題目,根據(jù)判定結(jié)果做不同處理。執(zhí)行修改:教師只能修改自己添加的題目和其他教師授權(quán)修改的題目。執(zhí)行刪除:允許教師對題目進(jìn)行批量刪除。任何教師可以向其他教師對自己所出試題的操作設(shè)置開放和共享權(quán)限。
4) 作業(yè)管理
教師用戶成功登錄系統(tǒng)后,可以根據(jù)Action后臺提供的信息查詢、修改、刪除、創(chuàng)建(添加)平時作業(yè),并將操作的信息和結(jié)果保存到后臺數(shù)據(jù)庫相應(yīng)的表中,同時教師也可以實時查看提交狀況和批改作業(yè)。圖6所示為教師查看已布置作業(yè)的界面。
教師進(jìn)入作業(yè)模塊后選擇操作對象是平時練習(xí)作業(yè)。1) 教師可以從各個類型題庫選擇若干個題目組成一次練習(xí)作業(yè),并設(shè)置作業(yè)名稱、作業(yè)提交截止時間、完成作業(yè)的對象。2) 教師也可以對自己布置的作業(yè)進(jìn)行查詢(多條件準(zhǔn)確或模糊查詢),可以添加題目的數(shù)量和完成作業(yè)的對象,也可以刪除練習(xí)中部分題目和完成作業(yè)的對象。3) 教師也可以查看本次作業(yè)學(xué)生的提交情況(已提交、未提交等)和選擇批改作業(yè)(如圖7所示)等操作。
5) 練習(xí)管理
不同的用戶類型進(jìn)入該模塊具有不同的權(quán)限。學(xué)生可以查詢相關(guān)信息(作業(yè)、答案、提交情況等),選擇提交作業(yè)等操作;教師可以查詢相關(guān)信息(作業(yè)、學(xué)生的完成情況等),選擇公開答案等操作。
學(xué)生用戶:學(xué)生可以根據(jù)教師姓名查詢其布置的作業(yè),也可以根據(jù)課程名查詢教師布置的作業(yè),在顯示查詢到的作業(yè)界面中,學(xué)生可以通過下拉列表選擇性地查看相應(yīng)作業(yè),如選擇查看所有的作業(yè)、已完成的作業(yè)、未完成的作業(yè)等;可以進(jìn)行二次查詢篩選,同時可以看到每一個作業(yè)的截至提交時間;選擇其中的一個作業(yè)進(jìn)入,可以看到選擇答題區(qū)域、查看答案按鈕,查看自己的答題對錯情況(在教師公開答案后);同時學(xué)生還可以查看此次作業(yè)每一題的提交情況。圖8為學(xué)生查看作業(yè)列表頁面,圖9為學(xué)生提交作業(yè)頁面。
教師用戶:可以根據(jù)界面指示查看自己出的所有作業(yè),還可以根據(jù)某些條件(如截止日期、作業(yè)的名稱)選擇性查看作業(yè)。選擇其中一個作業(yè)進(jìn)入,教師可以選擇公開某一題或者全部題目的答案(圖10),同時教師也可以查看本次作業(yè)目前提提交情況(圖11),可以精確查詢到完成某一題的學(xué)生名單和答案狀態(tài)以及未完成學(xué)生的名單。
3 結(jié)束語
作為大學(xué)計算機(jī)專業(yè)的一門基礎(chǔ)課程,《C程序設(shè)計》是專業(yè)基礎(chǔ)知識,是學(xué)習(xí)其他專業(yè)知識的第一步階梯;對于非計算機(jī)專業(yè)而言,程序設(shè)計的學(xué)習(xí)有助于理解計算機(jī)的能力所在,從而能更好地利用計算機(jī)來解決本專業(yè)領(lǐng)域內(nèi)的實際問題。
一個行之有效的編程作業(yè)管理系統(tǒng)對《C程序設(shè)計》的實踐教學(xué)效果有大大的促進(jìn)作用,滿足了師生之間的交互需求,既有助于教師高效管理作業(yè)并實時了解學(xué)生的學(xué)習(xí)情況,也有助于學(xué)生及時查缺補(bǔ)漏,鞏固所學(xué)知識。可有效提高學(xué)生的學(xué)習(xí)積極性和主動性,培養(yǎng)學(xué)生的邏輯思維能力和C語言編程實踐能力,從而達(dá)到培養(yǎng)學(xué)生靈活使用C程序設(shè)計方法解決實際問題的教學(xué)目標(biāo)。今后還計劃在系統(tǒng)中添加一個作業(yè)相似度比較的功能,根據(jù)比較結(jié)果查看作業(yè)抄襲情況,加強(qiáng)對實驗過程的管理,督促學(xué)生獨立完成作業(yè),減少作業(yè)抄襲現(xiàn)象。
《C程序設(shè)計》課程交互式作業(yè)管理平臺可以對傳統(tǒng)作業(yè)管理模式的不足之處進(jìn)行彌補(bǔ)和完善,可以將《C程序設(shè)計》上機(jī)課程躍升至互動與實踐的新高度,不斷提升該課程的教學(xué)質(zhì)量。
參考文獻(xiàn):
[1] 朱士中,陳鳳,先曉兵,等.基于移動終端和條碼技術(shù)的實踐教學(xué)管理平臺研究[J].軟件工程,2017, 20(4):22-25.
[2] 徐義春, 鄧波.ACM在線評測系統(tǒng)與程序設(shè)計教學(xué)[J].時代教育,2015(9): 35-36.
[3] 趙磊, 吳玉培, 廖彬.基于ACM/ICPC在線測評系統(tǒng)的設(shè)計[J].電腦知識與技術(shù),2013, 22(9): 5004-5006.
[4] 王濤春, 羅永龍,左開中.基于在線評測的數(shù)據(jù)結(jié)構(gòu)實踐教學(xué)探討[J].計算機(jī)教育,2010(10): 88-91.
[5] 張利強(qiáng),李堯.基于B/S的高校程序在線測評系統(tǒng)設(shè)計與實現(xiàn)[J].通信與信息技術(shù),2018(4): 33-36.
【通聯(lián)編輯:王力】