Give every section a custom ID
This commit is contained in:
parent
e85e91ce78
commit
5ebcd8d78f
1 changed files with 40 additions and 1 deletions
41
book.org
41
book.org
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue