Freie Software in der Schule: Warum ich meine eigene Notenverwaltung schreibe

  Stefan Draxlbauer   Lesezeit: 8 Minuten  🗪 14 Kommentare Auf Mastodon ansehen

Die meisten Lehrkräfte dürften eine Tabellenkalkulation benutzen. Das funktioniert für mich aber nicht gut bzw. überhaupt nicht, sodass ich eine andere Lösung (er)finde.

freie software in der schule: warum ich meine eigene notenverwaltung schreibe

Probleme

Tabellenkalkulationen haben einige Probleme bei der Notenverwaltung. Und da rede ich noch nicht mal darüber, dass die meisten Lehrkräfte vermutlich Microsoft Excel verwenden, dass eingegebene Daten nach Fernwest schickt. Nein, ich meine, dass diese statisch sind. Ein mal eingerichtet sind sie nur schwer veränderbar in Bezug auf die Daten. Ich arbeite an einer beruflichen Schule und da kommt es – gerade am Anfang des Schuljahres zu häufigen Wechseln von Schüler:innen: hin zur Schule, weg von der Schule, Klassen-/Kurswechsel, ... Diese Schüler:innen darf ich dann händisch wieder entfernen und stattdessen neue einfügen. Ganz toll für die alphabetische Sortierung und die Zuordnung von Noten. Dazu steckt jede Klasse/jeder Kurs in einer einzelnen Datei, damit die Kurstrennung vernünftig funktioniert. Ein Wechsel ist mit Laden verbunden.

Außerdem hat man in allen Zellen gigantische Formeln stehen, die man kaum noch versteht, und man lädt eine ganze Office-Suite nur für ein paar Noten und Mittelwerte. Das geht besser!

Vieles kann man mit den Funktionen der Tabellenkalkulation erledigen, aber dann stecke ich wieder so viel Energie in die Erstellung der Formeln oder fange an, mit Makros zu arbeiten - da kann ich auch gleich programmieren.

Lösung: Eigene Notenverwaltung

Leider findet sich auf dem Markt meines Wissens nach weder eine quelloffene noch unter Linux laufende Lösung für die Verwaltung von Noten in der Schule – zumindest für Lehrkräfte, denn für Schüler gibt es etwas. Da bleibt es nur noch, das selbst zu programmieren. Nicht ganz trivial als Nicht-Informatiker, aber die Schmerzen bei der Tabellenkalkulation machen für mich die Mühe wett.

Ich benutze C++ als Programmiersprache und Qt6 als Bibliothek für Grafisches und mehr. Ich kenne das bereits seit der Universität (Kurs als Vorbereitung für Numerik 0) und programmiere seit Jahren ab und zu Mini-Anwendungen in Qt bspw. zum Arbeiten mit Vektoren in Mathematik – bisher unsichtbar und für mich selbst. Jetzt soll sich das ändern.

Qt bringt neben grafischen Elementen wie Layouts, Buttons und Tabellen auch viele Klassen wie Datenmodelle zur Verwaltung von Tabellen oder eine Anbindung an SQLite mit. Und letztlich ist so eine Notenverwaltung nur eine leicht klügere Datenbank. Zusätzlich können die Daten auch ohne meine Applikation ausgelesen werden (weil SQLite) und sind somit nicht gefangen in der Applikation.

Struktur

Da ich mit einer Datenbank als Grundlage arbeite, brauche ich eine Struktur. Die habe ich so gewählt:

    • Schüler/students: Namen, Kurs usw. - hier wird auch gespeichert, ob es Noten (1-6) oder Notenpunkte (0-15) sind

    • Noten/grades: Datum, Note, Schüler (zu der die Note jeweils gehört), Kommentar, Notenart (Klassenarbeit, mündliche Note, …)

        ◦ soll noch um allgemeine Notizen erweitert werden

    • Gewichtung: Jede Notenart bekommt pro Kurs eine Gewichtung für die „Endnote“

Die Kurse bekomme ich durch Filtrierung der Einträge der Schüler:innen. Man erstellt also einen neuen Kurs, indem man einen Schüler in dem Kurs erstellt. So gibt es auch keine „Phantomkurse“ (hoffentlich).

"Totschlag-Features"

