Docstoc

Programmierung

Document Sample
Programmierung Powered By Docstoc
					    Programmierung im Informatikunterreicht – eine einleitende bzw.
                      allgemeine Betrachtung

Anm.: Als Einstieg in das Thema sollte unserer Meinung nach eine Diskussion über die
„Bedeutung der Programmierung“ mit den Schülern geführt werden.

Definition: Unter Programmierung versteht man zum einen den Vorgang der
Programmerstellung und zum anderen das Teilgebiet der Informatik, das die Methoden
und Denkweisen beim Entwickeln von Programmen umfasst.

Wir müssen uns zunächst fragen, inwiefern die Entwicklung konkreter, lauffähiger
Programme zur Allgemeinbildung beitragen kann. Hierzu kann auf eine lange und oft sehr
kontroverse Diskussion zurückgeblickt werden.

Argumente gegen Programmierung:
    Dass alle Schüler das Programmieren erlernen müssten, um Computer später
     ausnutzen zu können, stimmt jedenfalls nicht. Programmieren ist und bleibt
     Spezialistenarbeit!
    Die Konstruktion von Software – im Großen wie in Kleinen – gehört zum
     igenieurwissenschaftlichen Teil der Informatik und ist nicht allgemeinbildend.
    Programmierunterricht ist auf ein absolutes Minimum zu reduzieren.
     Programmieren hat im Fach Mathematik eine Berechtigung, wenn es darum geht,
     Verständnis für das Denken in Algorithmen bewusst zu fördern.
Argumente für Programmierung:
    Ebenso wie das elementare Rechnen die „Primärerfahrung“ der Mathematik ist, gilt
     dies entsprechend für das Programmieren als Primärerfahrung der Informatik.
    Programmieren       ist    Ausgangspunkt        und       Endpunkt       gedanklicher
     Abstraktionsprozesse der Informatik.
    Die Erfahrung des Programmierens spielt eine Schlüsselrolle für das Verständnis
     informatischer Grundbegriffe.
    Das „Programmieren im Kleinen“ eignet sich als Einstieg in die Informatik ganz
     besonders, wenn man Perfektion bis ins Detail anstrebt.

Im weiter gefassten Sinne kann aber Programmierung für einen wesentlichen, wenn auch
nicht für den wichtigsten Bestandteil einer allgemein bildenden Schulinformatik gehalten
werden, allerdings nur, solange zwei Bedingungen erfüllt sind:
    Es muss sich wirklich um die Implementierung eines vorher entwickelten Modells
       handeln, also keinesfalls um Stegreifprogrammierung nach dem Prinzip „Versuch
       und Irrtum“.
    Die Syntax der verwendeten Sprache darf nicht in den Vordergrund treten. Die
       Schüler dürfen also keinesfalls durch die Eigenheiten der jeweiligen Sprache von
       der Problematik der Modellierung abgelenkt werden. Ein „Programmierkurs“, der
       von Sprach- anstatt von Problemstrukturen ausgeht, ist im Pflichtfachbereich fehl
       am Platze.

Unter Einhaltung dieser Regeln kann die Programmierung als Implementierung von
abstrakten Modellen dafür sorgen, dass diese durch Simulation veranschaulicht und
überprüft werden können, was vielen Schülerinnen und Schülern erst den eigentlichen
Zugang zur Modellierung ermöglichen wird.

...Ganz ohne Programmierung geht es also offensichtlich nicht!


Einführung in die Programmierung                                                        1
Warum ist Programmierung schwierig?

Computer sind dümmer als dumm!

Man muss Computern durch Algorithmen genau sagen, wie sie sich in der jeweiligen
Situation zu verhalten haben!



Was ist ein Algorithmus?

Historischer Auszug

Das Wort Algorithmus geht auf die lateinische Fassung eines arabischen Namens zurück.
Dieser gehörte dem Gelehrten Al-Chwarizmi, der seine mathematischen Werke im 9.
Jahrhundert am Hofe des Kalifen Al-Ma'mun in Bagdad schrieb. Eines von ihnen hieß
Hisab al-gabr wal-muqabala, d.h. Rechenverfahren durch Ergänzen und Ausgleichen. Das
Wort Algebra stammt aus diesem Titel und ist offenbar auch historisch mit dem Lösen von
Gleichungen verbunden. In Spanien tauchte der Name des Verfassers rund drei
Jahrhunderte später in einer lateinischen Bearbeitung seiner Bücher auf. Diese beginnt mit
den Worten:

      Dixit Algoritmi ... [Es sprach Algoritmi ...]

