Campusmanagement

Campusmanagement an der FAU

Inhalt

VV – Studentensicht: Suchen von Veranstaltungen

Neben der Ansicht für die anmeldbaren Veranstaltungen seines Studiengangs haben Studenten auch die Möglichkeit, sich alle Veranstaltungen der Universität auflisten zu lassen. Diese Liste wurde notwendig, da sich nur für die neuen Bachelor- und Masterstudiengänge ab WS 2007/08 (inkl. dem neuen Lehramt) studiengangsspezifische Veranstaltungslisten erzeugen lassen. Damit Studenten nicht eine lange Liste von Veranstaltungen durchsuchen müssen, bieten wir mehrere Sortierfunktionalitäten an.
Zum Einen kann der Student aus einer alphabetischen Liste einen Buchstaben auswählen und bekommt dann alle Veranstaltungen angezeigt, die mit diesem Buchstaben beginnen.
Zum Anderen kann der Student einen Suchbegriff eingeben und bekommt alle Veranstaltungen passend zu seinem Suchbegriff angezeigt. Hierbei haben wir uns für eine look-ahead tipp-basierte Suche entschieden, d.h. dass nach jeder Eingabe eines Buchstabens die Suche durchgeführt wird und dann die Ergebnisse aktualisiert werden. Hierbei wird nach der Eingabe ein OnKeyUp-Event ausgelöst, welches einen AJAX Call an den Webserver schickt und dort zu einer Suche nach dem bisher eingegebenen Begriff führt. Nachdem das Ergebnis vorliegt, sendet der Server das Ergebnis an den Client und dieser stellt es dar.
Da für diese Suche Javascript aktiviert sein muss, bieten wir alternativ auch eine Suche ohne Javascript an. In diesem Falle wird ebenfalls der Suchbegriff eingegeben, für die Anzeige des Ergebnisses muss dann allerdings der „Suchen“-Knopf benutzt werden.

Sneak Preview: Veranstaltungsverwaltung-Frontend

Der Starttermin der Veranstaltungsverwaltung (VV) rückt näher und daher wird es Zeit für einen ersten Einblick. Die VV wird als Modul in mein campus integriert und soll somit das gleiche „Look and Feel“ haben. Da mein campus für die Präsentationsschicht Velocity verwendet und wir für die VV das Framework Tapestry nutzen, wurde als erstes das mein campus Layout in einem eigenen Modul für die VV nachgebaut. Dieses wird dann auf jeder VV-Seite eingebunden und sorgt für das bekannte Aussehen.
Danach wurden die Funktionen für Dozenten-Sicht implementiert. Die Auswahl einer Veranstaltung erfolgt, wie z.B. bei der Notenverbuchung, aus einer nach Semestern sortierten Liste. Die folgenden Funktionen werden Dozenten beim Start der VV zur Verfügung stehen:

  • Teilnehmer für eine Veranstaltung anmelden
  • Teilnehmer aus einer Veranstaltung löschen
  • Teilnehmer benachrichtigen
  • Teilnehmer zwischen Warteliste und Teilnehmerliste verschieben
  • Teilnehmer von einem Termin einer Veranstaltung in einen anderen Termin verschieben

Der Eingangsbereich der Studenten-Sicht ist in zwei Bereiche gegliedert. Im oberen Bereich sind alle Veranstaltungen aufgelistet, für die der Student bereits angemeldet ist. Direkt in dieser Übersicht hat er die Möglichkeit sich von einer Veranstaltung wieder abzumelden. Weiterhin sieht er seinen Anmeldestatus, „Bestätigt“ oder „auf Warteliste“ (incl. Wartelistenplatz). Sollte es für diese Veranstaltung eine StudOn-Resource geben, so wird ein Link auf diese angezeigt. Zusätzlich zu diesem Link ist geplant, bestätigte Studenten per Webservice auch bei StudOn anzumelden.
Unter seinen angemeldeten Veranstaltungen findet er alle anmeldbaren Veranstaltungen seines Studienganges. Hier finden sich zusätzlich noch Informationen über den Status der Veranstaltung: „anmeldbar“, „noch nicht anmeldbar“ oder „Anmeldezeitraum vorüber“ sowie die bisherige Auslastung des Kurses. Weiterhin können sich Studenten noch alle anmeldbaren Veranstaltungen der Universität anzeigen lassen, hier gezielt Veranstaltungen suchen und sich dann für diese anmelden.