Hinweis: Alle verwendeten Namen stammen aus einem Namensgenerator oder sind frei erfunden.

Dank der „freien Programmierbarkeit“ in C++ kann ich jetzt verschiedene Dinge tun, die eine Tabellenkalkulation nur mit Schmerzen kann und mir mein Leben sehr vereinfachen. Beispiel gefällig?

Import: Ich kann per Kurs-Import aus einer CSV-Datei direkt aus den Daten aus der Schulverwaltung meine Kurse befüllen.

Eindrucksnoten nach einer Unterrichtsstunde: per GUI wird mir der Kurs und daneben Buttons für die Noten angezeigt. Da kann ich jetzt ein mal den Kurs durchgehen und Eindrucksnoten verteilen. Habe ich einige davon gemacht, so weist mich das Programm darauf hin und ich mache daraus eine mündliche Note (das fehlt gerade noch wegen Bugs). Dank der Gewichtung kann ich Eindrucksnoten mit „0“ gewichten, sodass diese die Endnote nicht beeinflussen.

Praktisch: ich kann nun mit Schüler:innen die Einzelnoten besprechen. Denn es wird nur gesehen, was diese konkrete Person angeht. Alle anderen Noten sind nicht sichtbar und die Namen sind ja in diesem Kontext nicht geheim. Das erübrigt auch das „Nicht hinschauen, sonst siehst du die Noten der anderen“.

Ein Überblick über die Noten darf natürlich nicht fehlen. Selbstverständlich eingefärbt bei gefährdeten Schüler:innen. In diesem Beispiel geht es um die Oberstufe, d.h. alles unter 5 Notenpunkten ist gefährlich.

Bei Bedarf kann ich das auch als PDF exportieren und den Klassenleitungen einen Notenüberblick zu geben. Hier besteht allerdings noch Optimierungspotenzial – das ist aber alles reine Algorithmik und keine Zauberei.

Aber es ist weder ein fertiges Produkt, noch habe ich einen Auftraggeber im Nacken. Ich schreibe das Programm in erster Linie für mich. Beteiligungen, Fehlermeldungen und mehr sind gerne gesehen.

Fehlende Funktionen

Ganz dringend fehlt die Verwaltung von Klassenarbeiten. Dafür brauche ich aber ein paar Tage Ruhe (die habe ich erst im August, wenn Schulferien sind) und eine weitere Tabelle in der SQLite-Datenbank. Ebenfalls fehlt der Eintrag von Notizen und Abwesenheiten.

Ein großes Manko hat die Applikation (noch): Sie verschlüsselt nicht. Okay, das hat die Tabellenkalkulation vorher auch nicht gemacht, aber schön wäre es (und Passwörter auf den Dateien sind kein effektiver Schutz!). Leider fehlen mir dafür sowohl Wissen als auch Fertigkeiten. Vor allem scheitert es daran, eine sinnvolle, zukunftssichere Methode zu wählen. Wer sich beteiligen möchte: gerne! Somit speichere ich die SQLite-Datenbank wie die Notenlisten vorher in einem VeraCrypt-Container.

Und mit dem Namen "Discitat" bin ich immer unzufriedener. Da muss mal ein Brainstorming her mit meiner Tante (pensionierte Lehrkraft).

Praktisch wäre es natürlich, wenn die App mittels KDEs Kirigami-Framework auch auf mobilen Endgeräten laufen würde. Davon verstehe ich aber zu wenig und die auf Version 6 basierenden Frameworks in Debian stable rein zu friemeln erspare ich mir lieber aktuell. Ich bin (leider?) kein Informatiker.

Fazit

Es ist noch ein langer Weg, bis alles so ist, wie ich mir das wünsche. Aber bisher hilft es mir schon. Täglich die Kurse/Klasse durchgehen und schnell Eindrucksnoten verteilen hilft dabei, kontinuierlich Noten zu machen, was ein akkurateres Notenbild ermöglicht. Dazu die Einzelansicht – sehr praktisch.

Die App lässt sich speziell unter Linux als Flatpak am einfachsten kompilieren (dann ist es auch schnell und rückstandsfrei entfernt). Es ist rein mit C++ und Qt6 programmiert. Unter openSUSE reicht also bspw. das Pattern für Qt-Development. Es sind keine abstrusen Versionen oder speziellen Bibliotheken notwendig. Auch alle Icons werden mitgebracht, sollten sie im System fehlen.

