999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

非計(jì)算機(jī)專業(yè)程序設(shè)計(jì)課程教學(xué)改革與作業(yè)批改系統(tǒng)的構(gòu)建

2021-11-05 08:03:28蔣銀珍
電子技術(shù)與軟件工程 2021年17期
關(guān)鍵詞:作業(yè)課程系統(tǒng)

蔣銀珍

(蘇州大學(xué)東吳學(xué)院 江蘇省蘇州市 215006)

程序設(shè)計(jì)課程是理工科學(xué)生的一門必修主干課程[1]。計(jì)算機(jī)程序設(shè)計(jì)語言種類繁多。目前,我校針對(duì)不同的非計(jì)算機(jī)專業(yè)學(xué)生開設(shè)的計(jì)算機(jī)程序設(shè)計(jì)通識(shí)課程也不同,主要有C 語言程序設(shè)計(jì)、C++程序設(shè)計(jì)、Python 程序設(shè)計(jì)、C#程序設(shè)計(jì)以及Java 程序設(shè)計(jì)。上述五門程序設(shè)計(jì)課程每周安排3 課時(shí)的課堂教學(xué),3 課時(shí)的機(jī)房實(shí)驗(yàn)教學(xué)。課堂教學(xué)在教室進(jìn)行,主要由任課教師講授相關(guān)課程知識(shí),實(shí)驗(yàn)教學(xué)主要是安排學(xué)生完成實(shí)驗(yàn)指導(dǎo)書上的編程題,任課教師和助教對(duì)學(xué)生練習(xí)過程中提出的問題進(jìn)行解答。實(shí)驗(yàn)結(jié)束后,學(xué)生將源代碼打包提交給任課教師進(jìn)行批閱。由于計(jì)算機(jī)程序設(shè)計(jì)通識(shí)課程面向全校學(xué)生,任課教師在不同學(xué)期面向不同學(xué)院不同專業(yè)的學(xué)生授課,任教班級(jí)人數(shù)較多。針對(duì)不同專業(yè),程序設(shè)計(jì)課程的編程練習(xí)題與專業(yè)特色缺乏關(guān)聯(lián)性,作業(yè)設(shè)計(jì)不夠合理,學(xué)生的學(xué)習(xí)興趣不夠濃厚,這是導(dǎo)致目前教學(xué)效果不夠理想的主要原因[2]。此外,對(duì)程序設(shè)計(jì)課程作業(yè)采用傳統(tǒng)的布置和人工批改方式,效率低下、費(fèi)時(shí)費(fèi)力,已遠(yuǎn)遠(yuǎn)不能滿足課程的實(shí)踐環(huán)節(jié)的需要[3]。

為了激發(fā)學(xué)生對(duì)程序設(shè)計(jì)課程的學(xué)習(xí)興趣,體驗(yàn)編程帶來的成就感,讓任課教師實(shí)時(shí)了解學(xué)生的編程作業(yè)完成情況,及時(shí)調(diào)整課堂教學(xué)側(cè)重點(diǎn),同時(shí)也實(shí)現(xiàn)任課教師之間資源共享,減少重復(fù)工作量,筆者開發(fā)了基于B/S 結(jié)構(gòu)的通用在線作業(yè)提交與批閱系統(tǒng),目前適用于C、C++、Python、C#以及Java 程序設(shè)計(jì)等五門課程。過程性學(xué)習(xí)評(píng)價(jià)能更全面客觀的考核學(xué)生的學(xué)習(xí)活動(dòng)[4],實(shí)踐證明,借助于作業(yè)批閱系統(tǒng),任課教師能更輕易地從宏觀上掌握學(xué)生的平時(shí)學(xué)習(xí)狀態(tài)。

1 系統(tǒng)功能

程序設(shè)計(jì)課程作業(yè)批閱系統(tǒng)以網(wǎng)站形式發(fā)布。該系統(tǒng)用戶角色有課程管理員、任課教師和學(xué)生。

