From ddc9a8ea947bf296a02b4426614cf364521457f2 Mon Sep 17 00:00:00 2001 From: Charlotte Van Petegem Date: Thu, 23 Nov 2023 17:46:15 +0100 Subject: [PATCH] Start work on technical description --- bibliography.bib | 18 ++++++++++++++++++ book.org | 29 +++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) diff --git a/bibliography.bib b/bibliography.bib index 7bcc5ce..eb05c45 100644 --- a/bibliography.bib +++ b/bibliography.bib @@ -3121,6 +3121,15 @@ file = {/home/charlotte/sync/Zotero/storage/WBTY5M4I/Strijbol et al. - 2023 - TESTed—An educational testing framework with langu.pdf;/home/charlotte/sync/Zotero/storage/KD2266YV/S2352711023001000.html} } +@article{strijbolTESTedOneJudge2020, + title = {{TESTed: one judge to rule them all}}, + author = {Strijbol, Niko and Dawyndt, Peter and Mesuere, Bart}, + year = {2020}, + publisher = {{2020.}}, + url = {http://lib.ugent.be/catalog/rug01:002836313}, + langid = {und} +} + @inproceedings{suCodeRelativesDetecting2016, title = {Code Relatives: Detecting Similarly Behaving Software}, shorttitle = {Code Relatives}, @@ -3237,6 +3246,15 @@ file = {/home/charlotte/sync/Zotero/storage/ADNTANNI/Ureel II and Wallace - 2019 - Automated Critique of Early Programming Antipatter.pdf} } +@article{vanpetegemComputationeleBenaderingenVoor2018, + title = {{Computationele benaderingen voor deductie van de computationele complexiteit van computerprogramma's}}, + author = {Van Petegem, Charlotte and Dawyndt, Peter}, + year = {2018}, + publisher = {{2018.}}, + url = {http://lib.ugent.be/catalog/rug01:002479652}, + langid = {und} +} + @article{vanpetegemDodonaLearnCode2023, title = {Dodona: {{Learn}} to Code with a Virtual Co-Teacher That Supports Active Learning}, shorttitle = {Dodona}, diff --git a/book.org b/book.org index bf5f8da..18106bc 100644 --- a/book.org +++ b/book.org @@ -729,12 +729,26 @@ Given that cohort sizes are large enough, historical data from a single course e :CUSTOM_ID: chap:technical :END: +Dodona and its related software comprises a lot of code. +This chapter discusses the technical background of Dodona itself and a stand-alone online code editor that was integrated into Dodona. +I will also discuss two judges that I was involved with the development of. +The R judge was written entirely by myself. +The TESTed judge came forth out of a prototype I built in my master's thesis\nbsp{}[cite:@vanpetegemComputationeleBenaderingenVoor2018] and was further developed in a master's thesis I supervised\nbsp{}[cite:@strijbolTESTedOneJudge2020]. + ** Dodona :PROPERTIES: :CREATED: [2023-10-23 Mon 08:49] :CUSTOM_ID: sec:techdodona :END: +Dodona is developed as a modern web application. +In this section we will go over the inner workings of Dodona (both implementation and deployment) and how it adheres to modern standards of software development. + +*** Implementation +:PROPERTIES: +:CREATED: [2023-11-23 Thu 17:12] +:END: + For proper virtualization we use Docker containers\nbsp{}[cite:@pevelerComparingJailedSandboxes2019] that use OS-level containerization technologies and define runtime environments in which all data and executable software (e.g., scripts, compilers, interpreters, linters, database systems) are provided and executed. These resources are typically pre-installed in the image of the container. Prior to launching the actual assessment, the container is extended with the submission, the judge and the resources included in the assessment configuration (Figure\nbsp{}[[fig:technicaloutline]]). @@ -777,6 +791,21 @@ The web server is the only public-facing part of Dodona, running a Ruby on Rails Dodona needs to operate in a challenging environment where students simultaneously submit untrusted code to be executed on its servers ("remote code execution by design") and expect automatically generated feedback, ideally within a few seconds. Many design decisions are therefore aimed at maintaining and improving the reliability and security of its systems. +*** Deployment +:PROPERTIES: +:CREATED: [2023-11-23 Thu 17:13] +:END: + +*** Development +:PROPERTIES: +:CREATED: [2023-11-23 Thu 17:13] +:END: + +** Papyros +:PROPERTIES: +:CREATED: [2023-11-23 Thu 17:29] +:END: + ** Judges :PROPERTIES: :CREATED: [2023-10-23 Mon 08:49]