(Anmerkung: Noten sind als "Messwert" pädagogisch ein großer Streitpunkt. Da ich aber an einer Schule arbeite und von mir Noten verlangt werden, mache ich diese. Schüler:innen sind das Konzept auch gewöhnt. Eine Diskussion über die Sinnhaftigkeit von Noten oder das Schulsystem an sich findet sicherlich einen passenderen Ort als die Kommentarspalte. Mir geht es hier um die technischen Anforderungen und meine Lösung dafür.)

Siehe: https://codeberg.org/Lerothas/Discitat

Tags

Schule, Noten, Lehrkräfte

Naja
Geschrieben von Naja am 23. Juli 2024 um 15:23

Sehr beeindruckend und ein interessanter Einblick. Ich wünsche dir viel Erfolg beim basteln.

Lempel wäre ein schöner Name. Das Original wird zwar mit ä geschrieben aber das wird zu kompliziert und Laempel sieht nicht so gut aus. https://www.wilhelm-busch.de/werke/max-und-moritz/alle-streiche/vierter-streich/

Adrian
Geschrieben von Adrian am 23. Juli 2024 um 18:31

Cooles Projekt

Manfred
Geschrieben von Manfred am 23. Juli 2024 um 19:01

Hallo, zum Thema SQLite. Da kann ich dir zum Einstig das Buch " Datenbanken, Relationale Datenbanken entwerfen und realisieren" isbn978-3-14-222492-3

Schau doch mal einfach in deiner Örtlichen Bücherei vorbei, dort gibt es das Buch Sicherlich noch. Mir hat es für meine kleinen Datenbanken und natürlich für den Einstig sehr geholfen.

HTH Gruß Manfred

Stefan Draxlbauer
Geschrieben von Stefan Draxlbauer am 25. Juli 2024 um 15:50

SQLite ist tatsächlich garnicht so das Problem, da mir da Qt sehr viel abnimmt. Bspw. kann ich einem QSqlTableModel einfach den Tabellen-Namen geben und dieses Objekt an ein QTableView weiterreichen: schon habe ich eine (bearbeitbare) Tabelle der SQLite-Daten.

kamome
Geschrieben von kamome am 23. Juli 2024 um 20:58

Klingt spannend! Seltsam, dass es da noch nichts zu geben scheint. Ich würde das vermutlich als Web-Anwendung umsetzen (auch lokal), aber klar, wenn Du mit C++ und Qt vertraut bist … Es können übrigens nicht alle Informatiker gut programmieren (und das ist auch OK so).

Stefan Draxlbauer
Geschrieben von Stefan Draxlbauer am 25. Juli 2024 um 15:52

Eine Webanwendung habe ich mir auch schon überlegt. Aber ich habe nur rudimentäre Kenntnisse von HTML und CSS, JavaScript verstehe ich absolut nicht. Und dann war es das auch schon. Daneben will ich nicht von jeder Lehrkraft verlangen, einen Server aufzusetzen.

Das wäre dann höchstens für die Schule interessant. Und da ist das praktische: Ich kann auch bspw. PostreSQL an Qt anbinden, sodass ich quasi nur das "Ziel" ändere und dann wäre es direkt mit Netzwerkverbindung.

Name
Geschrieben von Name am 23. Juli 2024 um 23:32

Tolles Projekt, bitte weiter darüber berichten. Da können sich noch viele eine Scheibe abschneiden und auch eine Menge lernen.

tuxnix
Geschrieben von tuxnix am 24. Juli 2024 um 03:21

Ja, diese Exel-Tabellen-Manie ist der reinste Graus. Die Anwendung sieht doch schon recht gelungen aus. Der Rest wird bestimmt auch klasse wenn mal die Ferien kommen. Falls du Mitstreiter beim Programmieren suchst, wäre es ratsam das Projekt auf z.B. https://codeberg.org/ zu stellen. Die Verschlüsselung der sqlite db solle wenn das Notebook verschlüsselt ist, eigentlich nur für den Daten-Transport relevant sein. Hierzu hab ich diesen Link gefunden: https://www.delftstack.com/de/howto/sqlite/sqlite-password/

