In meinem vorherigen Blog-Artikel zum Thema ROSALIND habe ich einen kurzen Überblick über das Projekt und die Plattform gegeben. In diesem Artikel möchte ich kurz auf ein paar organisatorische Dinge eingehen, bevor ich meine Lösungen zu den ersten Problemstellungen vorstelle.
Ablauf einer Einreichung
Jeder Lösungsvorschlag muss innerhalb einer bestimmten Zeitspanne eingereicht werden. Wurde anhand der Beispieldaten eine Lösung implementiert, kann über die Schaltfläche Download Dataset eine umfangreichere Datei heruntergeladen werden. Diese Datei enthält die Daten eines konkreten Lösungsversuchs als simplen Text. Ab dem Zeitpunkt des Downloads läuft ein Timer mit 05:00 Minuten Laufzeit. Während dieser Zeitspanne muss auf Basis der heruntergeladenen Datei die Lösung in das entsprechende Textfeld eingegeben oder als Datei hochgeladen werden. Das erfordert eine Implementierung, beispielsweise über Unit-Tests, bei der die Quelldatei ohne großen Aufwand angepasst beziehungsweise ausgetauscht werden kann.
Die ROSALIND-Plattform unterscheidet bei den Lösungsversuchen zwischen einem Timeout und einer falschen Antwort. Der Timeout tritt ein, wenn die Zeitspanne von 05:00 Minuten abläuft, ohne das ein eigener Lösungsvorschlag eingereicht wurde. Dieser Versuch wird zwar protokolliert, aber nicht gewertet. Anders dagegen eine falsche Lösung. Stimmt die eingegebene Antwort nicht mit der in der Plattform hinterlegen Lösung überein, wird der Lösungsversuch als falsch protokolliert. Diese falsche Antwort geht auch, anders als bei den Timeouts, in die Berechnung des Verhätlnisses von korrekten und falschen Antworten ein.
Abbildung 1 zeigt die Übersicht der Lösungsversuche am Beispiel des RNA-Problems. Über die Timeouts kann eine beliebige Anzahl von Versuchen unternommen werden. Ob es auch eine Beschränkung für Fehlversuche gibt, ist mir bisher nicht bekannt. Eventuell kann dieses Verhalten konfiguriert werden, wenn eine Lehrkraft Übungsaufgaben über die Plattorm verteilt. ROSALIND bietet Lehrkräften einen gesonderten Zugang an, um Klassen und Aufgaben zu verwalten.
Abb. 1: Lösungsversuche zu einem ROSALIND-Problem.
Technisches zu den Antworten
Das Beispiel aus Abbildung 1 enthält viele Fehlversuche für eine im Grunde recht simple Aufgabe. Der Grund dafür ist, dass ich mehrmals nicht konforme Antwortdateien eingereicht habe. Neben dem speziellen Antwortformat jedes Problemes, muss auch die Zeichenkodierung der Antwortdatei eingehalten werden. Das spezifische Antwortformat ist sehr konkret bei jeder Problemstellung angegeben. Informationen zur Antwortdatei konnte ich bisher nicht finden. Durch die Fehlversuche habe ich herausgefunden, dass Dateien im UTF8-Format nicht akzeptiert werden. Woran das genau liegt, kann ich bisher nicht sagen. Vermutlich soll so der mögliche Zeichenvorrat eingeschränkt werden. Bisher werden anscheinend nur Buchstaben, Zahlen und hin und wieder ein Sonderzeichen – wie das Prozentzeichen – in der Antwort verlangt. In C# habe ich die Zeichenkodierung auf Encoding.Default eingestellt. Danach wurden die Antwortdateien akzeptiert. Weitere Einschränkungen sind mir bis jetzt nicht bekannt. Sobald ich weitere Informationen habe, gibt es natürlich auch weitere Hinweise.
Fazit
Am Anfang ist die Zeitspanne von 05:00 Minuten etwas nervig. Gerade während der Implementierung löst das etwas mehr Stress und vielleicht auch Frust aus, als nötig ist. Der Timer hat aber einen praktischen Hintergrund. Die Lösungen zu den ROSALIND-Problemen sollen tatsächlich implementiert beziehungsweise auf eine generische Weise gelöst werden. Es ist nicht Sinn der Sache, die Aufgaben manuell zu lösen, beispielsweise indem die zugehörige RNA aus einer DNA in einem Texteditor Zeichen für Zeichen per Hand übertragen wird. Bei einer Zeitspanne von 05:00 Minuten ist das lediglich bei den ersten Problemen möglich. Bei späteren Aufgabenstellungen aber nicht mehr, da die Aufgaben zu komplex werden.
Schreibe einen Kommentar