Give every section a custom ID

This commit is contained in:
Charlotte Van Petegem 2024-02-01 13:46:30 +01:00
parent e85e91ce78
commit 5ebcd8d78f
No known key found for this signature in database
GPG key ID: 019E764B7184435A

View file

@ -63,6 +63,7 @@
* To-dos
:PROPERTIES:
:CREATED: [2023-11-20 Mon 17:14]
:CUSTOM_ID: chap:todos
:UNNUMBERED: t
:END:
@ -125,6 +126,7 @@ Finally, we will give a brief overview of the remaining chapters of this dissert
** A history of automated assessment in programming education
:PROPERTIES:
:CREATED: [2024-02-01 Thu 10:46]
:CUSTOM_ID: sec:introhistory
:END:
Learning how to solve problems with computer programs requires practice, and programming assignments are the main way in which such practice is generated\nbsp{}[cite:@gibbsConditionsWhichAssessment2005].
@ -139,11 +141,13 @@ Increasing interactivity in learning has long been considered important, and fur
** Learning analytics and educational data mining
:PROPERTIES:
:CREATED: [2024-02-01 Thu 10:47]
:CUSTOM_ID: sec:introlaedm
:END:
** Structure of this dissertation
:PROPERTIES:
:CREATED: [2024-02-01 Thu 10:18]
:CUSTOM_ID: sec:introstructure
:END:
Chapters\nbsp{}[[#chap:what]],\nbsp{}[[#chap:use]]\nbsp{}and\nbsp{}[[#chap:technical]] focus on Dodona itself.
@ -401,6 +405,7 @@ The chapter is partially based on\nbsp{}[cite/t:@vanpetegemDodonaLearnCode2023].
** Facts and figures
:PROPERTIES:
:CREATED: [2024-01-22 Mon 18:15]
:CUSTOM_ID: sec:usefacts
:END:
Dodona's design decisions have allowed it to spread to more than {{{num_schools}}} schools, colleges and universities, mainly in Flanders (Belgium) and the Netherlands.
@ -422,6 +427,7 @@ In total, {{{num_users}}} students have submitted more than {{{num_submissions}}
** User study
:PROPERTIES:
:CREATED: [2024-01-22 Mon 18:16]
:CUSTOM_ID: sec:usestudy
:END:
A qualitative user experience study of Dodona was performed in 2018.
@ -438,7 +444,7 @@ Other negative feedback was mostly related to individual courses the students we
** Case study
:PROPERTIES:
:CREATED: [2023-10-23 Mon 08:48]
:CUSTOM_ID: subsec:usefwe
:CUSTOM_ID: subsec:usecasestudy
:END:
Since the academic year 2011--2012 we have organized an introductory Python course at Ghent University (Belgium) with a strong focus on active and online learning.
@ -760,6 +766,7 @@ In this section, we will highlight a few of these components.
*** The Dodona web application
:PROPERTIES:
:CREATED: [2023-11-23 Thu 17:12]
:CUSTOM_ID: subsec:techdodonaweb
:END:
The user-facing part of Dodona runs on the main web server, which also called Dodona (see Figure\nbsp{}[[fig:technicaldodonaservers]]).
@ -775,6 +782,7 @@ And lastly, all JavaScript was rewritten to TypeScript.
**** Security and performance
:PROPERTIES:
:CREATED: [2024-01-10 Wed 14:23]
:CUSTOM_ID: subsubsec:techdodonawebsecurity
:END:
Another important aspect of running a public web application is its security.
@ -878,6 +886,7 @@ In practice, we got no questions or complaints about the Python Tutor's performa
*** Development process
:PROPERTIES:
:CREATED: [2023-11-23 Thu 17:13]
:CUSTOM_ID: subsec:techdodonadevelopment
:END:
Development of Dodona is done on GitHub.
@ -907,6 +916,7 @@ They are mostly autogenerated from the merged PRs, but bigger features are given
*** Deployment process
:PROPERTIES:
:CREATED: [2023-11-23 Thu 17:13]
:CUSTOM_ID: subsec:techdodonadeployment
:END:
After a pull request is merged, it is automatically deployed by a GitHub action.
@ -964,6 +974,7 @@ Given that the target audience for Papyros is secondary education students, we i
*** Execution
:PROPERTIES:
:CREATED: [2023-11-27 Mon 17:28]
:CUSTOM_ID: subsec:papyrosexecution
:END:
Python can not be executed directly by a browser, since only JavaScript and WebAssembly are natively supported.
@ -991,6 +1002,7 @@ We chose to base Papyros on Pyodide given its active development, support for re
*** Implementation
:PROPERTIES:
:CREATED: [2023-11-27 Mon 17:28]
:CUSTOM_ID: subsec:papyrosimplementation
:END:
There are two aspects to the implementation: the user interface and the technical inner workings.
@ -999,6 +1011,7 @@ Given that this work will primarily be used by secondary school students, the us
**** User interface
:PROPERTIES:
:CREATED: [2023-11-29 Wed 14:48]
:CUSTOM_ID: subsubsec:papyrosui
:END:
The most important choice in the user interface was the choice of the editor.
@ -1040,6 +1053,7 @@ The full user interface can be seen in Figure\nbsp{}[[fig:technicalpapyros]].
**** Inner workings
:PROPERTIES:
:CREATED: [2023-11-29 Wed 14:48]
:CUSTOM_ID: subsubsec:papyrosinner
:END:
Since Pyodide does the heavy lifting of executing the actual Python code, most of the implementation work consisted of making Pyodide run in a web worker and hooking up the Python internals to our user interface.
@ -1077,6 +1091,7 @@ This work was done in collaboration with Alex Hall.
**** Extensions
:PROPERTIES:
:CREATED: [2023-12-07 Thu 15:19]
:CUSTOM_ID: subsubsec:papyrosextensions
:END:
CodeMirror already has a number of functionalities it supports out of the box such as linting and code completion.
@ -1105,6 +1120,7 @@ Another feature that teachers wanted that we had not built into a judge previous
*** Exercise API
:PROPERTIES:
:CREATED: [2024-01-05 Fri 14:06]
:CUSTOM_ID: subsec:techrapi
:END:
The API for the R judge was designed to follow the visual structure of the feedback table as closely as possible, as can be seen in the sample evaluation code in Listing\nbsp{}[[lst:technicalrsample]].
@ -1162,6 +1178,7 @@ context({
*** Security
:PROPERTIES:
:CREATED: [2024-01-05 Fri 14:06]
:CUSTOM_ID: subsec:techrsecurity
:END:
Other than the API for teachers creating exercises, encapsulation of student code is also an important part of a judge.
@ -1205,6 +1222,7 @@ Further work then developed this proof of concept into the full judge we will pr
*** Overview
:PROPERTIES:
:CREATED: [2024-01-05 Fri 14:03]
:CUSTOM_ID: subsec:techtestedoverview
:END:
TESTed generally works using the following steps:
@ -1330,6 +1348,7 @@ The encoded expected return value of our example exercise can be seen in Listing
*** Statements
:PROPERTIES:
:CREATED: [2024-01-03 Wed 17:09]
:CUSTOM_ID: subsec:techtestedstatements
:END:
There is more complexity hidden in the idea of creating a variable of a custom type.
@ -1365,6 +1384,7 @@ Listing\nbsp{}[[lst:technicaltestedassignment]] shows what it would look like if
*** Checking programming language support
:PROPERTIES:
:CREATED: [2024-01-04 Thu 09:16]
:CUSTOM_ID: subsec:techtestedsupport
:END:
We also need to make sure that the programming language of the submission under test is supported by the test plan of its exercise.
@ -1377,6 +1397,7 @@ Our example exercise will not work in C for this reason.
*** Execution
:PROPERTIES:
:CREATED: [2024-01-04 Thu 09:43]
:CUSTOM_ID: subsec:techtestedexecution
:END:
To go from the generic test plan to something that can actually be executed in the given language, we need to generate test code.
@ -1394,6 +1415,7 @@ Subsequently, the test code is executed and its results collected.
*** Evaluation
:PROPERTIES:
:CREATED: [2024-01-04 Thu 10:45]
:CUSTOM_ID: subsec:techtestedevaluation
:END:
The generated output is usually evaluated by TESTed itself.
@ -1408,6 +1430,7 @@ This can be used to evaluate programming-language specific concepts, for example
*** Linting
:PROPERTIES:
:CREATED: [2024-01-04 Thu 10:47]
:CUSTOM_ID: subsec:techtestedlinting
:END:
Next to correctness, style is also an important aspect of source code.
@ -1725,6 +1748,7 @@ Under the same circumstances, a pessimistic classifier that consistently predict
*** Pass/fail predictions
:PROPERTIES:
:CREATED: [2024-01-22 Mon 17:17]
:CUSTOM_ID: subsec:passfailmaterialspredictions
:END:
In summary, Figure\nbsp{}[[fig:passfailmethodoverview]] outlines the entire flow of the proposed pass/fail prediction framework.
@ -2071,6 +2095,7 @@ We will then expand on what we did to further reduce the time spent adding manua
** Assessment on paper
:PROPERTIES:
:CREATED: [2023-11-20 Mon 13:04]
:CUSTOM_ID: sec:feedbackpaper
:END:
Since the academic year 2015--2016 the programming course has started taking two open-book/open-internet evaluations in addition to the regular exam.
@ -2100,6 +2125,7 @@ Code that was too complex or plain wrong usually received little more than a str
** Adding comments via Dodona
:PROPERTIES:
:CREATED: [2023-11-20 Mon 13:32]
:CUSTOM_ID: sec:feedbackcomments
:END:
Seeing the amount of hassle that assessing these evaluations brought with them, we decided to build support for manual feedback and grading into Dodona.
@ -2128,6 +2154,7 @@ In the first trial of this system, the feedback was viewed by over 80% of studen
** Evaluations
:PROPERTIES:
:CREATED: [2023-11-20 Mon 13:32]
:CUSTOM_ID: sec:feedbackevaluations
:END:
To streamline and automate the process of grading even more, the concept of an evaluation was added to Dodona.
@ -2151,6 +2178,7 @@ This means that students can view the scores they received for each rubric, and
** Feedback re-use
:PROPERTIES:
:CREATED: [2023-11-20 Mon 17:39]
:CUSTOM_ID: sec:feedbackreuse
:END:
Grading and giving feedback has always been a time-consuming process, and the move to digital grading did not improve this compared to grading on paper.
@ -2179,6 +2207,7 @@ This is exactly what we will explore in this section, which is based on an artic
*** Introduction
:PROPERTIES:
:CREATED: [2024-01-19 Fri 15:47]
:CUSTOM_ID: subsec:feedbackpredictionintro
:END:
Feedback is a very important element in student learning\nbsp{}[cite:@hattiePowerFeedback2007; @blackAssessmentClassroomLearning1998].
@ -2212,6 +2241,7 @@ We start with an in-depth explanation of the design of the method, and then pres
*** Methodology
:PROPERTIES:
:CREATED: [2024-01-08 Mon 13:18]
:CUSTOM_ID: subsec:feedbackpredictionmethodology
:END:
The general methodology used by our method is explained visually in Figure [[fig:feedbackmethodoverview]].
@ -2240,6 +2270,7 @@ Since the model will be used while grading (and the training data for the model
**** Extracting a subtree around a line
:PROPERTIES:
:CREATED: [2024-01-19 Fri 15:44]
:CUSTOM_ID: subsubsec:feedbackpredictionsubtree
:END:
Currently, the context around a line is extracted by taking all the AST nodes that are solely on that line.
@ -2264,35 +2295,43 @@ for digit in number:
**** =TreeminerD=
:PROPERTIES:
:CREATED: [2023-11-20 Mon 13:33]
:CUSTOM_ID: subsubsec:feedbackpredictiontreeminer
:END:
**** Assigning weights to patterns
:PROPERTIES:
:CREATED: [2023-11-22 Wed 14:39]
:CUSTOM_ID: subsubsec:feedbackpredictionweights
:END:
**** Determining similarity
:PROPERTIES:
:CREATED: [2023-11-22 Wed 14:47]
:CUSTOM_ID: subsubsec:feedbackpredictionsimilarity
:END:
*** Results and discussion
:PROPERTIES:
:CREATED: [2024-01-08 Mon 13:18]
:CUSTOM_ID: subsec:feedbackpredictionresults
:END:
**** PyLint messages
:PROPERTIES:
:CUSTOM_ID: subsubsec:feedbackpredictionresultspylint
:CREATED: [2023-11-20 Mon 13:33]
:END:
**** Real-world data
:PROPERTIES:
:CREATED: [2023-11-20 Mon 13:33]
:CUSTOM_ID: subsubsec:feedbackpredictionresultsrealworld
:END:
*** Conclusions and future work
:PROPERTIES:
:CREATED: [2023-11-20 Mon 13:33]
:CUSTOM_ID: subsec:feedbackpredictionconclusion
:END:
* Discussion and future work