Schriftliche Hausarbeit zur Abschlussprüfung der erweiternden Studien für Lehrer im Fach Informatik VII. Weiterbildungskurs in Zusammenarbeit mit der Fernuniversität Hagen Eingereicht dem Amt für Lehrerausbildung - Außenstelle Gießen - JavaScript Einführung in eine Programmiersprache für die Klasse 11 Verfasser: Jörg Debus 0. Zielsetzung und Begründung der Arbeit 6 5. Einführung in JavaScript 10 6.
Einführung der Schleifenarten 32 9. Lokale und globale Variablen 41 9. Eingabeparameter einer Funktion als lokale Variable 41 9. Globale Variablen innerhalb Funktionen 42 9.
Lokale Variablen außerhalb Funktionen 43 9. Überladen einer Variablen 45 9. Überladen einer Variablen durch gleichnamige Eingabeparameter der Funktion 45 9. Überladen einer Variablen durch gleichnamige Variabelendeklaration innerhalb der Funktion 46 10.
DHTML und Ebenenerzeugung 65 14. Einleitung Seit Anfang der 90’er Jahre erobert das Internet immer mehr Bereiche unseres täglichen Lebens. Informationssuche, Homebanking, Chaten und Einkäufe tätigen sind nur einige Beispiele, wie sich Handlungen durch und auf das Internet verlagert haben. Allein in Deutschland gibt es ca.000 Hosts (Januar 2003) und weltweit existieren über 2 Milliarden Webseiten.
Jeder, der einen Telefonanschluss, ein Modem und einen Computer besitzt, ist in der Lage, sich jede dieser Webseiten, sofern sie nicht zugangsgeschützt sind, anzusehen. Damit eröffnet sich für jeden ein schier unerschöpfliches Reservoir an Informationen und Möglichkeiten. Mittlerweile verlagern sich sehr viele Arbeitsplätze aus den herkömmlichen Berufssparten in den Bereich Informationstechnologien, speziell in den Bereich Internet. Sehr viele Firmen drängen in dieses Medium.
Sie nutzen aber ihre Webseiten nicht nur zur Selbstdarstellung, sondern auch um ihre Geschäfte dort zu tätigen und ihre Existenz zu sichern. Der Umgang mit dem Internet birgt aber auch einige Gefahren. Hacker bemühen sich, immer neue Schwachstellen des Mediums aufzudecken und für sich zu nutzen. Nicht nur Viren und Sniffler ermöglichen es dem geschickten User, geheime Daten von fremden Rechnern einzusehen.
Betrachtet man die rasante Entwicklung des Internets seit seiner Kommerzialisierung vor ca. 12 Jahren und mutmaßt, welche rasanten Fortschritte in diesem Bereich in Zukunft auf sich warten lassen, dann muss man zu dem Schluss kommen, dass die Gesellschaft, im besonderen die jüngere Generation auf das Medium Internet vorbereitet werden muss. Obwohl die Schüler ein hohes Maß an Motivation mitbringen, nutzen sie lediglich das Internet als Informations- und Kommunikationsquelle. Der Umgang mit diesem Medium fällt ihnen im Allgemeinen aufgrund des meist sehr benutzerfreundlichen Aufbaus der einzelnen Webseiten recht leicht, wobei es aber in der Regel leider auch bleibt.
Damit nutzen die Schüler nur ein Teil des Internets. Es dient auf der anderen Seite aber auch zur Verbreitung von Informationen. Um Sie mit dieser Seite des Mediums bekannt zu machen, ist die im folgenden beschriebene Unterrichtsreihe gedacht. Vorkenntnisse Der Einstieg in das Thema Internet wurde mit einer Referat-Reihe begonnen.
Nach einer Sammlung von Themen, die uns in diesem Bereich als wichtig erschienen, konnte sich jeder Schüler nach seinem Interessenschwerpunkt für ein Referat-Thema entscheiden. Mit den Referaten wurde so eine breite Grundlage geschaffen, die einen tieferen Einblick und sinnvollen Umgang mit dem Medium Internet ermöglichen sollte. Themenbeispiele: -Entstehung des Internets -Provider -Suchmaschinen -Schutzmechanismen -ICQ -TCP/IP -HTML -Skriptsprachen Weiterhin wurde die Textformatierungssprache HTML (Hypertext Markup Language) eingehend behandelt, die die Grundlage für die Programmierung von Webseiten und JavaScript bildet. Hierbei handelt es sich aber lediglich um eine statische Gestaltungsmöglichkeit von Webseiten.
Im Verlauf der Unterrichtsreihe wurden folgende Grundlagen zur Gestaltung von Webseiten gelegt: -Grundgerüst einer HTML-Seite -Formatierungsmöglichkeiten von Texten -Listenerstellung -Tabellenentwurf -Aufbau einer Navigation zwischen Webseiten (Hyperlinks) -Verwendung von Grafiken -Formulargestaltung -Cascading Stylesheets (CSS) -Frames Mit diesen Hilfsmitteln sind Schüler in der Lage, eine eigene Website aufzubauen. 2 Abschluss dieser Unterrichtssequenz war die Erstellung einer eigenen Website, in der sich die Schüler vorstellen sollten. So hatte ich bei der Bewertung dieser Arbeiten zusätzlich die Möglichkeit, meine Schüler und ihre Vorlieben besser kennen zu lernen. Während dieser Abschlussarbeit zu HTML wurde seitens der Schüler schnell der Wunsch nach weiterführenden Techniken geäußert, mit denen man dynamische Komponenten und Benutzeraktivitäten in die statischen Seiten einbauen kann.
Hierzu gibt es verschiedene Möglichkeiten: JavaScript, PHP, Perl, CGI- Scripte, Java-Applets um nur einige zu nennen. Insgesamt ist anzumerken, dass eine sehr hohe Leistungsbereitschaft bei den Schülern festzustellen war. Das Thema Internet begeistert Schüler und aufgrund dessen, dass man mit sehr einfachen Mitteln und in sehr kurzer Zeit anspruchsvolle Webseiten selbst erstellen kann, beflügelt sie um so mehr. Alles in allem waren das die besten Voraussetzungen für eine Unterrichtsreihe zu JavaScript.
JavaScript Der reine Umgang mit HTML lässt sehr schnell den Wunsch erwachsen, aktive Inhalte in eine Webseite einzubinden, bei der der Nutzer mit der Seite interagieren kann. Hierzu sind verschiedene Skript-Sprachen entwickelt worden, die in den HTML-Code eingebettet werden können. Skriptsprachen sind Programmiersprachen, die in einer bestimmten Umgebung, dem Browser, ablaufen und dort die bereitgestellte Funktionalität nutzt. Dies ist einer der Hauptunterschiede zu Programmiersprachen wie C++ und Java, die diese Funktionalität selbst erzeugen bzw.
Man unterscheidet zwischen clientseitigen und serverseitigen Skriptsprachen. Der Unterschied besteht in der Abarbeitung des Programmcodes, der einmal auf dem Client und zum anderen auch auf dem Server interpretiert werden kann. Zu den clientseitigen Techniken gehören: JavaScript, VB-Script, Java-Applets und Flash. Server Side Includes (SSI), Common Gateway Interface (CGI), Active Server Pages (ASP) und PHP Hypertext Preprocessor (PHP) gehören zu den serverseitigen Scriptsprachen.
JavaScript-Anweisungen werden in den HTML-Code eingebettet. Dies birgt in sich schon ein Problem. Der Klartext des Programms ist für jeden ersichtlich und unterliegt keinem Schutz. Für geschützte Seiten ist JavaScript also ungeeignet.
Der Programmcode wird auf dem im Browser integrierten Interpreter im Gegensatz zu einer Programmiersprache wie C++ abgearbeitet, welcher diesen durch einen Compiler in Maschinensprache übersetzt. Die Leistungsfähigkeit von JavaScript besteht darin, dass man mit deren Hilfe mit den einzelnen Komponenten einer HTML-Seite interagieren kann. Man kann Benutzereingaben überprüfen, HTML-Komponenten animieren, eigene Funktionalitäten definieren, auf Benutzter direkt ohne Umwege über einen Server reagieren, usw. In JavaScript sind weiterhin prozedurale und objektorientiert Komponenten enthalten.
Beim Syntax-Vergleich erkennt man starke Ähnlichkeiten zu C, Java und PHP. Durch diese Vorteile eignet sich JavaScript sehr gut als Einstiegsprogrammiersprache, da wesentliche Komponenten einer „echten Programmiersprache“ wiederzufinden sind, jedoch zunächst überflüssiger Ballast ausgelassen wurde. Die Anfänge von JavaScript (ursprünglich LiveScript genannt) gehen auf die Firmen Sun und Netscape zurück, die den ersten JavaScript- fähigen Browser Ende 1995 veröffentlichten. Zu dieser Zeit nutzten etwa 85% der Surfer die Browser von Netscape.
Mit jeder neuen Version des Netscape-Navigators wurden die Funktionalitäten der Programmiersprache weiter 4 ausgebaut. Parallel dazu entwickelte Microsoft aus firmentaktischen Gründen die Scriptsprache Jscript (um eigene Standards zu entwickeln), die aber mit JavaScript zu 80% kompatibel ist. Diese zwar recht große Schnittmenge macht es aber sehr schwer, einheitliche Seiten für beide Browser zu entwerfen, da gerade die fehlenden 20% sehr oft Verwendung finden (einer der wesentlichen Unterschiede ist die Darstellung von Ebenen). Um „Cross- browserfähige“ Webseiten zu gestalten, muss man meist für jeden Browser unterschiedliche Seiten programmieren.
Das ECMA-Konsortium hat sich mit der Standardisierung von Skriptsprachen genauso wie das W3-Konsortium um die Standardisierung von HTML bemüht, jedoch erfüllen JavaScript und JScript diesen Standard. Dieses Problem scheint aber von der Zeit gelöst zu werden, da der Marktanteil des Microsoft Browsers immer mehr zunimmt und Netscape mittlerweile immer unbedeutender wird. Zielsetzungen und Begründung der Arbeit Die vorliegende Arbeit entstand aus einem Unterrichtskonzept für die Jahrgangsstufe 11/2, welches für einen Orientierungskurs entwickelt wurde. Der Zeitrahmen für die Unterrichtsdurchführung entspricht einem Halbjahr mit jeweils 3 Wochenstunden (51 Stunden).
Ziel dieser Arbeit ist es nicht, den Leser in die Sprache JavaScript einzuführen bzw. eine Referenz zu erstellen (von denen schon sehr viele gute und weniger gute im Internet oder in den Printmedien veröffentlicht worden sind), sondern ein Unterrichtskonzept anzubieten, nach welchem man den Unterricht der Jahrgangsstufe 11/2 gestalten kann. Die Arbeit richtet sich an Informatiklehrer, die in dieser Jahrgangsstufe unterrichten. Die Arbeit soll aber keine Vorgabe sein, sondern ist als Orientierungshilfe zu verstehen, in der jeder seine eigenen Schwerpunkte setzen kann.
Nachdem in der 11/1 die Grundlagen des Internets und die Textformatierungssprache HTML Unterrichtsgegenstand war, sollen laut Lehrplan Informatik in der 11/2 die Grundlagen der Programmierung gelegt werden. Da die Schüler in der Jahrgangsstufe 11/1 sehr begeistert im Umgang mit dem Medium Internet gearbeitet haben und ich deren Motivation für den Kurs 11/2 weiter ausnutzen wollte, habe ich mich in Absprache mit den Schülern für eine Programmiersprache entschieden, die „webtauglich“ ist. Für die Wahl „JavaScript“ sprachen und sprechen einige gewichtige Punkte: Eine Entwicklungsumgebung ist auf jedem handelsüblichen PC bereits installiert, da ein solches Script (eingebettet in eine HTML-Seite) über einen Browser angezeigt werden kann. Weiterhin ist auf jedem Rechner ein Texteditor vorhanden, mit dem sich die Programmzeilen des Scripts eingeben lassen.
Damit entstehen für den Schüler keine zusätzlichen Kosten für Software und keine Probleme bei der Installation der sonst nötigen Software. Jeder Schüler, der zuhause die Möglichkeit besitzt, an einem Computer zu arbeiten, ist somit in der Lage, die im Unterricht erlernten Programmiertechniken weiter zu vertiefen und auszubauen. Weiterhin spricht für JavaScript, dass die Syntax denen anderer Programmiersprachen ähnelt. Die Schreibweise der einzelnen Befehle entspricht denen in PHP und Java und ist ebenfalls angelehnt an C++, sodass der Einstieg in eine dieser Programmiersprachen den Schülern zu einem späteren Zeitpunkt nicht allzu schwer fallen sollte.
Ein weiterer Vorteil ist der Umgang mit Variabelentypen. In sehr vielen Programmiersprachen muss man bei der Deklaration von Variablen den Datentyp mit angegeben. Da der Umgang mit Variablen den Schülern im allgemeinen sehr schwer fällt, 6 eignet sich JavaScript besonders, weil die Typzuweisung von dem Interpreter automatisch vorgenommen wird und deshalb anfangs kein zusätzliches Problem schafft. So eignet sich also JavaScript zur Einführung in die Programmierung besonders, da einige Probleme im Vergleich zu anderen Programmiersprachen nicht vorhanden sind, es kostenlos für jeden zur Verfügung steht, fast alle Eigenschaften einer Programmiersprache besitzt, Grundzüge der Objektorientierung beinhaltet, sehr einfach zu erlernen ist und von der Syntax an einige der wichtigsten Programmiersprachen angelehnt ist.
Selbst für die Jahrgänge 12, 13 ist dieser Weg der Einführung einer Programmiersprache eine Überlegung Wert. Das Halbjahr 12/I „Objektorientierte Modellierung“ könnte man in Anlehnung an JavaScript mit Hilfe der Programmiersprache Java durchführen. Da in JavaScript schon objektorientierte Ansätze zu finden sind (diese jedoch nicht konsequent verfolgt werden) und eine in den Grundbefehlen nahezu identische Syntax im Vergleich zu Java besitzt, sollte der Übergang von der 11 in die 12/I den Schülern nicht schwer fallen. Im Bereich des Themas „Datenbanken“ der 12/II hätte man die Möglichkeit, über Webdatenbanken das gelernte umzusetzen und zu üben.
Hierzu bietet sich PHP in Verbindung mit MySQL an, die kostenlos zur Verfügung stehen und einfach zu installieren sind. Auch hier wäre aufgrund der ähnlichen Syntax der Übergang nicht zu groß für die Schüler. Weiterhin könnte man die Motivation der Schüler in diesem eher theoretisch, abstrakt anmutenden Thema „Datenbanken“ ausnutzen, da sie sich für diese Techniken besonders interessieren. Für eine Einführung in die Programmierung ist aber meiner Meinung nach die Wahl der Programmiersprache weniger von Bedeutung, sondern eher die Wahl von geeigneten Beispielen und eine zielorientierte und strukturierte Vorgehensweise an Probleme wichtig, denn im Laufe der Zeit werden weitere neue und leistungsfähigere Programmiersprachen entwickelt, bzw.
der Funktionsumfang einer bestehenden erweitert. Die Schüler sollten deshalb nach ihrem Informatikunterricht in der Lage sein, sich selbständig in eine neue Programmiersprache einzuarbeiten und diese zu erlernen. Selbst die Verwendung von Delphi in der 12/I, welches sich an vielen Schulen als Programmiersprache durchgesetzt hat, stellt meines Erachtens bei dem Übergang der 11 in die 12 kein größeres Problem dar, da die wesentlichen Grundstrukturen in beiden Sprachen gleich sind, sie sich in der Syntax aber stark unterscheiden. Man muss sich also hauptsächlich im Bereich der Syntax umstellen, vorausgesetzt man hat das Wesen der einzelnen Befehle begriffen.
Die Kernkompetenzen eines Informatikers bestehen darin, Probleme zu analysieren, zu modellieren und Algorithmen zu entwickeln, um die gestellten Probleme mit Hilfe des Computers zu lösen. Hierbei spielt die Programmiersprache eher eine untergeordnete Rolle, 7 vielmehr stellt sie bei diesen Arbeitsgängen lediglich das zu beherrschende grundlegende Handwerkszeug dar. Während des Unterrichts sollten ebenfalls soziale Kompetenzen wie Teamfähigkeit gefördert werden, die gerade in diesen Berufssparten notwendig sind, da größere Anwendungen nur in einem Team in akzeptablen Zeiten entwickelt werden können.