Anmeldeheuristiken

In der Veranstaltungsverwaltung wird es zwei Arten von Heuristiken geben. Zum einen Heuristiken bei denen der Teilnehmer direkt für eine Veranstaltung oder einen Termin angemeldet wird und zum anderen Heuristiken bei denen alle Teilnehmer erstmal auf eine Warteliste kommen und die vorhandenen Plätze zu einem Zeitpunkt, anhand bestimmter Kriterien verteilt werden.
Für den Start der Veranstaltungsverwaltung sind erstmal die folgenden Heuristiken geplant. Bei diesen beiden Heuristiken werden die Anmeldungen direkt durchgeführt.

  • First-Come-First-Served (FCFS)
  • Automatische Gleichverteilung (Round-Robin)

First-Come-First-Served: Bei dieser Heuristik kann der Teilnehmer einen konkreten Termin der Veranstaltung wählen und sich für diesen anmelden. Dabei wird er sofort auf der Teilnehmerliste eingetragen, außer der gewählte Termin ist bereits belegt. In diesem Fall erscheint ein Warnhinweis mit der Option sich für diesen Termin auf eine Warteliste einzutragen.
Automatische Gleichverteilung: Hier werden die Anmeldungen nach Eingang direkt auf die einzelnen Termine verteilt. Dabei wird zunächst jeder Kurs mit einem Teilnehmer befüllt, dann mit einem zweiten und so weiter, bis alle Kurse voll sind. Weitere Anmeldungen kommen auf eine Warteliste für die Veranstaltung.
 
In zukünftigen Versionen der Veranstaltungsverwaltung werden dann weitere Heuristiken zur Verfügung stehen. Unter anderen werden das die Folgenden sein.
Losverfahren: Beim Losverfahren werden alle Anmeldungen gesammelt und zu einem festen Zeitpunkt werden aus diesen die Kursteilnehmer per Zufall ermittelt und dann verteilt. Auch hier gibt es die Option die nichtberücksichtigten Anmeldungen auf einer Warteliste zu hinterlegen.
Equal Balancing: Die Anmeldung bereits stark ausgelasteter Termine wird solange geschlossen, bis weniger ausgelastete Termine „aufgeholt“ haben.
Präferenzauswahl: Die Anmeldungen werden gesammelt und bei jeder Anmeldung sind drei Termine mit entsprechender Präferenz (1-3) anzugeben. Nach Anmeldeschluss versucht die Heuristik eine Verteilung zu finden, so dass möglichst viele Erst- und Zweitpräferenzen berücksichtigt werden.

Komponenten der Veranstaltungsverwaltung

Die Veranstaltungsverwaltung wurde von uns in zwei Komponenten aufgeteilt. Die Komponente vv-core ist für das Backend der Veranstaltungsverwaltung zuständig und die Komponente vv-web für das Frontend. Neben diesen beiden Komponenten gibt es noch weitere, die für bestimmte Aufgaben innerhalb der Veranstaltungsverwaltung zuständig sind.
Die Aufgaben der Backendkomponente vv-core umfassen hauptsächlich die folgenden Bereiche:

  • Import aller anmeldbaren Veranstaltungen und ihrer Kurse von UnivIS in die Veranstaltungsverwaltung.
  • Anbindung an die Datenbanken der Veranstaltungsverwaltung und von mein campus. Aus der Datenbank von mein campus bezieht die Veranstaltungsverwaltung alle Daten die Dozenten und Studenten betreffen. In der eigenen Datenbank werden die von UnivIS importierten Veranstaltungen und Kurse sowie ihre „Teilnehmer“ gespeichert.
  • Entwicklung der Heuristiken für die Anmeldung. Mit dem Start der VV kommen mindestens die beiden Heuristiken First-Come-First Served und die Gleichverteilung in Kurse.
  • Verwaltungsaufgaben, wie z.B. dem Überprüfen von Nutzerrechten für geplante Aktionen.