課程管理員的主要職能是為其負(fù)責(zé)的課程劃分好知識(shí)模塊。以C 語言程序設(shè)計(jì)課程為例,知識(shí)模塊可劃分為運(yùn)算符與表達(dá)式、順序結(jié)構(gòu)、單分支結(jié)構(gòu)、雙分支結(jié)構(gòu)、多分支結(jié)構(gòu)、while循環(huán)、for 循環(huán)、循環(huán)嵌套、函數(shù)、結(jié)構(gòu)體、鏈表等,并為各知識(shí)模塊有針對(duì)性地設(shè)計(jì)編程作業(yè)供學(xué)生進(jìn)行專項(xiàng)練習(xí)。

任課教師主要負(fù)責(zé)管理自己的授課班級(jí)信息、班級(jí)資料和學(xué)生名單。在教學(xué)過程中,任課教師根據(jù)自己的教學(xué)進(jìn)度和面向的學(xué)生專業(yè)方向,為所授班級(jí)選擇合適的編程作業(yè)進(jìn)行發(fā)布,同時(shí)設(shè)置起始時(shí)間和截止時(shí)間。此外,任課教師也可以根據(jù)自己班級(jí)的實(shí)際情況新增編程作業(yè)作為補(bǔ)充。根據(jù)實(shí)際情況,任課教師對(duì)已經(jīng)發(fā)布的作業(yè)也可調(diào)整截止時(shí)間,或取消發(fā)布。

在作業(yè)發(fā)布期內(nèi),學(xué)生登錄后可查看編程題題目要求和運(yùn)行示例,啟動(dòng)相關(guān)程序設(shè)計(jì)語言開發(fā)環(huán)境,編寫程序代碼進(jìn)行調(diào)試,完成后提交程序源代碼文件,系統(tǒng)接收源代碼文件后自動(dòng)批閱,然后顯示作業(yè)成績(jī)并登記入系統(tǒng)。

2 系統(tǒng)開發(fā)與實(shí)現(xiàn)

本系統(tǒng)是基于ASP.NET 的B/S 架構(gòu)的Web 應(yīng)用程序,開發(fā)語言采用C#。通過綜合考察C 語言程序設(shè)計(jì)、C#程序設(shè)計(jì)、Java 程序設(shè)計(jì)以及Python 程序設(shè)計(jì)等四門課程的教學(xué)要求的異同點(diǎn),設(shè)計(jì)編程作業(yè)布置與批改的流程為:設(shè)計(jì)編程題→任課教師發(fā)布編程作業(yè)→學(xué)生完成并提交作業(yè)→系統(tǒng)自動(dòng)批閱→任課教師查看成績(jī)。

編程題設(shè)計(jì)要素包括題目要求、圖片(僅支持一張)、關(guān)鍵字、輸入輸出以及參考答案(可為空)。其中,關(guān)鍵字是指代碼中必須包含的內(nèi)容,程序設(shè)計(jì)課程類別不同,則關(guān)鍵字有所不同(例如C語言程序作業(yè)的關(guān)鍵字可設(shè)為:include/main/scanf/printf)。每題至少一對(duì)、最多5 對(duì)輸入輸出用作批閱時(shí)的測(cè)試數(shù)據(jù)。在設(shè)計(jì)無輸入的編程作業(yè)(如:輸出100 以內(nèi)的素?cái)?shù))時(shí),輸入測(cè)試內(nèi)容任意。圖1 顯示的是C 語言程序設(shè)計(jì)課程中for 循環(huán)部分的一道編程作業(yè),共設(shè)置了5 個(gè)關(guān)鍵字,兩對(duì)輸入輸出。

圖1:設(shè)計(jì)編程題界面

