Java-basiertes Tutoring-System zu dem Thema „Leitungskodierung in Rechnernetzen“ Studienarbeit vorgelegt am Lehrstuhl für Praktische Informatik IV Prof. Dr. W. Effelsberg Universität Mannheim Betreuer: Dipl.-Ing. Ref. jur. Hans Christian Liebig im Juni 2003 von Sasan Safai aus Freiburg i.Breisgau II Inhaltsverzeichnis Abbildungsverzeichnis 1 2 3 4 Einleitung IV 1 1.1 Einführung 1 1.2 Struktur 1 1.3 Ziel 2 Multimediales Lernen 3 2.1 Lernen 3 2.2 Lerntheorien 4 2.2.1 Konstruktivismus 4 2.2.2 Kognitivismus 5 2.2.3 Behaviorismus 5 Leitungskodierung 6 3.1 Physikalische Grundlagen 6 3.2 Einordnung in die Schichtenarchitektur 7 3.3 Bit- und Baudrate als Kennzahl für die Effizienz 9 3.4 Eigenschaften und Algorithmen von Leitungskodes 10 3.4.1 non-return-to-zero-level (NRZ-L) 11 3.4.2 return to zero (RZ) 11 3.4.3 non-return-to-zero-mark, und -space (NRZ-M,NRZ-S) 12 3.4.4 biphase level (Manchester Code) 12 3.4.5 biphase-mark und biphase-space 13 3.4.6 Differential Manchester 13 Das Applet 15 4.1 Der Aufgabentyp „generate“ 16 4.2 Der Aufgabentyp „transform“ 17 III 4.3 5 Die Benutzerführung 17 4.3.1 Aufgabenauswahl. 17 4.3.2 Die Zeichnungsbox 18 4.3.3 Weitere Bedienelemente 19 4.4 Instruktionsdesign 20 4.6 Implementierung 21 4.6.1 Entwicklungsumgebung 22 4.6.2 Prozess 22 4.6.3 Struktur 23 4.6.4 Qualität 26 Zusammenfassung und Ausblick 27 5.1 Zusammenfassung 27 5.2 Ausblick 28 Literaturverzeichnis Anhang VI VIII IV Abbildungsverzeichnis Abbildung 1:Lernumgebung CATS 2 Abbildung 2:Zyklus Wissenserwerb 4 Abbildung 3:Lerntheorien und resultierende Lernprogramme 6 Abbildung 4Modulationstechniken 7 Abbildung 5 ISO/OSI Referenzmodell 8 Abbildung 6Bitrate/Baudrate 9 Abbildung 7LeitungskodierungenÜbersicht 14 Abbildung 8: GUI 16 Abbildung 9 zeichen und löschen 19 Abbildung 10:Arbeitsablauf eines Instruktionsdesigns 20 Abbildung 11 Wasserfallmodell nach Boehm 23 Abbildung 12: Uml Klassendiagramm 24 Abbildung 13: Kollaborationsdiagramm: 26 1 1 Einleitung 1.1 Einführung E-Learning galt in den letzen Jahren als ein hochprofitables Geschäft. Der Zwang in der heutigen Gesellschaft, besonders in der Berufswelt, nach ständiger Weiterbildung führte zu einem stark wachsenden Bedarf in diesem Bereich. Besonders reizvoll erschien die Möglichkeit sich Wissen anzueignen ohne an dem Institut räumlich präsent zu sein. Auch wenn jetzt Ernüchterung eingetreten ist und etliche Cyber-unis in den USA wieder ihre Pforten geschlossen haben, ist es immer noch ein stark wachsender Markt. Wie bei vielen technischen und sozialen Entwicklungen haben die USA einen zeitliche Vorsprung. Die University of Phoenix1 , die sich auf Erwerbstätige in lukrativen Berufsfeldern spezialisiert hat, zählt heute bereits 67000 Studenten, bzw. Kunden. Sie wird von der newsweek2 in einer Rangliste mit den 100 innovativsten und rentabelsten Unternehmen der USA geführt. Auch in Deutschland entwickeln sich Angebote, die Freie Universität Berlin hat einen neuen Fernstudiengang3 gestartet der mit ein wenigen Präsensphasen auskommt. Die Fern-Universität Hagen4 wurde 1974 gegründet und gilt als älteste Institution in diesem Bereich, auch sind ihre Abschlüsse alle staatlich anerkannt. 1.2 Struktur Diese Studienarbeit ist eingebetet in eine Lernumgebung5 CATS (Communication and Tutoring System) der Universität Mannheim , das vom Lehrstuhl für Praktische 1 University of Phoenix : http://www.phoenix.edu 2 Newsweek : http// www.newsweek.com 3 Freie Universität Berlin : http://www.oei.fu-berlin.de/oei/fernstudien.htm 4 Universität Hagen : www.fernuni-hagen.de 5 CATS-Server : http://herodot.informatik.uni-mannheim.de 2 Informatik IV6 entwickelt wurde. Hierbei handelt es sich um ein web-basierendes System. Es werden eine Reihe von Lern-Programmen, die Bereiche aus dem Fach Informatik insbesondere Rechnernetze und Multimediatechnik abdecken, angeboten. Beide Fächer werden an der Universität in Form von Präsenzveranstaltungen gehalten. Darüber hinaus können Lehrveranstaltungen per Videostream verfolgt werden. Die Übungsaufgaben sind interaktiv und haben eine Schnittstelle zu einem Betreuer, d.h. dieser kann durch ein Messaging-System Hilfestellung geben. Des weiteren gibt es eine Zentrale Datenbank, die die Ergebnisse speichert und so dem Studenten ein Feedback über seinen Lernerfolg gibt. CATS Web-Server mit Übungs- Database VideostreamServer applets User Abbildung 1:Lernumgebung CATS 1.3 Ziel Das zu entwickelnde Lernprogramm behandelt das Thema Leitungskodierung in Rechnernetzen. Die formalen beschriebenen Algorithmen in Lehrbüchern und Vorlesungen sollen auf einem möglichst interessanten Weg präsentiert werden. Am ehesten gelingt dies durch eine Visualisierung der Kodierungen. Der Benutzer soll nicht überansprucht werden, dies wird durch ein adaptives Konzept verhindert. Ein höheres Schwierigkeitsniveau kann erst erreicht werden, wenn die einfacheren Aufgaben gelöst wurden. Damit soll bezweckt werden, dass der Student einen reellen Lernerfolg hat und 6 Lehrstuhl Praktische Informatik IV: http://www.informatik.uni-mannheim.de/pi4 3 sich nicht einfach durchklickt. Als Ergebnis dieser Arbeit soll ein Tool stehen, dass Studenten gerne benutzen, sowie ihnen eine wirkliche Hilfe im Erlernen von Leitungskodes ist. 2 Multimediales Lernen 2.1 Lernen Lernen ist nach allgemeinem Verständnis das Aneignen von Kenntnissen und Fähigkeiten laut einer Definition von Microsofts Lexikon Encarta7. Der Prozess des Lernens in einem Verhältnis Autor/Lehrenden beginnt mit der Festlegung der Lernziele. Danach wird muss das Wissen vom Autor erworben werden, bzw. sollte bereits vorhanden sein. Der Lehrstoff sollte geeignet aufbereitet werden und den Lernenden präsentiert werden. Im universitären Betrieb findet das in der Regel in Form von Vorlesungen und Büchern statt. Die Informationen müssen von den Lernenden aufgenommen werden und durch Übung und Wiederholung längerfristig gespeichert werden. Letztendlich erfolgt eine Wissenüberprüfung, um den Lernerfolg festzustellen, in der Regel geschieht dies durch Test. 7 Microsoft Encarta Enzyklopädie: http://encarta.msn.de/ 4 Festlegung der Wissensüberprüfung Lernziele Wissenserhalt idealisierter Wissenserwerb Wissensvermitt (Autor) lungsprozeß Wissensaufnahme Wissensaufber Wissensvermittlung eitung Abbildung 2:Zyklus Wissenserwerb (Quelle, Steinmetz,Multimediatechnologie,3.Aufl.Springer 2000,S.815) 2.2 8 Lerntheorien Wie das Lernen eines Menschen von bestimmten Verhaltensweisen oder Informationen stattfindet , also der eigentliche Wissenserwerb, ist bis heute unverstanden. Das Lernen ist Thema vieler Forschungsbereiche , wie z.B. Medizin, Psychologie, Pädagogik aber auch Informatik bzw. Kybernetik. Es haben sich drei Entwicklungsrichtungen in der Psychologie von Lerntheorien durchgesetzt, die kurz vorgestellt werden. 2.2.1 Konstruktivismus Der Konstruktivismus bezeichnet Lernen als Aufbau von Erfahrungen. Diese werden gespeichert mit anderen verknüpft und führen so zu neuen Erkenntnissen . Das Wissen muss möglichst authentisch zu der realen Lebenssituation präsentiert werden9, abstrakte Symbole führen zu keinem Erfolg. Lernprogramme die dieses Konzept verfolgen, müssen interaktiv sein. Da die meisten Wissensgebiete komplex sind, haben diese 99 Vgl. Schulmeister, R., Grundlagen hypermedialer Lernsysteme –Theorie, Didaktik, Design, 2002, S. 74 5 Programme keine sequentielle Struktur. Es sind Abbildungen der realen Welt, also Simulationen10. 2.2.2 Kognitivismus „Kognitivisten untersuchen psychische Prozesse , wie Wahrnehmung , Problemlösen durch Einsicht oder Informationsverarbeitung, die nicht direkt beobachtbar sind“ laut Steinmetz11. Programme die diese Theorie verfolgen, sind meist tutorielle Programme bzw. Simulationen. Das Lernen soll in diesem Fall flexibel gestaltet werden, der Tutor, in Form eines Menschen oder Computers, soll den Lernprozess unterstützen. Dies geschieht durch Tips oder Hilfestellungen bei der Lösung eines Problems. Besonders betont wird dieser Aspekt bei dem Konzept „Cognitive Apprenticeship“12[ .Hierbei wird das Meister-Lerhring-Modell eingeführt. Der Meister hilft (coached) den Lehring., wobei diese Aktivität, mit wachsendem Lernerfolg. langsam zurückgenommen wird13 (fading). Auf diesem Modell basieren adaptive Lernprozesse und intelligente Lernsysteme. 2.2.3 Behaviorismus Bei diesem Entwurf wird das Lernen an sich als Black-Box angesehen, da der eigentliche Lernprozess, wie bereits erwähnt, der Wissenschaft immer noch verschlossen ist. Das Lernen wird somit als Reiz-Reaktionskette gesehen. Grundlagen dieser Theorie legte Ivan P. Pawlow ,mit seinem Speichelflussexperiment mit Hunden. Nach dieser Lernmethode können nur einfache Zusammenhänge vermittelt werden, komplexere Methoden müssen gegebenenfalls in kleinere zerstückelt werden. Die Funktion des Computers bei behavioristischen Lernprogrammen ist klar definiert. Der Computer entscheidet welche Aufgaben bearbeitet werden sollen. Als Feedback wird nur mitgeteilt, ob die Aufgabe zufriedenstellend gelöst wurde oder nicht. Einfache Übungsprogramme gehen nach diesem Konzept vor. 10 Steinmetz,R., Multimedia-Technologie – Grundlagen, Komponenten und Systeme, 2000, S. 821 11 Zitat: Steinmetz,R., Multimedia-Technologie – Grundlagen, Komponenten und Systeme, 2000, S. 821 12 Vgl. collins/brown et al(1989); Brown/collins et al (1991)]. Vgl. Schulmeister, R., Grundlagen hypermedialer Lernsysteme –Theorie, Didaktik, Design, 2002, S. 81 13 6 Lern- und Wissenspsychologie Behaviorismus Kognitive Psychologie Konstruktivismus Computer Aided Instruction, ComputerBased “drill&practice”-Programme IntelligenteTutorensysteme Training, Simulationen, Mikrowelten Abbildung 3:Lerntheorien und resultierende Lernprogramme 3 Leitungskodierung 3.1 Physikalische Grundlagen Um Informationen über ein physikalisches Medium zu übertragen müssen diese an die physikalischen Eigenschaften des Mediums angepasst werden.. Bei Computernetzen wird also ein diskreter Wert in einen analogen umgewandelt. Mann nennt diesen Prozess auch Modulation14. Als Träger wird in der Regel ein sinusförmiges Signal gewählt, dass entsprechend dem Codealphabet in Frequenz , Amplitude oder Dauer variiert werden kann. Analog zu der Variation werden die Verfahren dann auch Amplituden-,Frequenz-,Phasenmodulation genannt15. Dieses analoge Signal wird zur Übertragung genutzt. Durch äußere Einflüsse auf das Medium kann es zu Störungen kommen, wie z.b. Verzerrungen, Rauschen oder Echos. Dem ist nur entgegenzuwirken durch entsprechende Schaltungen aus der Nachrichtentechnik und soll nicht weiter vertieft werden. Vielmehr soll der Fokus auf die Übersetzung des Codealphabets in eine 14 Vgl. Effelsberg, Prof. Dr. Wolfgang : Vorlesungsunterlagen zur Vorlesung Rechnernetze des Lehrstuhls Praktische Informatik IV der Universität Mannheim, 2002 15 Vgl. Tanenbaum, A., Computernetzwerke, 1990, S. 87 7 zwei bis dreistufige Pulsfolge gesetzt werden, der sogenannten Basisbandübertragung oder im angelsächsischen Raum auch als auch Leitungskodierung bezeichnet16. Abbildung 4Modulationstechniken 3.2 Einordnung in die Schichtenarchitektur Aktuelle Computer-Netzwerke haben ein hohes Maß an Komplexität erreicht. Um dieWeiterentwicklung zu erleichtern und die Modularität nicht einzuschränken wurde 1984 das "Reference Model for Open Systems Interconnection" (OSI-Modell) veröffentlicht. Dieses Model teilt die Funktionalität eines Netzwerkes in 7 Ebenen bzw. Schichten ein. Jede Schicht bietet Dienstzugangspunkte an und hat die Aufgabe der darüber liegenden Schicht Dienste bereit zu stellen. Folgende Abbildung zeigt einen Überblick über diese 7 Schichten. 16 Vgl. Kauffels,F.,Lokale Netze , 2000,S.165 8 Abbildung 5 ISO/OSI Referenzmodell Im folgenden werden kurz die Funktionalitäten der einzelnen Schichten erwähnt 17. Die höchste Ebene, die Anwendungsschicht (application layer), dient den jeweiligen Applikationen als einzige Zugriffsmöglichkeit auf die Datenkommunikation. Sie enthält eine Vielzahl von Protokollen , um z.B. unterschiedliche Teilnehmer eines Netzwerkes miteinander zu verbinden, z.B. in dieser Schicht werden z.B. komplexe Dienste wie die Verzeichnisfreigabe oder Dateitransfer Darstellungsschicht (presentation layer) (filetransfer-protokol) übernimmt die angeboten.18 Aufgabe Die abstrakte Datenstrukturen in ein für den Computer lokal lesbares Format zu konvertieren. Sie basiert auf der Kommunikationssteuerungsschicht oder auch Sitzungsschicht (session layer), welche das Zusammenkommen mehrer Anwender an verschieden Maschinen und das Synchronisieren an der Kommunikation beteiligten Prozesse ermöglicht. Die Transportschicht (transport layer) transportiert Daten von einem Computer zu einem anderen (Ende-zu-Ende-Datenaustausch). Sie übernimmt dabei Daten von der Sitzungsschicht und zerstückelt sie in kleine Pakete. Das Verlangen nach einem hohem Datendurchsatz kann sogar zu dem Aufbau mehrerer Verbindungen zu dem selben Teilnehmer führen19. Gesteuert wird sie von der Vermittlungsschicht (network layer), indem die Paketleitwege zum Ziel vorgegeben werden. Die Sicherungsschicht (data link 18 Vgl. W. Schiffmann,R.Schmitz,Technische Informatik 2, 2002,S.225 19 Vgl. W. Schiffmann,R.Schmitz,Technische Informatik 2, 2002,s.225 9 layer) teilt die Rohdaten in Datenübertragungsrahmen ein , die sequentiell übertragen werden und zur Sicherung dienen.. Die unterste Schicht ist Bitübertragungsschicht (physical layer) ,hier muss gewährleistet werden, dass ein gesendetes Bit mit der Wertigkeit 1 auch als ein Bit mit dem Wert 1 empfangen wird20. Neben mechanischen, prozeduralen und elektrischen Schnittstellen, wird hier auch festgelegt, inwiefern die Rohdaten in elektrische Signale kodiert werden. Zu diesem Zweck gibt eine hohe Anzahl von Algorithmen, die Schwerpunkt dieser Arbeit sind und mit dem Applet trainiert werden sollen. 3.3 Bit- und Baudrate als Kennzahl für die Effizienz Um Informationen zu übertragen, muss der binäre Wert in eine Spannung(-sänderung) transformiert werden. Die Leistungsfähigkeit einer Datenübertragung kann in Bitrate oder auch Baudrate angegeben werden. Diese Begriffe werden of fälschlicherweise als Synonym behandelt, dies ist jedoch nicht richtig21. Folgendes Beispiel soll uns dieses verdeutlichen. Wir gehen davon aus, dass wir vier anstatt nur zwei Signale über eine Leitung schicken können. Damit ist es möglich pro Signal zwei Datenbits zu kodieren (00,01,10,11). Ein Empfänger ist nun in der Lage 1000 Signale pro Sekunde zu empfangen. Wir haben also eine Rate von 1000 Baud/s aber 2000 Bit/s. Abbildung 6Bitrate/Baudrate 20 Vgl. Tanenbaum, A., Computernetzwerke, 1990, S. 71 21 Vgl.Larry L.Peterson, Bruce S. Davie,Computernetze, 2000,S.78 10 Es gilt folgende formale Definition für die Bitrate Vb22: Vb = ln n / T Wobei n für die Anzahl der verschiedenen diskreten Spannungszuständen steht und T ein Maß für die Schrittdauer ist. Als Schrittdauer wird der minimale zeitliche Abstand zwischen zwei verschiedenen Spannungspegeln bezeichnet. Ein Codeelement ist die kleinste Einheit eines Leitungssignals, es kann aus einem oder mehreren Schritten bestehen. Da der Aufwand zur Unterscheidung der verschiedenen Kennzustände bei wachsenden n rapide ansteigt, bestehen die meisten Kodierung nur aus 2 verschiedenen Spannungspegeln. In diesem Fall und nur in diesem entspricht die Baudrate dem Kehrwert der Schrittdauer. Als Takt wird ein Signal bezeichnet, dass von low auf high wechselt bzw. umgekehrt. Ein low/high –Paar wird als Taktzyklus definiert23. 3.4 Eigenschaften und Algorithmen von Leitungskodes Leitungskodierungen haben noch andere Eigenschaften an denen eine Klassifizierung möglich ist. Ein sehr wichtiger Punkt ist die Gleichstromfreiheit, sie ist dann erforderlich, wenn die Übertragungsleitung von der den Stationen galvanisch entkoppelt werden soll24.Ein anderes wichtiges Merkmal ist die Taktgewinnung, bei machen Leitungscodes muss zusätzlich eine Synchronisation durchgeführt werden, was einen overhead in Form von zusätzlichen Datenleitungen oder Verwürflern bedeutet. Selbsttaktende Leitungscodes beinhalten sowohl Information als auch Taktinformation in einem Signal und machen so eine zusätzliche Synchronisation überflüssig. Im folgenden werden nun die wichtigsten binaren Leitungscodes und deren Eigenschaften vorgestellt. 22 23 24 Vgl. W. Schiffmann,R.Schmitz,Technische Informatik 2, 2002,S.226 Vgl. Larry L.Peterson, Bruce S. Davie,Computernetze,2000,A.80 Vgl. W. Schiffmann,R.Schmitz,Technische Informatik 2, 2002,S.225 11 3.4.1 non-return-to-zero-level (NRZ-L) Hierbei handelt es sich um die einfachste Kodierungsform. Während der Schrittdauer T wird ein hoher Pegel für den Bitwert 1 und ein niedriger Pegel für den Bitwert 0 definiert. Bei langen 0 oder 1 Bitfolgen bleibt das Signal auf einem konstanten Level. Es ist also weder gleichstromfrei noch selbsttaktend und bringt die damit verbundenen Nachteile. In der Praxis wird das erste Phänomen als Baseline-Wandler25 bezeichnet. Der Empfänger benutzt den Durchschnitt der zuletzt empfangenen Signale, um zu erkennen, ob ein Signal high oder low ist. Werden nun eine Reihe von 1 oder 0 gesendet führt das zu einer Verschiebung des Durchschnitts und es wird schwieriger eine signifikante Änderung des Signal festzustellen. Ein zweites Problem ist die Taktgewinnung. Da keine zusätzliche Datenleitungen für die Synchronisation des Taktes reserviert werden (overhead) muss dies der Empfänger unabgängig vom Sender tun. Bei einer Signaländerung von 0 auf 1 oder 1 auf 0 ist Empfänger in der Lage eine Taktzyklusgrenze zu erkennen und kann sich neu selbstsynchronisieren. Wenn nun aber lange konstante Signalpegel herrschen , findet dieser Prozess nicht statt. Dies führt auf Dauer in zeitlich verzögerte oder beschleunigte Taktzyklen seitens des Empfängers, die in Fehlern beim Dekodieren resultieren. Auf Grund dieser Nachteile ist dieser Code für die Datenfernübertragung nicht geeignet, er findet Verwendung in lokalen Schaltungen mit logischen Bausteinen26 3.4.2 return to zero (RZ) Die Return to Zero Kodierung ist eng verwandt mit dem NRZ. Ein Bit mit Wertigkeit 1 wird mit einem Rechteckimpuls übertragen. Dieser Impuls hat die halbe Schrittweite. Es gibt zwei Modifikationen dieser Kodierung, eine polare und eine unpolare Variante. In dem Übungsapplet wird die unpolare Variante abgeprüft, bei der die Amplitude nicht den negativen Spannungsbereich betreten kann. Bei Kodierungsformen haben die gleichen Nachteile wie NRZ, das heißt sie sind nicht gleichstromfrei, auch wenn das Base-Line-Wandler Problem durch die halbe Schrittweise etwas abgeschwächt wird. 25 26 Vgl. Larry L.Peterson, Bruce S. Davie,Computernetze,2000,S.79 Vgl. Vorlesungsunterlagen zur Vorlesung Rechnernetze der Fernuniversität Hagen, 1999 12 Auch ist dieser Code nur zum Teil selbsttaktend , nämlich dann wenn ein Bit mit dem Wert 1 übertragen wird27. .Bei einer Folgen von 0 treten allerdings die gleichen Probleme wie bei NRZ auf, deswegen wird er nur selten verwendet28 . 3.4.3 non-return-to-zero-mark, und -space (NRZ-M,NRZ-S) Da es für eine fehlerfreie Datenübertragung notwendig ist, dass die beiden Kommunikationsteilnehmer synchron arbeiten, wurden diese beiden Leitungskodes entwickelt. Sie sind die eine differentielle Version des bereits erwähnten NRZ. Hier werden nun nicht mehr absolute Werte kodiert sondern nur noch die Änderungen eines Bitwertes, Mark steht für 1 und Space für die 0. D.h. im Falle vom NRZ-M wird der Bitwert 1 mit einem Spannungswechsel der Amplitude kodiert. Das Signal wechselt von high auf low, bzw. von low nach high. Bei einem Bit mit der Wertigkeit 0 bleibt das Signal konstant (high oder low). Der NRZ-S funktioniert genauso, nur dass der Spannungswechsel bei dem Bitwert 0 eintritt. Das Problem mit aufeinanderfolgenden 1 wird bei der NRZ-M Kodierung gelöst, da ja jede 1 zu einem Amplitudenwechsel führt. Der Takt kann somit leichter synchronisiert werden, jedoch bestehen die Probleme weiterhin bei aufeinanderfolgenden Nullen. Der NRZ-L hat die selben Vorteile, allerdings bei Nullfolgen, da es sich um die inverse Variante des NRZ-M handelt. Es ist abhängig von der Struktur der zu übertragenden Daten, welche Modifikation gewählt wird, tendenziell ist zu sagen, dass beide Kodes weniger störanfällig sind, da Amplitudenänderungen leichter erkannt werden können, als absolute Werte29. Jedoch sind beide Kodes was die Gleichstromfreiheit und die Taktgewinnung angeht, sehr von den zu übertragenden Daten abhängig und deshalb nicht als optimal die Fernübertragung anzusehen. 3.4.4 biphase level (Manchester Code) Um einen geeigneten Kode für die Datenfernübertragung zu haben, wurde der BiphaseLevel-Kode entwickelt. Er wird heutzutage in Ethernet-LANs benutzt und zeichnet sich 27 Vgl. W. Schiffmann,R.Schmitz,Technische Informatik 2, 2002,S.226 Vgl. Vorlesungsunterlagen zur Vorlesung Rechnernetze der Fernuniversität Hagen, 1999 29 .Vgl.. Vorlesungsunterlagen zur Vorlesung Rechnernetze der Fernuniversität Hagen, 1999 28 13 durch seine Gleichstromfreiheit und Takterhaltung aus. Dieses Kodierungsverfahren wird auch als Manchesterkodierung bezeichnet. Bitwerte werden durch Rechteckimpulse übertragen, die sich in ihrer Phasenlage relativ zum Takt voneinander unterscheiden30. Ein Bit mit der Wertigkeit 1 führt zu einem high/low-Übergang, eine 0 wird mit einem low/high Übergang abgebildet. Es kommt also auf jeden Fall zu einem Spannungswechsel und der Takt kann so leicht vom Empfänger wiederhergestellt werden. Im Vergleich zu den bisher genannten Kodierungsverfahren ist dieses Verfahren allerdings nur halb so effizient. Zur Übertragung eines Bitwertes, werden doppelt so viele Signale geschickt, wie z.B. bei der NRZ-Kodierung. Das bedeutet, dass der Empfänger nur halb soviel Zeit hat, um die Spannungsänderungen zu erkennen. Formal ausgedrückt halbiert sich die Schrittweite was bei konstanter Bitrate zu einer Verdopplung der Baudrate führt (siehe formel). Bei gleicher Baudrate könnten also mit der NRZ-Kodierung doppelt soviel Information übertragen werden. Nachteilig ist auch, dass ein ausgedehntes Frequenzspektrum übertragen werden 31. 3.4.5 biphase-mark und biphase-space Die Wertigkeit des zu übertragenden Bits wird bei der Manchester-Kodierung durch die Polarität des Spannungswechsels bestimmt. Um Fehler, die durch eine Vertauschung der Polarität in diesem Fall geschehen, zu vermeiden existieren zwei weitere BiphaseCodes. Beide haben als Charakteristikum einen garantierten Spannungswechsel zu Beginn eines Bitintervalls. Sie sind damit takterhaltend. Analog zu NZR-M und NRZ-S führt , die Wertigkeit 1 eines Bits bei Biphase-M zu einem Spannungswechsel, jedoch in der Mitte des Intervalls. Bei der Alternative, d.h. Bit mit der Wertigkeit 0, bleibt das Signal konstant. Für Biphase-S ist das Verhalten umgekehrt. 3.4.6 Differential Manchester Das Differential-Manchester-Kodierungsverfahren unterscheidet sich gegenüber den anderen Biphase-Kodierungsverfahren insofern, dass die Information nicht mehr in der 30 Vgl. W. Schiffmann,R.Schmitz,Technische Informatik 2, 2002,S.229 31 Vgl. W. Schiffmann,R.Schmitz,Technische Informatik 2, 2002,S.226 14 Mitte eines Intervalls sondern am Anfang eines Intervalls kodiert wird. Genauer gesagt führt ein Bit mit der Wertigkeit 1 zu keinem Phasensprung im Gegensatz zu einem Bit mit der Wertigkeit 0. Ob eine Spannungswechsel in der Mitte eines Intervalls stattfindet hängt also von den vorangegangen bzw. folgenden Bits ab. Da spätestens nach der Schrittdauer T eine Pegeländerung erfolg, ist eine Synchronisation jederzeit möglich. Auch ist das Verfahren gleichstromfrei. Es findet Anwendung in modernen Netzwerken, die auf Token-Ring-Technologie basieren32. Auf dem folgenden Schaubild sind alle besprochenen zusammenfassend graphisch dargestellt. Abbildung 7LeitungskodierungenÜbersicht 32 Vgl. W. Schiffmann,R.Schmitz,Technische Informatik 2, 2002,S.227 Leitungskodierungen 15 4 Das Applet Im Rahmen dieser Studienarbeit wurde eine Java-Anwendung erstellt. Es handelt sich dabei um eine lernunterstützendes Softwaretool, dass das Verinnerlichen der verschiedenen Leitungskodes vereinfachen soll. Zu diesem Zweck wird dem Benutzer, in der Regel ein Student, eine graphische Oberfläche präsentiert, an Hand dieser verschiedene Aufgabentypen absolviert werden können. Das Programm gliedert sich in zwei Aufgabentypen (vgl. GUI Punkt 1). 16 Abbildung 8: GUI 4.1 Der Aufgabentyp „generate“ Bei dieser Aufgabe werden von dem Studenten verschiedene Leitungskodierungen abgefragt. Die Aufgabe ist so gestaltet, dass sie dem Benutzer den Umgang mit Leitungskodierungen auf einem möglichst intuitiven Weg versucht zu vermitteln. Zu diesem Zweck, wird in der Aufgabenstellung dem Studenten eine Bitfolge präsentiert (vgl. Abb. GUI Punkt 3). Weiterhin wird dem Studenten im Aufgabenfenster mitgeteilt, welche Leitungskodierung er benutzen soll (vgl. Abb. GUI Punkt 2). Anhand dieser Daten, muss der Student nun in einem speziellen Fenster das von ihm geforderte Signal zeichnen. Da es bei einigen Kodierungsformen (z.B. Differential Manchester) eine 17 Rolle spielt, welche Signalstärke, high oder low, vor der zu transformierten Bitfolge, am Kabel anlag, wird auch diese im Aufgabenfenster mitgeteilt. Dies ist der Startpunkt für das zu zeichnende Signal. 4.2 Der Aufgabentyp „transform“ Diese Aufgabentyp in eine Erweiterung der bereits erwähnten Aufgabe, auch hier soll ein Signal an Hand einer vorgegebenen Kodierungsvorschrift gezeichnet werden. Während bei der erster Übung eine abstrakte Bitfolge als Quelle angegeben ist, wird in diesem Fall ein Signal dem Benutzer präsentiert. Weiterhin erhält der Benutzer die Information unter welchem Kode das Signal entstanden ist. Diese Aufgabe ist somit komplexer als die erste , da sie von dem Benutzer nicht nur die Anwendung einer Kodierungsvorschrift in die eine Richtung, nämlich von der Information zum Signal , sondern auch den umgekehrten Weg, vom Signal zu einer Information abverlangt. Sie sollte erst zur Anwendung kommen, wenn die Aufgabe „generate“ problemlos gelösst werden kann. 4.3 Die Benutzerführung Wichtigstes Ziel beim entwickeln der graphischen Oberfläche war es , diese möglichst ergonomisch zu gestalten. Um mit den Aufgaben zu beginnen, muss zu erst in einem speziellen Fenster eine Anmeldung erfolgen, dazu werden Name und Passwort eingegeben. Sie dienen später dem Betreuer als eindeutige Identifikation. Nach dem dies getan ist , kann mit der Übung begonnen werden. 4.3.1 Aufgabenauswahl. Zu Beginn muss eine Aufgabe ausgewählt werden, aus programmiertechnischen Gründen (siehe Implementierung) ist dies nur über eine Leiste möglich. Zu Beginn eines Übungszyklus sollte eine dieser beiden Aufgabentypen gewählt werden. Auch 18 wenn es theoretisch möglich ist , sollten die beiden Aufgabentypen nicht gemischt werden. Wenn man eine andere Übungsaufgabe bearbeiten will, sollte man das dem Betreuer mitteilen, falls das Applet mit einem Lernverbund verbunden ist. 4.3.2 Die Zeichnungsbox Alle Aufgabenstellungen unterstützen den visuellen Lerntyp. Das Zeichnungsfenster ist die einzige Eingabemöglichkeit die der Benutzer hat, um die Aufgaben zu lösen. Daher wurde besonderen Wert darauf gelegt dieses Interface möglichst benutzerfreundlich zu gestalten. Als Hilfestellung wurden die Schrittweiten dem zu zeichnenden Kode angepasst. Des weiteren werden mögliche Linien, die eine Verlängerung des Signals bedeuten grün gezeichnet. Linien die nicht möglich sind, weil sie ausserhalb der Schrittweite liegen, oder weil es sich um eine ungültige Querverbindung handelt werden nicht angezeigt. Auch wenn es sich hierbei um eine zusätzliche Hilfestellung leistet, werden nur „offensichtliche“ Fehler so abgefangen. Eine negative Beeinflussung der Lernleistung ist dadurch nicht zu erwarten. Falls einem Benutzer ein Fehler auffällt kann er diesen sogleich beheben in dem er sukzessiv, die zuletzt gezeichneten Linien löscht. Dies geschieht indem er die Maus auf die Endpunkte des bereits gezeichneten Signals legt. Diese vormalig roten Linien sowie der Fokuspunkt werden dann grün und können durch einen einfachen Klick entfernt werden. 19 Abbildung 9 zeichen und löschen 4.3.3 Weitere Bedienelemente Um eine Aufgabe ab zu schliessen bzw. neu zu starten, wurde eine Bedienleiste eingefügt (vgl. GUI Punkt 5). Wenn der Benutzer die Lösung einer Aufgabe sehen möchte, kann er dies tun in dem er den Button show-result drückt. In das Zeichnungsfenster wird das korrekte Lösung eingeblendet, der Benutzer kann nun entscheiden, ob er die Daten an einen Betreuer, falls vorhanden, mittels des submitresult-buttons übertragen will. In einem Status-Fenster erhält der Benutzer ein Feedback über seinen bisherigen Leistungsstand. Falls der Benutzer einen Schwellenwert überschreitet kann er mit dem next-code-button eine schwierigere Aufgabe anfordern. Falls er nicht zufrieden mit dem Ergebnis ist kann er durch den try-again button die Aufgabe wiederholen, allerdings mit einer neuen Bitfolge. Ein komplette Löschung des bereits gezeichneten Button während der Aufgabenbearbeitung ist durch den resetbutton möglich. 20 4.4 Instruktionsdesign Instruktionsdesign ist eine Technik des Erstellens von Instruktionsplänen für die Gestaltung von Unterrichtseinheiten. Eine stärkere Variation der Unterrichtsmethodiken mit dem Ziel der größeren Individualisierung des Lernens im Hinblick auf den Lernenden ist beabsichtigt33. Das Instruktionsdesign glieder sich in folgende Arbeitschritte:Analyse,Plannung,Entwicklung/Produktion,Einsatz,Evaluation,Revision34 . Analyse Plannung Entwicklung/ Produktion Einsatz Evaluation Revision Abbildung 10:Arbeitsablauf eines Instruktionsdesigns In der Analyse Phase dieser Software wurde erkannt, dass bei dem zu vermittelnden Stoff, am ehesten das Lernmodell des Behaviorismus angewendet werden kann. Dieses Programm gehört daher zur Gruppe der Übungssoftware. Kodierungen sollen durch intensives Wiedrholen trainiert werden. Das Erlernen von Algorithmen erfolgt am effektivesten durch Training. Kennzeichen dieser Aufgabentypen sind, dass ein Lernziel klar definiert ist ( hier die erfolgreiche Kodierung einer Bit-Sequenz). Die Aufgabenstellung führt zum Auswendiglernen bzw. üben bestimmter Vorgehensweisen. 33 Vgl. Schulmeister, R., Grundlagen hypermedialer Lernsysteme Theorie, Didaktik, Design, 2002, S. 115 34 Vgl.: PH-Freiburg: http://www.ph-freiburg.de/psycho/weber/instruktion/zusammenfassung.htm 21 Eine Lernkontrolle ist gegeben und folgt unmittelbar nach bearbeiten einer Aufgabe 35. Die Programme passen sich dem Leistungsstand des Benutzers an , sie besitzen also eine adaptive Komponente. Diese Gruppe von Lernsoftware nennt man auch drill&practice-Programme36. In der Entwicklung wurde vorallem Wert auf eine möglichst ergonomsche Handhabung gelegt..Desweiteren wurde um eine sofortige Lernkontrolle zu implementieren ohne den Benutzer zu frustieren eine adaptive Komponente hinzugefügt. Der Schwierigkeitsgrad einer Aufgabe wird auf Grund der verlangten Kodierung festgelegt.Die Schwierigkeitsgrade wurden wie folgt eingestuft: Kodierung Schwierigkeitsgrad Lesson non-return-to-zero-level 1 0 return to zero (RZ) non-return-to-zero-mark (NRZ-M) 1 2 non-return-to-zero-space (NRZ-S) biphase-mark 3 3 biphase-space Manchester-Code (biphase level) Differential Manchester-Code 4.5 Parametrisierung 4.6 Implementierung 2 4 5 4 6 7 Dieses Lernprogramm wurde in Java implementiert. Die Programmiersprache hat einige Vorzüge, die zu ersten Wahl für diese Arbeit machen. Entwickelt wurde sie von Sun 35 36 Informatische Bildung für Lehrer : http://www.educat.hu-berlin.de/mv/lernsoftware-arten.html#2 Steinmetz,R., Multimedia-Technologie – Grundlagen, Komponenten und Systeme, 2000, S. 820 22 Microsystems, auf dessen Webpage37, die Entwicklungswerkzeuge kostenlos downgeloadet werden können. Dies ist ein grosser Vorteil, da das Applet in ein nichtkommerzieles Projekt der Universität Mannheim eingebunden ist. Ein weiterer Vorteil ist die Portabilität von Java, damit ist gewährleistet, dass das Lerntool auf verschiedenen Betriebssystemen lauffähig ist. Letztendlich empfiehlt die komplexe Struktur dieses Programms für die Implementierung eine Sprache , die objekt-orientiert ist. 4.6.1 Entwicklungsumgebung Als Entwicklungsumgebung wurde Eclipse38 gewählt. Es handelt sich dabei um ein Open-Source-Software, die sich durch ihre Modularität ausszeichnet. Es besteht die Möglichkeit ihre Funktionalität durch Plug-Ins zu erweitern.. Zur Erstellung der UMLDiagramme wurde ein solches Plug-In von der Firma Omondo39 verwendet. Auf Erweiterungen die zur automatischen Kodegenerierung dienen wurde bewußt verzichtet. Erfahrung damit, z.B. beim JBuilder von der Firma Borland haben gezeigt, dass sie eher zu einer nicht Nachvollziehbarkeit des Codes führen. Des weiteren werden in der Regel proprietäre Klassen des Herstellers hinzugefügt, was nicht im Sinne des Autors sein kann, 4.6.2 Prozess Das Programm wurde analog dem Phasenmodel von Boehm, auch Wasserfall-Model genannt. entwickelt. Es fand ein ständiger Wechsel zwischen Analyse-, Design-, und Implementierungsphase statt. 37 Webpage Sun Microsystems : http//java.sun.com 38 Webpage Eclipse : http://www.eclipse.org 39 Webpage Omondo : http:// www.omondo.com 23 Abbildung 11 Wasserfallmodell nach Boehm Anschliessend wurden einzelne Module, wie z.B.. das Korrekturmodel auf ihre Richtigkeit überprüft. Zu diesem Zweck wurden Testklassen geschrieben die Testfälle für das Sequence-Objekt. generieren. Da diese Test nur Strichproben sein können wurden ausserdem ein Code-Review durchgeführt, um die Zuverlässigkeit zu erhöhen 4.6.3 Struktur Bei der Implementierung wurde ein Trennung zwischen GUI, Datenstrukturen, Algorithmen und Kommunikation propagiert. Zu diesem Zweck wurden mehrere Klassen entwickelt, deren Zusammenhänge in folgendem UML-Klassendiagramm ersichtlich sind. 24 (default package)::performance addUnit() (default package)::unit getFeedback() getValuation() due: long lastDifficulty() lesson: int lastTime() reliability: double overallReliability() getDifficulty() overallTime() getDue() performance() getLesson() send() getReliability() setUserPWD() 0..1 setlocalIP() unit() unit() p (default package)::Zentrale2 (default package)::results (default package)::Zentrale difficulty: int appletid: String difficulty: int command: String nextCode: boolean destip: String pw d: String destport: int s: sequence difficulty: String submitCode: boolean feedback: String user: String id: String Zentrale() lesson: int nextCode: boolean pw d: String s: sequence submitCode: boolean user: String z: sequence ok: String Zentrale2() passw ord: String serverip: String serverport: int sourceip: String (default package)::start sourceport: int localIP: String time: String valuation: String init() start() send() status() (default package)::draw2 (default package)::timer circleColor: Color circleX: int begin: long circleY: int d: draw 2 destX: int df: DecimalFormat destY: int (default package)::display end: long srcX: int myLabel: JLabel srcY: int set: boolean display() paint() circle() state: boolean setSequence() circleGreen() t: String clearAll() correctionModeOff() getTime() -d go() draw 2() draw 2() hold() 0..1 reset() future() run() getClickedX() timer() getClickedY() getXclicked() getYclicked() inRange() indexMax() indexMaxClicked() isAllow ed() isSelected() paint() setCorrection() (default package)::correction setSequence() setTimer() (default package)::sequence x[0..*]: int y[0..*]: int s BiphaseL() BiphaseLold() BiphaseM() BiphaseS() DiffManchester() NRZL() NRZM() NRZS() RZ() correction() getCorX() getCorY() indexMax() 0..1 getArray() getAsString() getCoding() getLesson() getLevel() getSize() getStart() getState() getStep() sequence() sequence() sequence() setLesson() toString() Abbildung 12: Uml Klassendiagramm Das Lernapplet wird durch den Aufruf einer Webseite durch einen Internetbrowser gestartet.Dies geschieht in dem Klasse start von der Java Virtual Maschine geladen und initialisiert wird. Diese Klasse erzeugt zwei Objekte der Klassen Zentrale1 und 25 Zentrale2. Während Zentrale1 für die Aufgabe generate verantwortlich ist, verwaltet Zentrale2 die Aufgabe transform. Beide Klassen benötigen zum Zeichnen der Lösung bzw. als Eingabemöglichkeit die Klasse draw2. In ihr sind sämtliche Zeichenoperation implementiert. Auch ist das ganze Actionhandling , in Form von anonymen Klassen, in der draw2-Klasse zu finden. Die Actionhandler wurden nicht als unabhängige Klasse geschrieben, weil sie nur in dieser Klasse benutzt werden und es somit keinen Möglichkeit zur Wiederverwendung gibt. Die Zentrale-Klassen bilden das Kernstück des Applets. Sie verwalten die Aufgabengenerierung und die Leistung des jeweiligen Benutzer. Die zu lösende Bitfolge und die Art der Kodierung wird in der Sequence-Klasse gespeichert. Hier wurde die ToString-Methode so überschrieben, dass sie den kompletten Aufgabetext wiedergibt. Bei der Transform-Aufgabe wird zusätzlich noch die Klasse display eingeführt, die als Parameter ein Sequence-Objekt erwartet und dieses als Graph darstellt. Zur Zeitmessung wurde eine Timerklasse geschrieben, sie wurde von der Klasse java.Thread abgeleitet. Wenn eine Aufgabe abgeschlossen werden soll wird ein Correction-Objekt initialisiert. In ihm sind die jeweiligen Kodierungsvorschriften für die unterstützten Leitungskodes implementiert. Die Ergebnisse aus diesen Klassen werden in einer selbstspezifizierter Datenstruktur unit gespeichert. Pro bearbeiteter Übung existiert ein Unit-Objekt, dass Dauer ,Schwierigkeitsgrad und Richtigkeit als Informationen enthält. Diese müssen bevor sie zum Server mittels der Result-Klasse übertragen werden noch geeignet transformiert werden. Dazu dient die Performance Klasse, sie aggregiert die Unit-objekte. Die Interaktion und die Reihenfolge der einzelnen Objekte wird anhand eines Kollaborationsdiagramms veranschaulicht, da die Zentrale2 Klasse sich genauso verhält wie die Zentrale Klasse wurden zu Gunsten der Überschaubarkeit auf die restlichen Graphen verzichtet. 26 : login : unit : performance 1.0.2 : name,passw d := login() : draw 2 1.5 : u := unit() 1.6 : addUnit(u) 1.0.1 : login() 1.3.0 : draw 2() 1.1 : p := performance(name,passw d) 1.3.1.* : sequence() 1 : init() : start : Zentrale : sequence 1.2 [w enn im Menu gew ählt] : Zentrale(p) : timer Benutzer 1.4 : Thread() 1.3.2.* : correction() : correction Internet Brow ser Applet laden 2.0 [w enn im Menu gew ählt] : Zentrale2(p) : Zentrale2 2.1 : display() : display Abbildung 13: Kollaborationsdiagramm: 4.6.4 Qualität Um eine möglichst hohe Qualität der Software zu erhalten wurde während dem Entwicklungsprozess die Qualitätsfaktoren berücksichtigt. Als die wichtigsten gelten: Korrektheit, Robustheit, Erweiterbarkeit, Wiederverwendbarkeit und Verträglichkeit 40. Die Korrektheit der implementierten Algorithmen wurde durch automatische Test, sowie Stichproben annährend bewiesen. Unter der Robustheit eines Programms versteht man die Fähigkeit auch unter ungewöhnlichen Bedingungen oder Eingaben zu funktionieren41.Das Design dieses Programms ist so ausgelegt, dass es kaum zu fehlerhaften Eingaben kommen kann, falls doch wurden kritische Funktionen mit trycatch-Klausen umgeben, um einen Programmunterbrechung zu unterbinden. Das Programm kann leicht erweitert werden, da es sehr dezentral entwickelt wurde, eine Änderung oder Erweiterung der Leitungskodes ist vorgesehen. Eine Wiederverwendung verschiedener Module findet intern statt. In wie weit einzelne Klassen in andere Programme eingebunden werden können ist fraglich, da keine Schnittstellenspezifikation vorlag. Auf Grund des Einsatzes von Java, ist die Kompatibilität zu anderen Betriebsystemen und Umgebungen als sehr gut einzuschätzen. 40 Vgl. B. Meyer,Objektorientierte Softwareentwicklung,1990,S.9 41 Vgl.B. Meyer,Objektorientierte Softwareentwicklung,1990,S.3 27 5 Zusammenfassung und Ausblick 5.1 Zusammenfassung Inhalt dieser Studienarbeit war die Entwicklung eines Lerntools für das CATS-System der Universität Mannheim. Das Thema der Trainigseinheit war die Kodierung von Leitungskodes. Es handelt sich dabei um eine wichtiges Kapitel jeder RechnernetzeVorlesung. Die acht wichtigsten binären Kodierungsverfahren werden unterstützt. Die bekanntesten Lerntheorien wurden vorgestellt und eine kurze Einführung in das didaktische Konzept gegeben. Da es sich um ein klassisches Übungsprogramm handelt , auch „drill&practice“ genannt, wurde besonders auf den Behaviorsismus eingegangen, sowie auf Parametrisierung und die adaptive Komponente. Es wurde in eine adaptive Kompenente entwickelt, d.h. die Schwierigkeit wird nur erhöht, falls der Benutzet erfolgreich die Aufgabe bearbeitet hat. Mit Hilfe einer Parametrisierung werden Daten an den CATS-Server gesendet, so dass der Lernerfolg der Studenten Zentral gespeichert oder beobachtet werden kann. Das Applets unterstützt zwei Aufgabentypen. Während die erste, das Ziel hat , dass der Benutzer für eine abstrakte Bitfolge ein bestimmtes Kodierungssignal zeichnet, verlangt die Zweite eine Transformation eines bekannten Signalkodes in ein anderes. Beide Aufgaben verlangen eine intensive Beschäftigung mit dem Lehrstoff und bieten ein gutes Klausurentrainning. Als Programmiersprache war JAVA vorgegeben. Da es sich um ein webbasierendes Lernsystem handelt eignet sich die Programmiersprache besonders , da sie maximale Kompatibilität bietet. Das Programm wurde nach den Prinzipien der Objektorientierung entwickelt. Die Pradigmen und Qualitätsansprüche wurden bei Implemetierung verwirklicht. 28 5.2 Ausblick Das Applet soll einen Beitrag zum Teleteaching an der Universität Mannheim leisten. Es ergänzt bereits bestehende Applets, die Bereiche in Multimediatechnologie sowie Rechnernetze abdecken. Ein weiteres Ausbauen des Angebots in diesen Bereichen ist wünschenswert. Auch wenn das Applet bereits acht Kodierungsverfahren unterstützt, ist eine Erweiterung problemlos möglich. Auch wurde das Programm so konzipiert, dass ein Simulationmodus leicht hinzugefügt werden kann. Aber nicht nur interne Erweiterung sind möglich. Das CATS-System bietet bereits einen Messaging-System. Damit ist die Kommunikation zwischen Benutzer und Betreuer möglich. Eine Intressante Neuerung wäre die Kommunikation der Studenten untereinander. Es würden also in Zukunft Gruppenaufgaben gestellt, die zu mehreren bearbeitet werden müssen. Zu diesem Zweck müsste ein Protokoll zwischen den einzelnen Applets vorhanden sein, dass es ermöglicht Daten zum weiteverarbeiten an Gruppenmitglieder zu übertragen. Besonders im Bereich Rechnernetze scheint dieses Vorschlag Sinn zu machen, da es gerade hier ein einfache aufeinander aufbauende Struktur und enge Verzahnung des Lernstoff gibt. Mit diesem Applet , dass sich inhaltlich mit der untersten Schicht beschäftig, könnte einer erster Schritt diese Richtung getan worden sein. VI Literaturverzeichnis Martin Schader, Lars Schmidt-Thieme Java, eine Einführung,2. Auflage, Springer Verlag, Mannheim, 1999 Les Goldschlager/ Andrew Lister Informatik, Eine moderne Einführung,3. überarbeitete Auflage, Melbourne/Brisbane, 1990 Ullrich,Dittler, E-Learning – Erfolgsfaktoren und Einsatzkonzepte mit interaktiven Medien , 2. Auflage, Oldenbourg, 2000 Ralf Steinmetz, Multimediatechnologie-Grundlagen,Komponenten und Systeme,3.Aufl.,Springer Verlag 2000 R. Schulmeister , Grundlagen hypermedialer Lernsysteme,3.korr. aufl,2002 Oldenburg wissenschaftverlag. Bernd Oesterreich, Objektorientierte Software Entwicklung, Analyse und Design mit UML, 5. Aufl.,Oldenburg Verlag München Wien Bertrand Meyer,Objektorientierte Softwareentwicklung,Pentrice Hall 1990 Andreas Zenk, Lokale Netze-mit neuer Technik , 5.Aufl, Addison-Wesley 1999 Dr. Franz Joachim Kauffels,Lokale Netze , 12. Auflage, MITP-Verlag 2000 W. Schiffmann,R.Schmitz,Technische Informatik 2, 4.Auflage,Springer Verlag 2002 Larry L.Peterson, Bruce S. Davie,Computernetze 1. Auflage,dpunkt.verlag 2000 Vorlesung Rechnernetze (Rechnernetze 2002) Vorlesungsunterlagen zur Vorlesung Rechnernetze des Lehrstuhls Praktische Informatik IV der Universität Mannheim, Sommersemester 2002. Vorlesung Rechnernetze (Rechnernetze 1999), Vorlesungsunterlagen Sommersemester 1999 zur Vorlesung Rechnernetze der Universität Hagen, VII CATS-Server Universität Mannheim : Communication and Tutoring System, UniversitätMannheim, http://herodot.informatik.uni-mannheim.de, letzter Besuch der Seite: Junil 2003 Prof. Dr. Wolfgang Effelsberg: Lehrstuhl für Praktische Informatik 4, UniversitätMannheim, http://www.informatik.uni-mannheim.de/informatik/pi4/, letzter Besuch der Seite:Juni 2003 Gall, Daniel, Trinks Timo : Instruktionsdesign für Multimedia, http://www.trinks.org/instruktionsdesign/, letzter Besuch der Seite :Juni 2003 Microsoft Corporation:Encarta Enzyklopädie 2003, http://encarta.msn.de, letzter Besuch der Seite :Juni 2003 Prof. Dr. G. Weber, Pädagogische Hochschule Freiburg, http://www.ph- freiburg.de/psycho/weber/instruktion/zusammenfassung.htm, letzter Besuch der Seite Juni 2003 Informatische Bildung für Lehrer,Ein Modellversuch der Humboldt-Universität, http://www.educat.hu-berlin.de/mv/start.html,letzter Besuch der Seite Juni 2003 VIII Anhang Ehrenwörtliche Erklärung Ich versichere, daß ich die beiliegende Seminararbeit ohne Hilfe Dritter und ohne Benutzung anderer als der angegebenen Quellen und Hilfsmittel angefertigt und die den benutzten Quellen wörtlich oder inhaltlich entnommenen Stellen als solche kenntlich gemacht habe. Diese Arbeit hat in gleicher oder ähnlicher Form noch keiner Prüfungsbehörde vorgelegen. Ich bin mir bewußt, daß eine falsche Erklärung rechtliche Folgen haben wird. Mannheim, den 30.Juni 2003 _______________________ IX