-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathloncapa.html
147 lines (134 loc) · 6.27 KB
/
loncapa.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
<html>
<head>
<title>Ostfalia - eCULTProjekt</title>
<link rel="stylesheet" type="text/css" href="proforma.css" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
</head>
<body>
<h2>Hinweise zur Benutzung der Programmieraufgaben für Lehrende</h2>
<p>Der Praktomat überprüft studentische
Einreichungen von Source-Code anhand von Tests (JUnit, Checkstyle,
Compiler), die von Lehrenden eingerichtet werden.</p>
<h3><a id="beispielaufgaben"></a> <strong>Beispiel-Aufgaben in
LON-CAPA</strong></h3>
<ul>
<li>/res/fhwf/ecult/Java - ca. 20 einfache Java-Programmieraufgaben,
z.B. Hello World, Fibonacci-Rekursion, richtiges Formatieren,
Berechnung der Fakultät, arithmetisches Mittel</li>
<li>/res/fhwf/ecult/PythonMath - Berechnung der Fakultät in Python,
Kurvenlänge und Riemannsche Trapezregel</li>
<li>/res/fhwf/ecult/setlx - ca 25 Mathematikaufgaben in der
SetlX-Programmiersprache, z.B. Aufgaben zur Mengenlehre, Logik,
Funktionen, Relationen, Graphentheorie und Gruppentheorie</li>
</ul>
<h3><a id="neueAufgabe"></a> <strong>Anlegen einer Programmieraufgabe
in LON-CAPA</strong></h3>
<p>Zunächst sollte die Aufgabe mit
dem <a href="https://proforma.github.io/formatEditor/proformaEditor.html">Editor</a>
erstellt und als XML-Datei gespeichert werden. Dann kann die Aufgabe im Autorenbereich
in LON-CAPA wie folgt angelegt werden:</p>
<ul>
<li>Mit <a href="docs/convertXMLtoProblem"> diesem Python-Script</a> kann aus dem
XML-Format eine LON-CAPA-Problem-Datei erzeugt werden und umgekehrt. Der
Aufgabentext, die Musterlösung und eine mögliche Code-Schablone müssen dann
noch von Hand in die Problem-Datei eingefügt werden.</li>
<li>Die Datei in LON-CAPA als Problem-Datei anlegen. </li>
<li>Die Aufgabe speichern und ansehen. Durch Hochladen mindestens
jeweils einer falschen und einer richtigen Lösung sollte die Aufgabe
getestet werden.</li>
<li>Danach kann die Aufgabe veröffentlicht werden (bitte Metadaten
eintragen).</li>
</ul>
<details>
<summary><b>Beispiel einer Problem-Datei in LON-CAPA</b></summary>
Die blauen Felder sind zu ersetzen.
<pre>
<problem>
<import id="11">/res/fhwf/ecult/lib/proforma_v3.library</import>
<import id="91">/res/fhwf/ecult/lib/SyntaxHighlighter/CodeMirror_Header.library</import>
<script type="loncapa/perl">
$externalurl = &proforma_url(0,'0', 'textfield', '<font color=blue>dateiname.java</font>','x-java','','v2.0.0');
$ausgabe = &proforma_output(0,1);
$args{'task'}='<font color=blue>BASE64-codierte task.xml</font>';
$modelsolution = '<pre><font color=blue>Musterlösung<</font>/pre>';
</script>
<startouttext />
<p><font color=blue>Aufgabentext</font></p>
<endouttext />
<startouttext />
$error
$ausgabe
<div id="codemirror-textfield">
<endouttext />
<externalresponse answer="" url="$externalurl" form="%args" id="1">
<textfield>
<font color=blue>Hier kann eine Code-Schablone stehen</font>
</textfield>
</externalresponse>
<startouttext />
</div>
<endouttext />
<postanswerdate><startouttext /><pre>
$modelsolution</pre><endouttext /></postanswerdate>
<import id="92">/res/fhwf/ecult/lib/SyntaxHighlighter/CodeMirror_Footer.library</import>
</problem>
</pre>
</details>
<h3><a id="aufgabentexte"></a> <strong>Tipps für Aufgabentexte bei
Aufgaben mit JUnit-Tests</strong></h3>
<p>Bei automatisch bewerteten Programmieraufgaben mit JUnit-Tests muss
die Aufgabenbeschreibung genau mit dem übereinstimmen, was auch
getestet wird. Insbesondere müssen folgende Angaben gemacht
werden:</p>
<ul>
<li>Name der Klasse</li>
<li>Name der Methode</li>
<li>Ein- und Ausgabeparameter der Methode (in Worten beschrieben
oder per Signatur angegeben)</li>
<li>Falls die Tests Fehlerfälle überprüfen, muss angegeben werden,
was die jeweiligen Ausgaben der Methode sind. Zum Beispiel: "Im Fall
von negativen Zahlen soll die Methode 0 zurückgeben."</li>
</ul>
<p>Beispiel eines Aufgabentexts:</p>
<p style="padding-left: 30px;">Schreiben Sie eine Klasse "Fakultaet",
die die Fakultät (n!) einer Zahl n berechnet. Diese Klasse soll eine
Methode "fakultaet" enthalten, welche eine ganze Zahl übergeben
bekommt und für diese die Fakultät berechnet und zurück gibt. Im Fall
von negativen Zahlen soll die Methode 0 zurückgeben.</p>
<h3><a id="FAQ"></a> <strong>FAQ bezüglich Programmieraufgaben in
LON-CAPA</strong></h3>
<ul>
<li>Wie erstellt man solche Aufgaben? Siehe oben.</li>
<li>Wie viele Versuche sollte eine Programmieraufgabe erhalten? Am
besten nicht mehr als drei. Die Studierenden sollten die Aufgabe
erst in einer normalen Programmierumgebung lösen, bevor sie sie
hochladen. LON-CAPA soll nicht als Compiler-Ersatz dienen, sondern
die fertigen Lösungen entgegennehmen und bewerten.</li>
<li>Wie kann es zu Fehlern bei der Erstellung der Aufgabe kommen?
Verwenden Sie keine Umlaute im Dateinamen der
Aufgabendatei. Zulässige und empfohlene Zeichen sind: a-z, A-Z, 0-9,
-, _ Beim Veröffentlichen können Sie im "Titel" beliebige Zeichen
verwenden. Dieser Titel wird später den Studierenden im Kurs
angezeigt.</li>
<li>Wie kann man ein Code-Template erstellen, das von den Studenten
ergänzt werden soll? Im XML Editor kann das Code-Template in das
<textfield> eingetragen werden.</li>
<li>Tipps
für <a href="docs/checkstyle.html">Checkstyle</a>, <a href="docs/junit.html">JUnit</a>
und <a href="docs/dejagnu.html">DejaGnu</a> (in Englisch).</li>
<li><a href="docs/codemirror.html">Codemirror</a> in LON-CAPA Aufgaben (in Englisch)</li>
</ul>
<hr>
<div class="end">
<img src="docs/ostfaliaEcultLogo.jpg" align = "left" alt="eCULT" width="150"/>
<img src="docs/BMBFLogo.jpg" align = "right" width="130" alt="BMBF"/>
<center>Software und Dokumente der ProFormA-Gruppe der Ostfalia<br>
<a href="https://elearning-ostfalia.github.io/proforma/">
https://elearning-ostfalia.github.io/proforma/</a></center>
<p></p>
Dieses Vorhaben wurde aus Mitteln des Bundesministeriums für Bildung und
Forschung unter den Förderkennzeichen 01PL11066H und 01PL16066H gefördert.
Die Verantwortung für den Inhalt dieser Webseite liegt bei den Autorinnen.
</div>
</body></html>