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