Weiter so 15 Punke Herr Lehrer! Ich weiß Noten sind immer ungerecht ;)

Als Name für das Programm fällt mir spontan "Notabene" ein.

Wikiblödia dazu: Ein Notabene oder nota bene ist eine lateinische (und italienische) Floskel, die wörtlich „merke wohl“ bedeutet und mit „wohlgemerkt“ oder auch „übrigens“ übersetzt werden kann.[1] Sie ist zusammengesetzt aus dem Imperativ des lateinischen Verbs notare (hier mit der Bedeutung „bemerken“) und dem Adverb bene mit der Bedeutung „gut, wohl“.

Stefan Draxlbauer
Geschrieben von Stefan Draxlbauer am 25. Juli 2024 um 15:48

Das Projekt ist bereits auf Codeberg. Leider hat es der Link irgendwie nicht als Link in den Text geschafft. Muss ich eben korrigieren. Aber das hier wäre es:

https://codeberg.org/Lerothas/Discitat

Über Notabene habe ich auch schon nachgedacht. Danke für den Vorschlag.

Thoys
Geschrieben von Thoys am 24. Juli 2024 um 09:17

Hi,

als "Insider auf Metaebene" (verschlüssel ich das mal so) in BW und kann ich nur sagen, dass es mehr solcher Projekte bräuchte. Es gibt viele tolle freie Projekte. Aber bereits beim Elektronischen Tagebuch sieht es sehr dünn aus.

Es gibt ein paar Workarounds, die Lehrer benötigen und leider sind diese nicht in gänze von Freier Software abgedeckt. Normalerweise gibt es ja für fast alles eine FOSS Alternative, aber im Bildungsbereich fehlen einfach noch ganze Anwendungsbereiche. (Meine Aussage basiert auf wirklich viel Recherche, Praxiserfahrung und vielen Gesprächen mit ebensovielen Schulen).

Ich kann zwar nicht Programmieren, aber ich kann Kaffeekochen und Projekte leiten, falls jemand Lust hat sich mal zusammen zu setzen und zu schauen, wo diese Lücken sind und eventuell welche davon zu stopfen, sehr gerne.

Schönen Gruß

Stefan Draxlbauer
Geschrieben von Stefan Draxlbauer am 25. Juli 2024 um 15:58

Da kann ich leider nur zustimmen. Arbeite ja auch in BW. Immerhin haben wir mittlerweile NEO eingeführt, dass die ganzen Papier-Noten-Tabellen für die Zeugnisse erübrigt. Und für vieles gibt es ja bereits Möglichkeiten. Bspw. kann ich handschriftliche Notizen super mittels Xournal++ erledigen (dazu will einer meiner Kolumnen-Kollegen demnächst etwas schreiben, der da nämlich mitentwickelt). Aber wenig ist breit bekannt. Ich versuche es mal mit Discitat, um in erster Linie mir selbst das Leben zu erleichtern. :D

Im Rahmen des Freie-Software-Snack-Buffets habe ich LibreOffice vorstellt, und beim Open Education Day (Schweiz) habe ich Inkscape und LaTeX eingebracht. Sowas müsste man noch speziell für die Schule in BW/D machen.

https://digitalcourage.de/kinder-und-jugendliche/schulen/freie-software-snack-buffet

Ich stehe gerne für einen Austausch zur Verfügung. :)

Armin
Geschrieben von Armin am 24. Juli 2024 um 18:52

Als Projektname schlage ich an dieser Stelle Tamzarian vor, also den Geburtsnamen eines gewissen "Seymour Skinner" aus Springfield, ...der in Wirklichkeit Armenier zu sein scheint :)

Stefan Draxlbauer
Geschrieben von Stefan Draxlbauer am 25. Juli 2024 um 15:49

Das ist natürlich interessant. Ich nehme es in meine Liste auf. Danke!

Robert
Geschrieben von Robert am 28. Juli 2024 um 16:14

Der Name „Nota Bene“ bzw. „NotaBene“ ist bereits „belegt“, mindestens von einer Textverarbeitung und einer Notizblock-App.

Könntest stattdessen ja auch einfach den (Vor)Namen deiner Tante verwenden, wenn sie damit einverstanden ist.