Im Laufe der Zeit verband man die daraus entstandene Verballhornung 'Algorithmus' ganz
allgemein mit mechanisch ausführbaren Rechenverfahren.



Alltagsalgorithmen




Einführung in die Programmierung                                                        2
Charakteristische Eigenschaften eines Algorithmus

ALGORITHMUS = exakte Anleitung zur Lösung eines Problems

      1. Aufbau aus einzelnen Schritten
      Jeder Schritt bezeichnet eine Tätigkeit

      2. Verständlichkeit
      Jeder Schritt muss dem, der ihn ausführen soll, verständlich sein

      3. Eindeutigkeit
      Jeder Schritt muss eindeutig ausführbar sein
      - welche Tätigkeit
      - wie soll die Tätigkeit ausgeführt werden
      - welcher Folgeschritt

      4. Ausführbarkeit
      Der Ausführende muss den Schritt tatsächlich durchführen können
      (in endlicher Zeit)

      5. Endlichkeit
      - statisch: endlicher Text, endliche Anzahl von Schritten
      - dynamisch: Ausführung in endlicher Zeit möglich

      6. 0 oder mehr Eingangsgrößen, 1 oder mehr Ausgangsgrößen


Generelle Begriffe - oder: Was hat ein Algorithmus mit einem Programm zu tun?

Ein Algorithmus eingegeben in einer Programmiersprache ist ein Programm.

Software ist die Menge der Programme eines Rechensystems.

- Es gibt zwei Grundtypen von Software

– Systemsoftware (z.B.: Betriebssystem)
- Starten des Computers
- Steuerung der angeschlossenen Geräte
- Verwaltung von Plattendaten
- Kontrolle der ablaufenden Programme

– Anwendersoftware
- z.B. Textverarbeitungsprogramm, Tabellenkalkulation,...




Einführung in die Programmierung                                                3
Algorithmen in der Praxis: Wie stellt man einen Algorithmus dar?

Beispiel:




„Blockbilder“ dienen als Grundkonstrukte für Algorithmen




Anwendungsbeispiel für Blockbilder




Einführung in die Programmierung                                   4
Der älteste bekannte Algorithmus der Welt




Anm.: Als einführende Programmiersprache wird von uns „JavaScript“ gewählt. Aufgrund
der sog. „C-Familien-Syntax“ ist sie eine allgemeine Grundlage für mehrere
Programmiersprachen (z.B.: C, Java, php,...). Durch das rasche Ausführen (im Browser)
sieht man „schnell“ das Resultat des Programms.

Um den Sinn der Programmierung mit JavaScript (Mächtigkeit, Vorteile,...) zu
verdeutlichen, folgt ein Exkurs:

Das Internet

Das Internet besteht aus verschiedenen Diensten

Beipiel:
–Mail
–telnet
–W[orld]W[ide]W[eb]

Das WWW basiert auf HTML, der HyperText Markup Language
–HTML ist eine Dokument-Beschreibungssprache
–HTML ist statisch.
–Interaktion nur über ‚links‘
–der Inhalt der HMTL-Dokumente wird nicht verändert

Skriptsprachen
Dokument-Beschreibungssprachen sind per se statisch
Dynamik wird durch Programmiersprachen erreicht
Programmcode und Dokumente können zusammengefügt werden:
–Webbasierten Skriptsprachen
–Skriptsprachen werden in die HTML-Dokumente integriert




Einführung in die Programmierung                                                   5
Server und Clients
Die an das Internet angeschlossenen Computer lassen sich in zwei Kategorien einteilen:
– Server
– Clients
Auf dem Server liegen die Dokumente, die der ans Internet angeschlossene
Client herunterlädt und (z.B.) durch einen Browser anzeigt

Server
Server sind in der Regel ständig online, da die Dokumente im Netz jederzeit erreichbar
sein sollen
HTML-Dokumente liegen auf Servern

Clients
Clients sind meistens nicht ständig online und dienen und auch nicht als Anbieter von
Netzinhalten.
Wenn ein Client eine Seite betrachten will, schickt er ein Anfrage an den Server:
–der Server schickt das Dokument (genauer: eine Kopie des erfragten Dokumentes) an
den Client

Für die WWW-Programmierung stellt sich nun die Frage:
welcher Computer soll die Programme ausführen: Server oder Client?
Beides ist möglich, es gibt clientseitige und serverseitige Verarbeitung

Clientseitige Verarbeitung
Seit 1995 entwickelte Netscape LiveScript, das schnell in JavaScript umbenannt wurde
(Kooperation mit der Firma Sun, die die Sprache Java ihr eigen nennt)
Netscape bettete die Software zu Ausführung in den Browser ein.
Microsoft und andere Browserentwickler zogen später nach. (JScript)