設(shè)計(jì)完編程題作業(yè)后,任課教師可發(fā)布作業(yè)供學(xué)生查看。同一編程題可向不同班級(jí)發(fā)布,發(fā)布時(shí)設(shè)置允許提交作業(yè)的開始時(shí)間和截止時(shí)間,以及截止時(shí)間過后是否向?qū)W生公布參考答案。

學(xué)生登錄系統(tǒng)后,在允許提交作業(yè)的時(shí)間段內(nèi),可根據(jù)題目要求編寫程序源代碼文件,通常要借助相關(guān)程序開發(fā)環(huán)境(如Dev-CPP、Visual Studio 等)調(diào)試程序。當(dāng)學(xué)生在本地調(diào)試完程序后,將源程序文件提交至本系統(tǒng)(界面如圖2所示),系統(tǒng)給出關(guān)鍵字和每組數(shù)據(jù)的測(cè)試結(jié)果得分,并顯示該題總得分。每道作業(yè)滿分為100 分,其中關(guān)鍵字滿分10 分,關(guān)鍵字個(gè)數(shù)不限。若關(guān)鍵字個(gè)數(shù)為n,則每個(gè)關(guān)鍵字得分為10/n。1 至5 個(gè)測(cè)試點(diǎn)共90 分,每個(gè)測(cè)試點(diǎn)滿分相同。如某道作業(yè)設(shè)置了一個(gè)測(cè)試點(diǎn),則該測(cè)試點(diǎn)滿分為90 分;若設(shè)置了兩個(gè)測(cè)試點(diǎn),則每個(gè)測(cè)試點(diǎn)滿分為45 分,若設(shè)置了3 個(gè)測(cè)試點(diǎn),則每個(gè)測(cè)試點(diǎn)滿分為30 分,依此類推。在截止時(shí)間之前,學(xué)生可反復(fù)提交,系統(tǒng)保留最后一次的作業(yè)結(jié)果和成績(jī)。任課教師則隨時(shí)可以查看每位學(xué)生的完成題數(shù)、總得分、平均分以及每題的完成情況(包括每個(gè)測(cè)試點(diǎn)得分、測(cè)試輸入、期望的輸出結(jié)果以及學(xué)生程序的輸出結(jié)果等),從而掌握學(xué)生學(xué)習(xí)的薄弱環(huán)節(jié),及時(shí)調(diào)整課堂教學(xué)側(cè)重點(diǎn),不斷提高教學(xué)質(zhì)量。若截止時(shí)間已過,學(xué)生不能再提交文件進(jìn)行批閱,但能查看得分,并在設(shè)置為允許查看答案的情況下瀏覽參考答案代碼。

圖2:學(xué)生提交源程序文件批閱界面

自動(dòng)批閱源程序文件是本系統(tǒng)的實(shí)現(xiàn)難點(diǎn)。在圖2所示界面中,系統(tǒng)接收到學(xué)生提交的源程序文件后,則按以下步驟完成批閱:

(1)在服務(wù)器端創(chuàng)建一個(gè)以學(xué)生學(xué)號(hào)命名的文件夾;

(2)將學(xué)生提交的源程序文件上傳到學(xué)號(hào)文件夾;

(3)將該編程作業(yè)的輸入數(shù)據(jù)轉(zhuǎn)存為輸入文本文件;

(4)比對(duì)學(xué)生代碼中的關(guān)鍵字,并計(jì)算得分(記作A);

(5)根據(jù)源程序文件的擴(kuò)展名(目前支持.c、.cpp、.cs、.py、.java 擴(kuò)展名),獲取相應(yīng)的編譯程序或解釋程序的路徑配置信息,然后使用自定義的Compile 類的ExecuteCompile 方法,通過使用Process 類調(diào)用cmd 命令設(shè)置PATH 路徑、運(yùn)行預(yù)先安裝在服務(wù)器端的編譯器或解釋器程序命令,從而實(shí)現(xiàn)編譯或解釋學(xué)生程序代碼的目的;例如:

對(duì)于.c 源程序文件,處理的關(guān)鍵代碼是:

