資料載入處理中...
跳到主要內容
臺灣博碩士論文加值系統
:::
網站導覽
|
首頁
|
關於本站
|
聯絡我們
|
國圖首頁
|
常見問題
|
操作說明
English
|
FB 專頁
|
Mobile
免費會員
登入
|
註冊
切換版面粉紅色
切換版面綠色
切換版面橘色
切換版面淡藍色
切換版面黃色
切換版面藍色
功能切換導覽列
(216.73.216.134) 您好!臺灣時間:2025/12/19 18:13
字體大小:
字級大小SCRIPT,如您的瀏覽器不支援,IE6請利用鍵盤按住ALT鍵 + V → X → (G)最大(L)較大(M)中(S)較小(A)小,來選擇適合您的文字大小,如為IE7或Firefoxy瀏覽器則可利用鍵盤 Ctrl + (+)放大 (-)縮小來改變字型大小。
字體大小變更功能,需開啟瀏覽器的JAVASCRIPT功能
:::
詳目顯示
recordfocus
第 1 筆 / 共 1 筆
/1
頁
論文基本資料
摘要
外文摘要
目次
參考文獻
紙本論文
論文連結
QR Code
本論文永久網址
:
複製永久網址
Twitter
研究生:
顏碩亨
研究生(外文):
Yen, Shuo-Heng
論文名稱:
以Gradle與Spock為基礎的Java程式作業自動收發與批改系統
論文名稱(外文):
An Assignment Processing System for Java Programming Based on Gradle and Spock
指導教授:
陳正佳
指導教授(外文):
Chen, Cheng-Chia
口試委員:
歐陽崇榮
、
鄭武堯
口試委員(外文):
Ouyang, Chung-Jang
、
Zheng, Wu-Yao
口試日期:
2018-07-27
學位類別:
碩士
校院名稱:
國立政治大學
系所名稱:
資訊科學系
學門:
工程學門
學類:
電資工程學類
論文種類:
學術論文
論文出版年:
2018
畢業學年度:
106
語文別:
中文
論文頁數:
64
中文關鍵詞:
程式作業
、
自動作業收發
、
自動作業批改
、
作業處理系統
、
測試架構
外文關鍵詞:
Gradle
、
Spock
、
Assignment processing
、
Java programming
相關次數:
被引用:0
點閱:172
評分:
下載:0
書目收藏:0
學習程式設計已經蔚為全世界的潮流,無論是針對一般大眾的網路平台,或是針對一般學生的正規學校,均提供確來越多的各種程式語言學習課程。然而由於程式作業是程式設計課程不可或缺的一環,隨著修課人數的遽增,無可避免的將產生排山倒海的作業量,這將為授課老師或助教造成沉重負擔,因為手動批改作業需要冗長的時間,此外也無法給予學生及時的回饋。此時,我們需要用更好、更有效率的方式,來自動化的管理與批改程式作業。
本研究提出的程式作業管理工具,相較於其他類似工具,例如:Moodle VPL、Jupyter nbgrader等,除了提供程式作業的發佈、編輯和繳交功能之外,更重視程式作業的題目測試生成、程式評量,以及作業回饋等。
本系統的主要特色之一是具備能力,可以從單一程式作業解答,產生對應的程式作業,以及測試與評分程式,因此可節省課程教師準備題目時間。出題者僅需提供一完整Java 程式解答檔,指定其中部分方法為作業題目,再事先備齊每一題目的測試輸入資料以及計分方式,即可利用本系統的人機介面操作,以Java註記(annotations)的方式為每一題目注入測試數據與評分資訊,後續系統操作即可經由解答程式分析,萃取相關資訊,再經由樣板程式而產生所有相關作品,例如分發給學生的程式作業,可結合作業解答與學生交來作業的整合測試與評分程式等。我們的系統透過Gradle自動化所有程式作業的建構與理。自動產生的測試與評分程式使用Spock測試框架進行測試與評分。最後系統不但能提供每位學生整份程式作業的評量結果,可回饋給學生供其做為釐清盲點以及改進錯誤的參考,也同時提供報告,協助授課老師快速掌握學生的學習情況。而在儲存部分,我們使用了Nexus 做為所有相關資料的集中倉儲,例如教師提供的作業解答、自動生成的作業題目、測試與評分碼,所有學生的繳交作業,以及最後的測試與評分報告等。
The learning of programming has become a worldwide trend. More and more courses related to various programming languages are being offered on the Internet for the public and from various schools for the students. However, since programing assignment is an indispensable part of a programing course, the increase of students inevitably brings about a large amount of programming assignments, which will cause an extremely heavy burden on graders and teachers if all assignments are to be processed and graded manually. It would not only take a long time, but also give students no feedback in time. In order to reduce the load of assignments processing, we need to automate the management and operations of programming assignments in a better and more efficient way.
This thesis comes up with a management and processing system of programming assignments. In addition to the functionality of editing, distribution, and submission of assignments, compared with other systems such as Moodle VPL, and Jupyter nbgrader, etc., our system pays more attention on different aspects of assignment generation and processing, such as problem generation, test code generation, assessment automation and feedback to students, etc.
One key feature of our system is its ability to generate assignment problems and test/assessments code from a single solution file together with test input and grading information provided by the teacher. It can thus save a lot of time for the teacher. To initialize an assignment using our system, the teacher can simply designates some methods of the solution file as assignment problems. All test input as well as grading information prepared in advance for each problem can then be injected into the corresponding method as annotations via JavaFX GUI operations. The system can later apply java reflection to inspect these annotations from the annotated solution file and generate all related artifacts such as programming assignments and test/assessment code using predefined Velocity templates.
Our system employs Gradle to automate the building and management of programming assignments. The generated test code will be executed using Spock testing framework. The result of assessment can be used as a feedback to clarify students' weakness and help correct errors. At the same time, it provides reports to help teachers quickly grasp what students have learned. Finally, our system uses Nexus as the central repository of all related artifacts such as solution code provided by teachers, automated generated assignments and test code, students' submitted assignments, as well as final assessment reports etc.
摘要 II
ABSTRACT III
目錄 V
圖目錄 VII
表目錄 IX
第1章 序論 1
1.1 研究背景與動機 1
1.2 實現方式 2
1.3 論文貢獻與特色 3
第2章 相關研究探討 5
2.1自動化建構工具 5
2.1.1 Maven 6
2.1.2 Gradle 7
2.2儲存庫簡介 8
2.2.1 Nexus Repository 8
2.3輔助工具介面 8
2.3.1 JavaFX 8
2.4 程式測試工具簡介 9
2.4.1 Junit 9
2.4.2 Spock 10
2.5 模板引擎框架 12
2.5.1 Apache Velocity 13
2.6 應用程式框架 13
2.6.1 Spring framework 14
2.6.2 Spring Boot 14
2.7 相似系統的分析與簡介 15
2.7.1 Moodle VPL(Virtual Programming Lab) 15
2.7.2 Jupyter nbgrader 18
第3章 系統架構與實作 24
3.1系統架構 24
3.2系統實作 28
3.2.1輔助作業發佈介面 28
3.2.2程式作業發佈平台 34
3.2.3輔助作業測試介面 36
第4章 介面操作流程與展示 38
4.1介面操作流程 38
4.2介面操作展示 40
4.2.1輔助作業發佈介面 40
4.2.2程式作業發佈平台 47
4.2.3輔助作業測試介面 55
第5章 結論與未來研究方向 59
5.1 結論 59
5.2 未來研究方向 60
參考文獻 61
[1] Hiroki Kitaya and Ushio Inoue,“An Online Automated Scoring System for Java Programming Assignments.”in International Journal of Information and Education Technology, Vol. 6, No. 4, April 2016.
[2] Caiza J. C. and Del Alamo J. M. ,“Architecture to Support Automatic Grading Processes in Programming Teaching" in Revista Politécnica - Vol. 36, No. 1, Septiembre 2015.
[3] Sumit Gulwani, Rishabh Singh, Armando Solar-Lezama, “Automated Feedback Generation for Introductory Programming Assignments”,in ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2013), pages 15–26, in June 2013.
[4] Vreda Pieterse,“Automated Assessment of Programming Assignments”in ResearchGate conference paper,April 2013.
[5] Juan C. Rodríguez-del-Pino, Enrique Rubio-Royo, Zenón J. Hernández-Figueroa, “A Virtual Programming Lab for Moodle with automatic assessment and anti-plagiarism features”, in Departament of Informática y Sistemas University of Las Palmas de Gran Canaria , Conference Paper , January 2012.
[6] Dominique Thiébaut ,“Automatic evaluation of computer programs using Moodle's virtual programming lab (VPL) plug-in” , in Journal of Computing Sciences in Colleges , Volume 30 Issue 6, pages 145-151 , in June 2015.
[7] Arcuri, J. Campos, and G. Fraser, “Unit Test Generation During Software Development: EvoSuite Plugins for Maven, IntelliJ and Jenkins”,in IEEE International Conference on Software Testing, Verification and Validation (ICST), 2016, pages 401-408.
[8] Maven. Retrieved March (2018). From https://maven.apache.org/
[9] Gradle. Retrieved March (2018). From https://gradle.org/
[10] Ant. Retrieved March (2018). From:https://ant.apache.org/
[11] Sbt. Retrieved April (2018). From:https://www.scala-sbt.org/index.html
[12] Gulp. Retrieved April (2018). From:https://gulpjs.com/
[13] SCons. Retrieved April (2018). From:https://scons.org/
[14] CMake. Retrieved April (2018). From:https://cmake.org/
[15] Grunt. Retrieved April (2018). From:https://gruntjs.com/
[16] Gradle v.s. Maven Comparison:https://gradle.org/maven-vs-gradle/
[17] Nexus Repository. Retrieved May (2018). From https://www.sonatype.com/nexus-repositor y-sonatype
[18] NPM. Retrieved May (2018). From https://www.npmjs.com/
[19] Docker. Retrieved May (2018). From https://www.docker.com/
[20] NuGet. Retrieved May (2018). From https://www.nuget.org/
[21] IntelliJ. Retrieved May (2018). From https://www.jetbrains.com/idea/
[22] Hudson. Retrieved May (2018). From http://hudson-ci.org/
[23] Jenkins. Retrieved May (2018). From https://jenkins.io/
[24] JavaFX . Retrieved May (2018). From http://www.oracle.com/technetwork/java/javase/o verview/javafx-overview-158620.html
[25] JavaFX Scene Builder . Retrieved July (2018). From https://www.oracle.com/technetwor k/java/javase/downloads/javafxscenebuilder-info-2157684.html
[26] 單元測試Unit Testing . Retrieved May (2018). From https://en.wikipedia.org/wiki/Un it_testing
[27] TestNG. Retrieved May (2018). From http://testng.org/doc/
[28] Spock. Retrieved May (2018). From http://spockframework.org/
[29] Junit. Retrieved May (2018). From:http://junit.org/junit4/
[30] Moodle. Retrieved May (2018). From:https://moodle.org/?lang=zh_tw
[31] Moodle VPL. Retrieved May (2018). From https://moodle.org/plugins/mod_vpl
[32] Specification language. Retrieved May (2018). From https://en.wikipedia.org /wiki/Sp ecification_language
[33] Execution server(vpl-jail-service) . Retrieved May (2018). From http://vpl.dis.ulpgc.es/index.php/support/2014-09-27-15-06-22/40-how-to-install-vpl-jai l-system
[34] Jmock. Retrieved May (2018). From http://www.jmock.org/
[35] Rspec. Retrieved May (2018). From http://rspec.info/
[36] Groovy. Retrieved May (2018). From https://zh.wikipedia.org/wiki/Groovy
[37] BDD(Behavior-driven development) https://en.wikipedia.org/wiki/Behavior-driven_dev elopment
[38] C#. Retrieved May (2018). From https://en.wikipedia.org/wiki/ C_Sharp_(programming _language)
[39] Ruby. Retrieved May (2018). From https://www.ruby-lang.org/zh_tw/
[40] Scala. Retrieved May (2018). From https://zh.wikipedia.org/wiki/Scala
[41] nbgrader. Retrieved May (2018). From https://nbgrader.readthedocs.io/en/stable/
[42] Apache Velocity. Retrieved May (2018). From http://velocity.apache.org/
[43] FreeMarker. Retrieved May (2018). From https://freemarker.apache.org/
[44] Jamon. Retrieved May (2018). From http://www.jamon.org/
[45] Application Framework. Retrieved May (2018). From http://www.dotspace.idv.tw/Fram eworks.htm
[46] Vert.x. Retrieved May (2018). From https://vertx.io/
[47] JSF(Javaserver Faces) . Retrieved May (2018). From http://www.oracle.com/ technetwor k / topics/index-090910.html
[48] IoC ( Inversion of Control) . Retrieved May (2018). From https://en.wikipedia.org/wiki/Inv ersion_of_control
[49] AOP ( Aspect-oriented programming ) . Retrieved May (2018). From https://en.wikipedia.org/ wiki/Aspect-oriented_programming
[50] Spring framework. Retrieved May (2018). From https://projects.spring.io/spring-boot/
[51] Spring Initializr. Retrieved May (2018). From https://github.com/spring-io/initializr
[52] Spock Report . Retrieved May (2018). From https://github.com/renatoathaydes/spock-reports
國圖紙本論文
連結至畢業學校之論文網頁
點我開啟連結
註: 此連結為研究生畢業學校所提供,不一定有電子全文可供下載,若連結有誤,請點選上方之〝勘誤回報〞功能,我們會盡快修正,謝謝!
推文
當script無法執行時可按︰
推文
網路書籤
當script無法執行時可按︰
網路書籤
推薦
當script無法執行時可按︰
推薦
評分
當script無法執行時可按︰
評分
引用網址
當script無法執行時可按︰
引用網址
轉寄
當script無法執行時可按︰
轉寄
top
相關論文
相關期刊
熱門點閱論文
無相關論文
無相關期刊
1.
應用ASP於演算法課程的測試題目生成
2.
教育部所屬博物館教育發展策略之研究-以科技應用觀點出發
3.
臺北地區公共圖書館提供閱讀障礙兒童服務現況與需求分析
4.
導向技術改變的三個議題
5.
網路時代的沉默螺旋:以台灣同性婚姻合法化為案例
6.
LINE企業帳號操作模式探討 — 以策略行銷4C理論分析
7.
優勢觀點處遇模式於未成年子女會面交往服務之實踐
8.
我國施用毒品管制政策之研究
9.
勞工職業災害保險復健給付法制之研究
10.
李明博政府北韓政策之決定因素-四個層次之分析
11.
中國律的變遷:以唐明律爲核心
12.
心理師於治療中遭受兒童案主攻擊之經驗歷程
13.
古籍數位人文研究平台之史料人物關係圖工具發展與應用-以明代文集之人物為例
14.
內生化市場結構與補貼政策
15.
青年創業優惠條件在福建平潭自由貿易區與台灣地區之比較
簡易查詢
|
進階查詢
|
熱門排行
|
我的研究室