Heute ist JavaScript wohl die verbleiteste Skriptsprache im WWW
Microsofts VBScript (VisualBasic Script), ist z.Zt. der einzige ernstzunehmende
Gegenentwurf
VBScript wird nur von Microsoft-Browsern (den verschiedenen Internet-Explorern)
unterstützt

Vorteile der clientseitigen Verarbeitung
•Unabhängig von der Verwendung eines WWW-Servers
•Vollständig in die HTML-Seiten integrierbar
•Trennung von dynamischen Komponenten (Programmcode) und den Texten (HTML-
Code)•Zugriff auf Browserfunktionen (z. B. die History und die Frames)

Nachteile der clientseitigen Verarbeitung
•Clientseitige Skripte sind vom Browser abhängig. Mitunter interpretieren Browser ein und
dieselbe Skriptzeile völlig unterschiedlich.
•Hat der Client sein JavaScript ausgeschaltet wird er Programmcode nicht ausgeführt
•Das Ausführen eines clientseitigen Skriptes kann die Rechenleitung des Clientrechners
mitunter so sehr belasten, dass das die Nutzung des Netzes nicht mehr effektiv ist.




Einführung in die Programmierung                                                            6
Serverseitige Verarbeitung
Zwei Möglichkeiten:
–Common Gateway Interfaces (CGI), ‚normale‘ Programmiersprachen (besonders beliebt
sind Perl und Python) werden über das WWW-Protokoll angesprochen
–Serverseitige eingebettete Skriptsprachen (insbesondere (Microsofts ASP) und PHP)

PHP
Da PHP auf dem Server ausgeführt wird eignet es sich für Aufgaben, bei denen Daten auf
dem Server ausgewertet, verändert oder gelöscht werden solle:
–Öffnen, Lesen, und Schreiben von HTML-Dokumenten
–Dynamisches Erzeugen von anderen Dateiformaten, wie z.B. Jpeg, PDF oder XML
–Anbindung von Datenbanken an das WWW
–Dynamisches Komponieren von Webseiten ersetzt Frames.

Anm.: Es ist klar, dass auf die Schüler eine Flut von Fachtermini zukommt!
Dem Schüler soll jedoch zunächst „nur“ eine „grobe Struktur“ übermittelt werden.
Interessierte Schüler sollten indirekt auch angeregt werden, sich mit den einzelnen
Themen selbst zu beschäftigen!

Einführung in die Programmierung mit JavaScript
(Anm.: Html bereits bekannt)

JavaScript ist eine von Netscape entwickelte Script-Sprache mit begrenzten Fähigkeiten.
Sie hat im Grunde mit Java nur einen Namensteil gemeinsam. Die Sprache lehnt sich in
der Syntax an die von Sun Microsystems entwickelte Programmiersprache Java an.
JavaScript ist jedoch anspruchsloser im Aufbau als Java, eingeschränkter in den
Möglichkeiten und für andere Zwecke gedacht. JavaScript ist im Gegensatz zu Java eine
unmittelbare Ergänzung und Erweiterung zu HTML. In diesem Kapitel werden die
Grundlagen der Sprache und Beispiele für die Anwendung in Webseiten gezeigt. Ein
umfassender Programmierkurs würde jedoch den Rahmen dieses Kurses sprengen. Auch
wird vorausgesetzt, dass der Leser schon einmal mit einer Programmiersprache in
Berührung gekommen ist. Für erweiterte Kenntnisse sei deshalb auf die Literatur
verwiesen. JavaScript bietet sich für folgende Zwecke an:

      Animation: Mit Hilfe von JavaScript können Sie Animationen wie z. B. Marquees
       (Lauftexte) programmieren und in WWW-Seiten einbinden. Dabei steht Ihnen nicht
       nur das Anzeigefenster zur Verfügung, sondern auch Dialogbereiche des WWW-
       Browsers, etwa die Statuszeile.
      Projektsteuerung: Mit Hilfe von JavaScript können Sie einige "Lücken" in HTML
       umgehen. So ist es mit Hilfe von JavaScript beispielsweise möglich, innerhalb eines
       Frame-Sets die Inhalte mehrerer Frame-Fenster gleichzeitig zu aktualisieren.
      Formularüberprüfung: Mit Hilfe von JavaScript können Sie Anwendereingaben in
       einem HTML-Formular während der Eingabe überprüfen. Auf diese Weise können
       Sie z.B. unzulässige oder sinnlose Eingaben unterbinden.
      Dynamische WWW-Seiten: Mit Hilfe von JavaScript können Sie erreichen, daß
       sich WWW-Seiten während der Anzeige dynamisch verhalten. So ist es
       beispielsweise möglich, Hinter- und Vordergrundfarben nach dem Laden der
       WWW-Seite automatisch oder im Dialog mit dem Anwender zu ändern.
      Text generieren: Mit Hilfe von JavaScript können Sie zur Laufzeit HTML-
       formatierten Text generieren. So ist es mit JavaScript z.B. möglich, aktuelles Datum
       und aktuelle Uhrzeit auszulesen und dem Anwender anzuzeigen.