對(duì)于.cpp、.cs 以及.java 源程序文件,處理代碼類似,僅僅是編譯程序路徑和文件名稱不同而已。

若對(duì)于.py 源程序文件,直接調(diào)用Python 解釋器解釋學(xué)生程序。

(6)通過檢查是否產(chǎn)生了.exe 文件判斷學(xué)生程序是否成功編譯鏈接。若成功則再次使用Process 類調(diào)用cmd 命令,運(yùn)行學(xué)生程序(采用管道操作,以輸入文本文件作為標(biāo)準(zhǔn)輸入,運(yùn)行結(jié)果重定向?qū)懭胫付ńY(jié)果文本文件);關(guān)鍵代碼如下:

(7)讀取結(jié)果文本文件的內(nèi)容,與編程作業(yè)的輸出數(shù)據(jù)進(jìn)行比對(duì),并計(jì)算得分(記作B);

(8)將學(xué)生代碼、測(cè)試結(jié)果以及得分(A+B)存入數(shù)據(jù)庫(kù);

為提高系統(tǒng)的可維護(hù)性,在系統(tǒng)配置文件Web.Config 中的appSettings 節(jié)點(diǎn)下為編譯器或解釋器程序路徑設(shè)置鍵對(duì)值,例如各種語言編譯器對(duì)應(yīng)的鍵對(duì)值可設(shè)置如下(根據(jù)實(shí)際安裝情況路徑有所不同):

為避免大量存在死循環(huán)的學(xué)生程序占用服務(wù)器CPU,在使用Process 類調(diào)用cmd 命令運(yùn)行學(xué)生程序時(shí),可指定等待時(shí)間。若在指定時(shí)間內(nèi),學(xué)生程序仍未執(zhí)行結(jié)束,則調(diào)用taskkill 命令強(qiáng)制結(jié)束學(xué)生程序。

作業(yè)批閱系統(tǒng)后臺(tái)數(shù)據(jù)庫(kù)為Sql Server 2008,與編程作業(yè)相關(guān)的數(shù)據(jù)表有三張,分別為編程題表、作業(yè)發(fā)布表和作業(yè)成績(jī)表。編程題表用于存放編程題信息,字段包括:題目編號(hào)、章節(jié)編號(hào)、出題人、題目要求、圖片名稱、關(guān)鍵字以及5 組輸入輸出等。作業(yè)發(fā)布表存放作業(yè)發(fā)布信息,字段包括:發(fā)布編號(hào)、班級(jí)編號(hào)、開放時(shí)間、截止時(shí)間以及是否在截止時(shí)間之后允許查看答案等。作業(yè)成績(jī)表登記學(xué)生編程題的完成情況,包括學(xué)號(hào)、姓名、成績(jī)、學(xué)生答案、測(cè)試結(jié)果等。

3 結(jié)束語

程序設(shè)計(jì)類課程重在實(shí)踐[5]。如何設(shè)計(jì)作業(yè),合理設(shè)置作業(yè)發(fā)布時(shí)間的先后順序也至關(guān)重要。例如,教材中有例題:輸入一個(gè)整數(shù),輸出它的每位數(shù)字之和。通過課堂講解讓學(xué)生領(lǐng)會(huì)其中的算法。為了幫助學(xué)生靈活運(yùn)用該算法,可依次設(shè)計(jì)并發(fā)布作業(yè):

(1)輸入一個(gè)整數(shù),輸出它的逆序數(shù);

(2)輸入一個(gè)整數(shù),判斷其是否為對(duì)稱數(shù);

(3)輸出1000 以內(nèi)所有的對(duì)稱數(shù)。循序漸進(jìn),逐步加大作業(yè)難度,不斷提高學(xué)生對(duì)所學(xué)知識(shí)的靈活運(yùn)用能力。

