<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="de">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Automatische Bewertung von Übungsaufgaben in VIPS</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Helmar</forename><surname>Gust</surname></persName>
							<email>helmar.gust@uos.de</email>
							<affiliation key="aff0">
								<orgName type="institution" key="instit1">IKW Universität Osnabrück</orgName>
								<orgName type="institution" key="instit2">virtUOS Universität Osnabrück</orgName>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Nadine</forename><surname>Werner</surname></persName>
							<email>nadine.werner@uos.de</email>
							<affiliation key="aff0">
								<orgName type="institution" key="instit1">IKW Universität Osnabrück</orgName>
								<orgName type="institution" key="instit2">virtUOS Universität Osnabrück</orgName>
							</affiliation>
						</author>
						<title level="a" type="main">Automatische Bewertung von Übungsaufgaben in VIPS</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">8000CDF521919BC24BFB539C44DA3D86</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T22:10+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Vips ist ein virtuelles Prüfungssystem und dient zur Verwaltung, Durchführung und Auswertung von Online-Übungen und Online-Klausuren. Der Schwerpunkt der Vips-Entwicklung liegt auf der automatischen Auswertung von Aufgaben, um demjenigen, der die Aufgaben stellt und beurteilen muss, möglichst viel Arbeit abzunehmen. Darüber hinaus ermöglicht Vips Übungen und Klausuren für die Studierenden in einem Selbsttest-Modus anzubieten. Das System bietet verschiedene Möglichkeiten zur Entwicklung, Pflege und Auswertung virtueller Prüfungen sowie die Verwaltung des gesamten Übungsbetriebs eines Kurses.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="de">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Einleitung</head><p>Die Korrektur und Bewertung von Übungsaufgaben im Rahmen von Lehrveranstaltungen erfordert von den Dozenten einen nicht unerheblichen Aufwand an Zeit. Daher haben sich in vielen Bereichen stark schematisierte Aufgabentypen durchgesetzt. Typische Beispiele dafür sind Multible-und Single-Choice Aufgaben sowie Zuordnungsaufgaben. Auch für solche Aufgaben ist die händische Korrektur zeitaufwändig und lästig. Allerdings lässt sich die Auswertung dieser Aufgaben sehr leicht automatisieren. Immer dann, wenn freie Texteingaben erwartet werden (und dies gilt bereits bei Lückentextaufgaben), ist für die Beurteilung aber ein gewisses Verständnis der Aufgabe notwendig, zumindest dann, wenn von der vorgegebenen korrekten Lösung abgewichen wird. Bei weitem komplexer ist die Situation natürlich bei Freitextaufgaben. Aber auch bei diesen Aufgaben lässt sich die Korrektur und Bewertung von automatischen Systemen zumindest unterstützen. So hilft bereits das herausfiltern klarer Standardfälle, einen erheblichen Teil des Zeitaufwandes einzusparen, etwa wenn auf der einen Seite Musterlösungen erkannt werden können und auf der anderen Seite klare Fälle der Nichtbeantwortung herausgefiltert werden können. Programmieraufgaben nehmen eine Sonderstellung ein. Zum einen handelt es sich um Aufgaben, die sich weitgehend wie Freitextaufgaben verhalten.</p><p>Zum andern gibt es aber starke formale Restriktionen an die eingegebenen Texte: Sie müssen als Programm-Code fehlerfrei kompilierbar sein und sie müssen das geforderte Programm-Verhalten produzieren. Die Korrektur und Bewertung von Programmieraufgaben ist normalerweise erheblich aufwändiger als bei Freitextaufgaben, insbesondere dann, wenn sie Fehler enthalten. Eine Unterstützung bei diesen Aufgaben ist also sehr hilfreich aber wegen der Komplexität solcher Aufgaben auch entsprechend schwierig.</p><p>Vips wurde entwickelt, um einfach online Übungen und Klausuren durchführen zu können und den Dozenten bei einer Reihe organisatorischer Aufgaben zu entlasten. Ein Schwerpunkt der Vips-Entwicklung liegt dabei auf der automatischen Auswertung von Aufgaben, um demjenigen, der die Aufgaben stellt und beurteilen muss, möglichst viel Arbeit abzunehmen. Im Folgenden wird insbesondere auf Programmieraufgaben und die automatische Unterstützung deren Auswertung eingegangen.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Programmieraufgaben in Vips</head><p>Vips stellt für Programmieraufgaben eine Runtime-Umgebung mit einer einfachen GUI zur Verfügung. Die GUI ist über einen Reiter einer Lehrveranstaltung erreichbar. Sie ermöglicht für Programmieraufgaben den Programm-Code einzugeben und zu editieren sowie die Programme auszuführen. So können Kursteilnehmern die Aufgaben lösen, ohne die Programmiersprachen lokal auf ihrem Rechner installieren zu müssen. Allerdings stehen interaktive Debug-Möglichkeiten in einer solchen Umgebung nicht zur Verfügung. Um für komplexe Aufgabenstellungen auch lokale Installationen zum Aufgabenlösen benutzen zu können, gibt es Down-und Upload-Möglichkeiten für die Aufgaben.</p><p>Die Runtime-Umgebung steht auch für die Aufgabenkorrektur zur Verfügung. Zusammen mit einem vorgegebenen Default-Aufruf der Hauptfunktion ermöglicht dies sowohl dem Kursteilnehmer als auch dem Korrektor sich mit einem Mausklick einen ersten überblick über die Lauffähigkeit der Lösung zu verschaffen.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1">Anlegen eines Übungsblattes mit Programmieraufgaben</head><p>Um </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2">Bearbeiten eines Übungsblattes mit Programmieraufgaben</head><p>Aus Kursteinehmer-Sicht bietet die GUI folgende Möglichkeiten:</p><p>• Der Kursteilnehmer kann seine Lösung in ein Textfeld eintragen. Dieser Bereich ist eventuell bereits mit einem Lösungsgerüst vorbelegt.</p><p>• Basierend auf der aktuellen Lösung kann eine Testanfrage gestellt werden. Das Ergebnis des Programmlaufs wird angezeigt.</p><p>• Der Inhalt des Lösungsbereichs kann in eine lokale Datei heruntergeladen werden, so dass eine lokale Installation der Programmiersprache zur Programmentwicklung benutzt werden kann.</p><p>• Anschießend kann die fertige Lösung wieder in das Bearbeitungsfeld hochgeladen werden.</p><p>• Über den Button 'abschicken', wird die Übungsaufgabe abgegeben. Übungsaufgaben können im Rahmen der Bearbeitungszeit mehrfach abgegeben werden. Die als letztes abgegeben Lösung zählt.</p><p>Kursteilnehmer können in Arbeitsgruppen organisiert sein. Dann gilt bei einem Aufgabenblatt eine abgegebene Lösung für die gesamte Arbeitsgruppe. Bei einer Klausur gilt sie immer nur für einzelnen Teilnehmer. Im Selbsttestmodus wird nach der Abgabe die Auswertung und die (erste) Musterlösung angezeigt.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.3">Auswertung eines Übungsblattes mit Programmieraufgabe</head><p>Im Korrektur-und Bewertungsmodes von Vips stellt die Oberfläche folgende Funktionen zur Verfügung</p><p>• Im Programm-Code kann korrigiert und kommentiert werden.</p><p>• In einem Textfeld können generelle Kommentare hinzugefügt werden.</p><p>• Punkte können für die Lösung vergeben werden. Dabei werden zunächst die automatisch vergebenen Punkte angezeigt.   </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.1">Kommunikation mit Vips</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.2">Implementierte Funktionen</head><p>Die Schnittstelle erlaubt neben der Konfiguration die Ausführung eine Reihe von Funktionen: list, hash, query und eval. • Vergleich der Ergebnisse der Lösung und der Musterlösung bei verschiedenen Eingaben. Der Auswertungs-Modus 'eval' kompiliert sowohl den Lösungsfeld-Inhalt als auch die Musterlösung sowie ein Stückchen Test-Code, dass die Ergebnisse des Lösungsvorschlags und den Musterlösungen vergleicht. Die Werte für s und v für diesen Testteil werden folgendermaßen berechnet:  </p><formula xml:id="formula_0">s m comp = 1 1 + #compiler_f ehler<label>(1)</label></formula><formula xml:id="formula_1">s m eval = 0.5 * #pos #pos + #neg) + 0.5 * s comp (2) v m eval = s m eval<label>(3)</label></formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.3">Konfiguration</head></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head></head><label></label><figDesc>Abbildung 1: ViPS / VEA -Architektur</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Zur</head><label></label><figDesc>Abbildung 2: Auswertungsmodi einer Programmier-Übungsaufgabe</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>3</head><label></label><figDesc>http://www.ecult-niedersachsen.de/ list Es wir eine Liste der verfügbaren Services zurückgegeben. Zur Zeit ist nur der Service Prolog und Lisp komplett realisiert. Haskel, Oktave und R sind nur rudimentär vorhanden. query Der Auswertungsmodus query kompiliert den Lösungsfeld-Inhalt und ruft die Hauptfunktion auf. Der Ergebnistext (Compiler-Protokoll und das Ergebnis der Ausführung, falls das Programm fehlerfrei kompiliert werden konnte) wird an Vips übertragen und ausgegeben. Im Falle einer Fehlermeldung oder einer Warnung wird zusätzlich der mit Zeilennummern versehene Code ausgegeben, um die Fehlersuche zu erleichtern. Damit wird eine rudimentäre Entwicklungsumgebung realisiert, in der Programmentwürfe und Lösungsansätze getestet werden können. eval Der Auswertungsmodus eval testet die abgegebene Lösung und versucht, eine automatische Bewertung durchzuführen. In diesem Modus liefert VEA im Wesentlichen zwei Zahlen s (score) und v (validity) zwischen 0 und 1 zurück. v = 1 bedeutet, dass eine valide Bewertung vorgenommen werden konnte. s = 0 bedeutet in diesem Fall, dass die Lösung vollkommen falsch ist und s = 1 entsprechend, dass sie vollkommen richtig ist (z.B. wenn sie mit einer Musterlösung übereinstimmt). Eine Überprüfung durch einen Korrekteur sollte in diesem Fall nicht notwendig sein. Werte von v kleiner 1 deuten darauf hin, dass keine sichere Bewertung vorgenommen werden konnte, der Score s also nur ein Anhaltspunkt für den Korrekteur sein sollte. Es stehen mehrere Testverfahren zur Verfügung. VEA iteriert die beiden folgenden Verfahren jeweils über alle Musterlösungen m.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Zur</head><label></label><figDesc>Konfiguration eines Services sind zwei Dateien notwendig: config enthält eine Reihe von Attribut-Wert-Paare zur Konfiguration des Systems. Hier werden u.a. die Auswertungsparameter eingestellt, die Kommentarspezifikation der Programmiersprache festgelegt sowie die erlaubten Funktionen und Symbole aufgelistet. exec ist ein Shell-Script und Implementiert für die Funktionen query und eval den Compiler-Aufruf. Hier ist darauf zu achten, dass der Resourcen-Verbrauch des Prozesses limitiert und die Priorität niedrig eingestellt wird, damit der Prozess die Machine nicht blockiert. Zudem sind Sicherheitsmaßnahmen gegen den Missbrauch dieser Schnittstelle zu bedenken. Darüber hinaus muss für die Funktion eval ein Programm zur Verfügung gestellt werden, dass die IO-Relation des Lösungsvorschlag überprüft. In den implementierten Services wird dazu die erste Musterlösung benutzt und für eine Reihe von Testfällen die Ergebnisse beider Programme verglichen. 5 Zusammenfassung und Ausblick Das Modul Vips (Virtuelles PrüfungsSystem) übernimmt in StudIP die komplette Verwaltung des Übungsbetriebs einer Veranstaltung. Vips wurde um eine Komponente VEA (Vips Evaluation Assistent) zur automatischen Bewertung von Programmieraufgaben erweitert. VEA stellt sowohl semantische (Programmverhalten) als auch syntaktische (Beurteilung des Programm-Codes) Verfahren zur Bewertung von Programmieraufgaben zur Verfügung. VEA ist immer noch in einem experimentellen Stadium. Sowohl die Funktionalität, als auch die Kommunikation zwischen Vips und VEA sollen weiterentwickelt werden. Literatur [1] Peylo, C.; Gust, H.; Rollinger, C.; Thelen, T. (2000): A web-based intelligent educational system for PRO-LOG. In: C. Peylo (Ed.), Proceedings of the International Workshop on Adaptive and Intelligent Web-Based Education Systems held in conjunction with ITS 2000 Montreal, Canada. Technical Report of the Institute for Semantic Information Processing, Osnabrück 2000.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head></head><label></label><figDesc>Ein Lösungesfeld in das der Bearbeiter den zu entwickelnden Code eingeben kann. Dieses Felder kann vorbelegt werden, so dass dem Kursteilnehmer bereits ein Lösungsgerüst präsentiert werden kann, das z.B. vom Bearbeiter ergänzt bzw. geändert werden muss.</figDesc><table><row><cell>• Ein Feld für Musterlösungen. Dieses Feld kann meh-</cell></row><row><cell>rere Musterlösungen enthalten. zudem enthält diese</cell></row><row><cell>Feld noch den Evaluations-Code. Dieser wird in Zu-</cell></row><row><cell>kunft in einem eigenen Textfeld verwaltet.</cell></row><row><cell>• Ein Feld mit Aufruf der Hauptfunktion. In Prolog</cell></row><row><cell>ist dies eine Folge von Subgoals durch Kommas ge-</cell></row><row><cell>trennt. In anderen Programmiersprachen kann dies</cell></row><row><cell>ein Funktionsaufruf oder ein arithmetischer Aus-</cell></row><row><cell>druck sein.</cell></row><row><cell>Da das Erscheinungsbild einer Aufgabenspezifikation für</cell></row><row><cell>die Kursteilnehmer nicht immer einfach vorhergesehen</cell></row><row><cell>werden kann, gibt es eine einfache Möglichkeit zwischen</cell></row><row><cell>der Darstellung für die Aufgabenentwicklung und der</cell></row><row><cell>Darstellung für den Kursteilnehmer umzuschalten.</cell></row></table><note>ein Übungsblatt mit Programmieraufgaben in Vips anzulegen, gibt es unter dem Reiter 'Vips' einer Lehrveranstaltung mehrere Aktionen. Der Dozent kann ein neues Übungsblatt anlegen, ein Übungsblatt auch aus einer Textdatei importieren oder die Daten aus bereits vorhandenen Übungsblättern importieren. Ist das Übungsblatt in der Oberfläche mit Titel und Beschreibung sowie Start und Endzeitpunkt versehen, können Übungsaufgaben neu hinzugefügt werden. Weiterhin hat der Dozent die Möglichkeit, Aufgaben aus bereits im StudIP vorhandenen Übungsblättern dieses oder anderer Kurse zu übernehmen. Vips stellt für eine Programmier-Übungsaufgabe, die einem Übungsblatt hinzugefügt wird, neben der Aufgabenstellung eine Reihe von Informations-Feldern bereit: •</note></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_1"><head>•</head><label></label><figDesc>Der query-Knopf kompiliert den Lösungsfeld-Inhalt und ruft die Hauptfunktion auf. Die Ergebnistexte der Kompilation und der Programmausführung werden ausgegeben. Für nichtdeterministische Sprachen wie Prolog gibt es den Knopf 'query next', der bei jeder Betätigung eine weitere Lösung ausgibt.</figDesc><table><row><cell>• Der eval-Knopf stößt die automatisceh Bewertung</cell></row><row><cell>an (siehe Abbildung 2). Der Bewertungprozess kann</cell></row><row><cell>über Tags in der Musterkösung gesteuert werden.</cell></row><row><cell>Als Ergebnis werden u.a. zwei Zahlen zwischen 0</cell></row><row><cell>und 1 angezeigt: Ein Score, der die Güte der Lö-</cell></row><row><cell>sung repräsentiert und ein Validitätswert, der die</cell></row><row><cell>Verlässlichkeit der Bewertung signalisiert. Bei einem</cell></row><row><cell>Validitätswert von 1 kann die Bewertung als sicher</cell></row><row><cell>angesehen werden. Als Bewertungkriterien können</cell></row><row><cell>die IO-Relation (also das Verhalten) des Programms</cell></row><row><cell>sowie textuelle Vergleiche des Lösungscodes mit den</cell></row><row><cell>Musterlösungen auf verschiedenen Normalisierungs-</cell></row><row><cell>ebenen herangezogen werden.</cell></row><row><cell>Die abgegebenen Übungsblätter werden dem Dozenten</cell></row><row><cell>in einer Übersicht präsentiert. Von hier aus gelangt er</cell></row><row><cell>zu den einzelnen Übungsaufgaben.</cell></row><row><cell>4 Der Vips Evaluation Assistent VEA</cell></row><row><cell>Zur Unterstützung der Auswertung von Programmier-</cell></row><row><cell>aufgaben gibt es ein eigenes Server-Modul VEA (Vips</cell></row><row><cell>Evaluation Assistent), das auf einem vom StudIP-</cell></row><row><cell>System getrennten Rechner läuft. Sinnvoll ist hier eine</cell></row><row><cell>dedizierter Rechner, der nur für diese Aufgabe zur Verfü-</cell></row><row><cell>gung steht, da die Ausführung von fremden Programm-</cell></row><row><cell>code immer auch mit Sicherheitsrisiken verbunden ist.</cell></row><row><cell>VEA stellt Runtime-Umgebungen für Programmierauf-</cell></row><row><cell>gaben in ausgewählten Programmiersprachen zur Verfü-</cell></row><row><cell>gung. Diese Umgebungen können zur Entwicklung der</cell></row><row><cell>Lösungen und zur Bewertung dieser Lösungen benutzt</cell></row><row><cell>werden. Die Kommunikation zwischen StudIP/Vips und</cell></row><row><cell>der Programmierumgebung geschieht über HTTP, so</cell></row><row><cell>dass diese Schnittstelle mit einem Bowser auch direkt be-</cell></row><row><cell>nutzt kann. Dieses Interface gestattet neben der Konfigu-</cell></row><row><cell>ration auch den Test aller Funktionen, sowie die Erwei-</cell></row><row><cell>terung des Systems um weitere Programmiersprachen.</cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_3"><head></head><label></label><figDesc>#pos ist dabei die Anzahl der Testfälle, für die korrekte Ergebnisse geliefert wurden, und #neg entsprechend die Fälle, für die falsche Ergebnisse geliefert wurden. Die letzte Gleichung ist in sofern plausibel, als dass ein niedriger Score-Wert nicht bedeuten muss, dass das Programm komplett falsch ist: Ein kleiner Fehler kann etwa eine Reihe von Compiler-Fehlermeldungen evozierten. In diesem Fall sollte also auch ein entsprechend niedriger Validitätswert angesetzt werden. Auf der anderen Seite bedeutet eine hoher Score-Wert, dass das Programmverhalten korrekt ist, was ein relativ sicherer Hinweis darauf sein sollte, dass auch das Programm korrekt ist. Es werden vier MD5-Hash-Werte zurückgegeben, die den vier Code-Normalisierungen entsprechen. Diese Werte können in Vips benutzt werden, um Ähnlichkeiten zwischen den Lösungen unterschiedlicher Teilnehmer zu erkennen. So kann z.B. festgestellt werden, ob eine Lösung schon als Lösung eines anderen Teilnehmers korrigiert wurde.</figDesc><table><row><cell></cell><cell></cell><cell></cell><cell>die einzelnen Programmiersprachen, die die syntak-</cell></row><row><cell></cell><cell></cell><cell></cell><cell>tische Struktur berücksichtigen können bis zu robus-</cell></row><row><cell></cell><cell></cell><cell></cell><cell>ten Textvergleichen unabhängig von der konkreten</cell></row><row><cell></cell><cell></cell><cell></cell><cell>Programmiersprache. In der gegenwärtigen VEA-</cell></row><row><cell></cell><cell></cell><cell></cell><cell>Version wird die zweite Möglichkeit benutzt:</cell></row><row><cell></cell><cell></cell><cell></cell><cell>sim(t 1 , t 2 ) =</cell><cell>2  *  similar_text(t 1 , t 2 ) |t 1 | + |t 2 |</cell><cell>(7)</cell></row><row><cell></cell><cell></cell><cell></cell><cell>Dabei ist similar_text eine PHP-Funktion, die die</cell></row><row><cell></cell><cell></cell><cell></cell><cell>die übereinstimmenden Zeichen zählt.</cell></row><row><cell></cell><cell></cell><cell></cell><cell>• Textueller Vergleich des Lösungsvorschlags und der</cell></row><row><cell></cell><cell></cell><cell></cell><cell>Musterlösungen auf der Basis verschieden starker</cell></row><row><cell></cell><cell></cell><cell></cell><cell>Normalisierungsstufen. Die wesentlichen Stufen sind</cell></row><row><cell></cell><cell></cell><cell></cell><cell>folgende:</cell></row><row><cell></cell><cell></cell><cell></cell><cell>-In der Standard-Stufe (wird grundsätzlich an-</cell></row><row><cell></cell><cell></cell><cell></cell><cell>gewendet) werden nur Kommentare am Anfang</cell></row><row><cell></cell><cell></cell><cell></cell><cell>und Ende der Lösung sowie doppelte Zeilenum-</cell></row><row><cell></cell><cell></cell><cell></cell><cell>brüche und Blanks am Zeilenende entfernt.</cell></row><row><cell></cell><cell></cell><cell></cell><cell>-In der schwachen Stufe werden zusätzlich</cell></row><row><cell></cell><cell></cell><cell></cell><cell>Blanks vor und nach Operatoren und Trennzei-</cell></row><row><cell></cell><cell></cell><cell></cell><cell>chen sowie mehrfache Blanks und Kommentare</cell></row><row><cell></cell><cell></cell><cell></cell><cell>entfernt.</cell></row><row><cell></cell><cell></cell><cell></cell><cell>-In der mittleren Stufe werden zusätzlich alle</cell></row><row><cell></cell><cell></cell><cell></cell><cell>Blanks und Zeilenümbrüche entfernt.</cell></row><row><cell></cell><cell></cell><cell></cell><cell>-In der starken Stufe werden zusätzlich alle</cell></row><row><cell></cell><cell></cell><cell></cell><cell>kleingeschriebenen Symbole auf 'a' und alle</cell></row><row><cell></cell><cell></cell><cell></cell><cell>großgeschriebenen Symbole auf 'V' reduziert,</cell></row><row><cell></cell><cell></cell><cell></cell><cell>so dass nur die Programmstruktur selbst erhal-</cell></row><row><cell></cell><cell></cell><cell></cell><cell>ten bleibt. 6</cell></row><row><cell cols="3">• Textueller Vergleich des Lösungsvorschlags mit der Musterlösung und der Vorbelegung des Lösungsfel-des. Auf der Basis eines Ähnlichkeitsmaßes 4 sim werden ein Score s sim und ein Validitätswert v sim nach folgender Formel berechnet</cell><cell>Für die ersten drei Stufen wird auf Identität der normalisierten Texte getestet. Für die stärkste Stu-fe wird ein toleranter Textmatch, der maximale gemeinsame Teilstrings berücksichtigt, verwendet. Diese Vergleiche werden u.a. dazu benutzt, um ein textuelles Ergebnis ausgeben zu können: 'literally</cell></row><row><cell>s = sim(EXC, EXP )  *</cell><cell cols="2">1 − sim(IN I, EXC) 1 − sim(IN I, EXP m ) (4)</cell><cell>same', 'same with similar layout', 'same up to lay-out' und 'stucturally similar', je nachdem, auf wel-cher Stufe die Gleichheit erkannt wurde. Für diese</cell></row><row><cell cols="2">s m sim = s 2  *  s m max</cell><cell>(5)</cell><cell>Fälle können auch feste vorgegebene Werte für den Score s und den Validitätswert v vergeben werden.</cell></row><row><cell cols="2">v m sim = max(1 − s , s m sim ) 2</cell><cell>(6)</cell><cell>In diesem Fall überschreiben diese die Werte aus dem vorigen Verfahren.</cell></row><row><cell cols="3">EXC und IN I referieren auf die entsprechenden Feldinhalte (Lösungsvorschlag und Vorbelegung) und EXP m auf die m-te Musterlösung. s liefert also 0, falls die Vorbelegung nicht geändert wurde, und 1, falls eine der Musterlösungen eingegeben wurde. Formel (5) realisiert eine pessimistische Sichtweise für den Score-Wert und Formel (6) entsprechend für den Validitätswert. s m max ist der vorgegebene maxi-mal Score für die m-te Musterlösung 5 . Kritisch ist natürlich die Wahl der Funktion sim. Das Mögli-che Spektrum reicht von spezifischen Funktionen für</cell><cell>Hieraus berechnen sich die Werte (v sim , s sim ) als max m ((v m sim , s m sim )) und als (v eval , s eval ) max m ((v m eval , s m eval )) bezüglich der lexikalischen Ord-nung. Für jede Aufgabe kann festgelegt werden, ob nur der Lösungsmengenvergleich, nur der Textvergleich oder eine Kombination von beiden (default) in die endgülti-gen Werte von s und v eingehen, die zur Berechnung eines Bewertungsvorschlages benutzt werden. Diese relativ groben heuristischen Verfahren zur Berechnung der Werte s und v haben sich insbesondere für Prolog als durchaus brauchbar erwiesen.</cell></row><row><cell cols="3">4 Für ein Ähnlichkeitsmaß sim muss gelten 0 ≤</cell></row><row><cell>sim(x, y) ≤ sim(x, x) = 1</cell><cell></cell><cell></cell></row><row><cell cols="3">5 Musterlösungen können unterschiedliche Güte haben.</cell></row><row><cell cols="2">Für die erste Musterlösung gilt immer s m max = 1</cell><cell></cell></row></table><note>hash</note></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0">https://mvc.ikw.uni-osnabrueck.de/vips/vips.php</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="2" xml:id="foot_1">www.studip.de</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="6" xml:id="foot_2">Insbesondere die stärkste Normalisierungsstufe sollte abhängig von der Programmiersprache sein. Es ist daran gedacht, für alle Stufen in der Konfiguration parametrisierbare Pattern zu erlauben.</note>
		</body>
		<back>
			<div type="references">

				<listBibl/>
			</div>
		</back>
	</text>
</TEI>