Einführung in die Programmierung                                                          7
        Anwendungen: Mit Hilfe von JavaScript können Sie einfache Anwendungen
         programmieren. Das können z.B. wissenschaftliche oder kaufmännische
         Taschenrechner sein. Auch einfache Spiele sind denkbar.


Das erste Programm
                                                           Bildschirmausgabe
 <script language="JavaScript">
           <!--
           alert("Hallo Welt!");
           //-->
 </script>
Mit <script language="JavaScript"> leitet man einen Bereich für JavaScript innerhalb
einer HTML-Datei ein (script = Quelltext, language = Sprache). Dahinter - am besten in der
nächsten Zeile – sollte man mit <!-- einen Kommentar einleiten. Dadurch verhindert man,
dass ältere WWW-Browser, die JavaScript nicht kennen, den folgenden JavaScript-Code
ignorieren und nicht irrtümlich als Text innerhalb der HTML-Datei interpretieren.

Im obigen Beispiel wird mit Hilfe von JavaScript ein Meldungsfenster mit dem Text "Hallo
Welt!" am Bildschirm ausgegeben.

Am Ende eines JavaScript-Bereichs schließen Sie mit //--> den Kommentar und mit
</script> den Bereich für den Programmcode.

JavaScript kann auch innerhalb herkömmlicher HTML-Tags vorkommen

 <html>
 <head>
 <title>JavaScript-Test</title>
 <script language="JavaScript">
 <!--
  function Quadrat(Zahl)
  {
   Ergebnis = Zahl * Zahl;
   alert("Das Quadrat von " + Zahl + " = " + Ergebnis);
  }
 //-->
 </script>
 </head>
 <body>
 <form>
 <input type=button value="Quadrat von 6 errechnen"
Einführung in die Programmierung                                                        8
 onClick="Quadrat(6)">
 </form>
JavaScripts in separaten Dateien

Beispiel: html-Datei

 <html>
 <head>
 <title>JavaScript-Test</title>
 <script language="JavaScript" src="quadrat.js">
 </script>
 </head>
 <body>
 <form>
 <input type=button value="Quadrat von 6 errechnen"
 onClick="Quadrat(6)">
Beispiel (separate JavaScript-Datei):
 </form>
 function Quadrat(Zahl)
 </body>
   {
 </html>
    Ergebnis = Zahl * Zahl;
   alert("Das Quadrat von " + Zahl + " = " + Ergebnis);
  }

Das Beispiel tut das gleiche wie das Beispiel im Abschnitt zuvor. Der Unterschied ist
lediglich, daß der JavaScript-Code in einer separaten Datei steht. Dazu notieren Sie im
einleitenden <script>-Tag die Angabe src= (src = source = Quelle). Dahinter folgt, in
Anführungszeichen, der Name der separaten Datei mit dem Quellcode.

Die Datei mit dem Quellcode (muß eine reine ASCII-Datei sein und) sollte die
Dateinamenerweiterung .js erhalten. Die Datei sollte nichts anderes als JavaScript-Code
enthalten.

Links zum Thema „Einführung in JavaScript“
Anm.: Weitere Beispiele werden mit Hilfe von online-Tutorials (online-education) erklärt
und aufgearbeitet. Dies erleichtert nicht nur dem Lehrer den Unterricht ;-), sondern soll
Schülern auch zeigen, dass das Internet ein sog. „Problemlöser“ ist!
Wo und Wie finde ich Information? Wie kann ich diese verwenden?

Online-Tutorial:
http://www.jgiesen.de/javascript/JavaScript/JSBeispiele/start.htm

gute Scripts:
http://internet-partner.de/webmaster/java-script/javascript.html

Aufgabe:
- Finde mindestens 3 unterschiedliche Links zum Thema JavaScript, wo sich
Beispielprogramme finden lassen. Studiere & kommentiere die Programme und baue sie
in den html-Code ein!
Einführung in die Programmierung                                                 9
- Wie lässt sich der Algorithmus von Euklid in Java Script realisieren?




Einführung in die Programmierung                                          10

				
DOCUMENT INFO