經(jīng)過一學(xué)年的使用,基于Web 的程序設(shè)計(jì)課程作業(yè)自動(dòng)批閱系統(tǒng)運(yùn)行狀態(tài)良好,學(xué)生完成編程作業(yè)后即刻提交驗(yàn)證并查看得分,體會(huì)到成功帶來的喜悅。任課教師也能及時(shí)發(fā)現(xiàn)學(xué)生對(duì)所學(xué)知識(shí)掌握的薄弱點(diǎn)。目前該系統(tǒng)已是全校從事計(jì)算機(jī)程序設(shè)計(jì)課程教學(xué)教師的得力助手,同時(shí)也是學(xué)生的好幫手,對(duì)于提高教學(xué)質(zhì)量、增強(qiáng)師生之間的互動(dòng)具有積極的推廣意義。

猜你喜歡
作業(yè)課程系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機(jī)系統(tǒng)
數(shù)字圖像處理課程混合式教學(xué)改革與探索
ZC系列無人機(jī)遙感系統(tǒng)
軟件設(shè)計(jì)與開發(fā)實(shí)踐課程探索與實(shí)踐
快來寫作業(yè)
為什么要學(xué)習(xí)HAA課程?
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
作業(yè)
故事大王(2016年7期)2016-09-22 17:30:08
我想要自由
主站蜘蛛池模板: 色婷婷狠狠干| 国产在线高清一级毛片| 在线欧美a| 毛片在线看网站| 爆乳熟妇一区二区三区| 美女毛片在线| 国产精品xxx| 毛片最新网址| 99免费在线观看视频| 亚洲免费毛片| 国产欧美在线| 国产一在线| 日韩欧美中文在线| 国产成人无码久久久久毛片| 91热爆在线| 亚洲精品成人福利在线电影| 4虎影视国产在线观看精品| 国产美女久久久久不卡| 激情综合网址| 亚洲一区二区无码视频| 亚洲人成网18禁| 国产午夜福利在线小视频| 国产成人久久综合一区| 白丝美女办公室高潮喷水视频| 国产玖玖玖精品视频| 啪啪永久免费av| 亚洲av综合网| 无码专区国产精品第一页| AV无码一区二区三区四区| 99re免费视频| 久久人人97超碰人人澡爱香蕉 | 国产玖玖视频| 国产乱人激情H在线观看| 国产一区二区三区在线无码| 亚洲日本www| 重口调教一区二区视频| 色妞www精品视频一级下载| 广东一级毛片| 欧美区在线播放| 久久久久亚洲AV成人网站软件| 国产在线精品美女观看| 亚洲91精品视频| 91精品专区| 成人无码一区二区三区视频在线观看| 91精选国产大片| 久久亚洲天堂| 9966国产精品视频| 亚洲欧洲国产成人综合不卡| 人妻丝袜无码视频| 国产在线专区| 亚洲有无码中文网| 国内精品九九久久久精品 | 999在线免费视频| 九九久久精品免费观看| 91久久天天躁狠狠躁夜夜| a毛片免费看| 亚洲综合专区| 亚洲国产看片基地久久1024| 久久久久无码国产精品不卡| 91久久夜色精品国产网站| 2021天堂在线亚洲精品专区| 美女免费黄网站| 美女被操黄色视频网站| 国产精品一线天| 大乳丰满人妻中文字幕日本| 日韩欧美中文字幕在线韩免费| 天天摸夜夜操| 国产又爽又黄无遮挡免费观看| 日韩精品亚洲精品第一页| 无码aⅴ精品一区二区三区| 欧洲亚洲欧美国产日本高清| 中文字幕无码av专区久久| 亚洲国内精品自在自线官| 免费一级毛片完整版在线看| 亚洲欧美另类久久久精品播放的| 亚洲区第一页| 天天躁夜夜躁狠狠躁躁88| 国产免费羞羞视频| 漂亮人妻被中出中文字幕久久| 国产免费自拍视频| 成人午夜亚洲影视在线观看| 久久夜夜视频|