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
GNU/Linux.ch ist ein Community-Projekt. Bei uns kannst du nicht nur mitlesen, sondern auch selbst aktiv werden. Wir freuen uns, wenn du mit uns über die Artikel in unseren Chat-Gruppen oder im Fediverse diskutierst. Auch du selbst kannst Autor werden. Reiche uns deinen Artikelvorschlag über das Formular auf unserer Webseite ein.