Im Frontend vv-web laufen alle Fäden zusammen. Alle anderen Komponenten, auch der vv-core, werden hier eingebunden um ihre Funktionalitäten zu nutzen. Weiterhin werden in dieser Komponente alle Webseiten der Veranstaltungsverwaltung generiert. Um z.B. die Übersichtsseite aller angemeldeten Teilnehmer einer Veranstaltung zu generieren, werden alle benötigten Daten aus dem vv-core abgerufen. Die Präsentation, z.B. in Tabellenform, erfolgt mittels vorgefertigter Elemente des vv-webs. Das aus mein campus bekannte Layout, wurde für die Veranstaltungsverwaltung in eine eigene Komponente ausgegliedert und wird auf jeder erzeugten Webseite eingebunden.

Lebenszyklus einer Veranstaltung

In der Veranstaltungsverwaltung durchlaufen Veranstaltungen und Kurse ein Lebenszyklus-Modell. Dieses ist nötig um bestimmten Nutzergruppen in den unterschiedlichen Phasen des Modells den Zugriff auf Aktionen zu ermöglichen oder diesen zu verweigern. Diese Phasen des Lebenzyklus wurden wie folgt eingeteilt:
LifeCycleState = {PUBLISHED, REGISTRATION_PERIOD, DISTRIBUTION_PERIOD, RUNNING_PERIOD, FINISHED}
PUBLISHED: Eine Veranstaltung die von dem Dozenten ins UnivIS eingestellt und in die Veranstaltungsverwaltung importiert wurde. Wärend dieser Phase sieht der Student die Veranstaltung, mit allen Informationen, kann aber noch keine Aktionen tätigen.
Mit Beginn des Anmeldezeitraum ändert sich der Lebenszyklus automatisch zu REGISTRATION_PERIOD. Studenten können sich nun anmelden und Dozenten erhalten einen Überblick wie stark die Veranstaltung ausgelastet ist.
Nach dem Ende des Anmeldezeitraums wird die Phase DISTRIBUTION_PERIOD aktiv. In dieser Phase werden die Teilnehmer mittels der gewählten Heuristik automatisch der Veranstaltung oder, falls die Veranstaltung Kurse hat, einem Kurs zugeordnet. Nach dieser Zuordnung geht eine Email an alle angemeldeten Studenten mit ihrem Status.
Während der Durchführung der Veranstaltung befindet sich diese in der Phase RUNNING_PERIOD. Da sich Studenten evtl. für unterschiedliche Veranstaltungen angemeldet haben und dadurch Terminüberschneidungen möglich sind, können sich Studenten in dieser Phase noch abmelden. Dozenten können dann den freien Platz durch einen Nachrücker von der Warteliste auffüllen.
Nach Beendigung der Veranstaltung bekommt die Veranstaltung die Phase FINISHED. Alle Aktionen, mit Ausnahme der Benachrichtigungsfunktion, sind nun für die verschiedenen Benutzergruppen gesperrt. Dozenten können sich zusätzlich noch die Teilnehmerlisten ausdrucken.

Verstärkung des CIT Teams

Hallo,
mein Name ist Sven Marschke und ich bin einer der beiden Neuen, die am 15. Januar bei CIT angefangen haben. Gebürtig komme ich aus Nordhessen, bin 31 Jahre alt und habe Informatik an der Universität Paderborn studiert. Ich bin als Softwareentwickler bei CIT eingestellt worden und arbeite mich zur Zeit ein. Nach der Einarbeitung werde ich dann mit Peter Reiß zusammen die Veranstaltungsverwaltung entwickeln. Hier werde ich mich im besonderen um das Design und die Funktionalität der Oberfläche kümmern. Neben der Wohnungssuche und dem Eingewöhnen im schönen Erlangen verbringe ich meine Freizeit mit dem Lesen von Büchern (SciFi, Fantasy, …) und Fachliteratur, weiterhin gehe ich noch gerne ins Kino.