Informatik

Was eigentlich ist Informatik?

Statt einer längeren Antwort (s.u.) auf diese eine kurze Antwort auf eine andere Frage:

Wo im Alltag steckt überall Informatik drin?

Hier eine kleine Auswahl:

  • Google & Co.: Sortier- und Suchalgorithmen, Datenbanken, ...
  • WWW, E-Mail, Chat & Co: Server-Client-Architektur, Datentransport in Netzen, ...
  • Routenplaner: Problem des kürzesten oder schnellsten Weges
  • Bankgeschäfte: Datenbanken, Sichere Datenübertragung, Verschlüsselung, ...
  • Amazon, eBay & Co: Dynamisches HTML, Datenbanken, Verschlüsselung,
  • CD-Player: Fehlererkennende oder -korrigierende Codes
  • MP3, Zip: Datenkompression, verlustfrei oder verlustbehaftet
  •  

 

Einführungsphase

Zu Beginn eine extrem wichtige Klärung: Informatikunterricht ist nicht:

  • Schulung in der Bedienung eines Programms (Textbearbeitung, Tabellenkalkulation, Präsentation, Bildbearbeitung, usw.),
  • Surfen oder Suchen im Internet,
  • Beratung bei Computer- oder Softwareproblemen.
  •  

Informatikunterricht ist weniger praktisch, mehr theoretisch ausgerichtet. Manchmal findet der Unterricht ganz ohne Rechner statt, nur mit Stift und Papier oder Kreide und Tafel. Von E.W. Dijkstra, einem niederländischen Informatiker, stammt die klassische Begründung dafür:

"Computer science is no more about computers than astronomy is about telescopes."
(In der Informatik geht es genau so wenig um Computer, wie in der Astronomie um Teleskope.)

Worum geht es dann?

Die Themen der beiden Semester der E-Phase sind

  • HTML mit CSS, Python (E1)
  • Algorithmen I und Sequentielle Datenstrukturen (E2)
  •  

HTML mit CSS, Python (E1)

  1. HTML ist die Sprache des WWW, eines Teils des Internets. HTML ist eine Abkürzung für HyperText Markup Language, zu deutsch "Auszeichungssprache für Über-Text". (Damit ist gemeint, dass diese Art von Text über den üblichen – linearen – Text von Papiermedien hinausgeht, indem er etwa Texte durch Links verknüpft zu einem Informations-Netz). HTML steckt in jeder Webseite, die man mit einem Web-Browser (Internet-Explorer, Firefox, Opera) aufruft. In den Webseiten werden einzelne Textteile (z.B. Überschriften, Absätze, Tabellen, Links) durch Marken ausgezeichnet.

    Hier lernen Sie die Grammatik dieser Auszeichnungssprache kennen. Das Hauptziel besteht jedoch darin, Sie mit der abstrakt-formalen Denk- und Arbeitsweise der Informatik bekannt und vertraut zu machen. Es wird ein einfacher Editor (Notepad, SciTE) benutzt, kein WYSIWYG-Editor.

  2. Python.

    Anhand von Python werden Sie eingeführt in die Grundlagen des Programmierens. Hier erfahren Sie, welche Datentypen es gibt (Zahlen, Texte, Listen, etc.) und wie man mit ihnen kleinere Probleme löst.

  3.  

Algorithmen I und Sequentielle Datenstrukturen (E2)

  1. Algorithmen sind Handlungsanweisungen zur schrittweisen Lösung eines Problems. Im Alltag (ver)stecken sie (sich) in Koch- oder Backrezepten, Bedienungsanleitungen für technische Geräte (Fotokamera, Mikrowelle), Anleitungen für Aufbau oder Inbetriebnahme von Geräten (Ikea-Möbel, WLAN-Router). Alle diese Beispiele haben eine gemeinsame Form: Das, was man zur Erreichung eines bestimmten Zwecks tun soll, wird in einer geordneten Abfolge von Schritten möglichst genau beschrieben (1. Tue dies. 2. Tue das. 3. Tue jenes).

    Hier lernen Sie, wie man Algorithmen (Handlungsanweisungen zur Lösung eines Problems) entwirft und diese anschließend in eine Programmiersprache (Python) übersetzt, damit die eigentliche Problemlösung von der Maschine erbracht werden kann.

  2. Sequentielle Datenstrukturen. Für die oben erwähnten 'Problemlösungen' (Kochen, Backen, Gerät benutzen) braucht man Zutaten. Bei den Algorithmen für Computer heißen die Zutaten Datentypen (z.B. Zahlen, Buchstaben, Texte) und Datenstrukturen (z.B. Listen, Bäume).

    Sequentielle Datenstrukturen sind solche, die Elemente wie Perlen an einer Kette aufreihen, z.B. Wörter oder Texte: Wörter verketten Buchstaben, Texte verketten Wörter und Satzzeichen. Das Paradebeispiel für sequentielle Datentrukturen sind Listen.

    Typische Probleme für die Arbeit mit solchen Datenstrukturen sind Suchen (z.B. ein Wort in einem Text, eine Telefonnummer in einem Adressbuch) und Sortieren (z.B. der Einträge eines Adressbuchs).

 

Qualifikationsphase

Der Informatikunterricht in der Q-Phase setzt die Kenntnisse aus E2 voraus.

Was macht man im Informatikunterricht in der Q-Phase?

A. Kurze Antwort

Informatik in der Q-Phase bedeutet Lernen von

  1. zwei Formalen Sprachen (Python, SQL) zur maschinellen Problemlösung
  2. Problemlöse- und Entwurfstechniken
  3. Analysieren, Formalisieren, Modellieren

Hier die Semesterthemen für Q1 bis Q4:

  1. Algorithmen II und Objektorientierte Programmierung (mit Python)
  2. Datenbanken (mit SQL und Python)
  3. Eines der Themen aus der folgenden Liste:

    • Kryptologie (Verschlüsseln und Codebrechen)
    • Höhere Datenstrukturen (Bäume, Graphen)
    • Theoretische Informatik
    • Neuronale Netze
    • Nebenläufige Prozesse

  4. Vertiefung eines Themas aus der vorstehenden Liste oder ein nichtbehandeltes Thema daraus

B. Lange Antwort

Das Wort Informatik ist eine Zusammensetzung aus Information und Automatik, man könnte für den Unterricht auch sagen: Information und Mathematik. Sie sollten das Fach Informatik nur dann wählen, wenn Sie relativ gute Kenntnisse und Fertigkeiten in Mathematik mitbringen.

In beiden Fachgebieten, Mathematik und Informatik, geht es darum Probleme zu lösen, oder einen Sachverhalt zu analysieren und daraus ein mathematisches oder informatisches Modell zu konstruieren.

  • Mathematik: Wie löst man eine Gleichung? Wie ein Gleichungssystem? Wie formuliert man einen Sachverhalt als Gleichung? (die berüchtigten Textaufgaben)
  • Informatik: Wie sortiert man eine riesige Datenmenge? Wie sucht man etwas – ein Wort in einem Text, eine Datei auf der Festplatte? Wie steuert man etwas? – den Verkehrsfluss in einer Stadt, oder eine Raumfähre?

(Mit Suchen, Sortieren und Steuern verbringen die meisten Computer dieser Welt einen Großteil ihrer Zeit.)

Es gibt allerdings einen wesentlichen Unterschied: In Mathematik löst ein Mensch die Probleme selbst, indem er ein Lösungsverfahren oder eine Formel entwickelt und anwendet. In Informatik überträgt ein Mensch die Problemlösung einer Maschine, dem Computer. Dazu muss er

  1. Das Problem verstehen (z.B. Was ist ein Sudoku? Wie löst man es?)
  2. Das Problem selbst lösen können (ein Sudoku, besser noch: jedes)
  3. Das Lösungsverfahren der Maschine 'verklickern'.

Dazu überträgt er das von Menschen gefundenen Lösungsverfahren – Algorithmus genannt – in eine Form, die die Maschine zur automatischen (d.h. selbstständigen) Problemlösung instand setzt. Die Frage oben sollte also nicht lauten Wie sucht man etwas?, sondern vielmehr: Wie sucht Maschine mit Hilfe von Mensch etwas? oder: Wie befähigt der Mensch die Maschine zum Suchen?

Noch ein Beispiel zur Verdeutlichung des Unterschieds: In einer Tabellenkalkulation kann man eine Liste von Einträgen sortieren lassen. Im ITG-Unterricht haben Sie gelernt, wie das geht. Im Informatikunterricht lernen Sie, wie man - Sie selbst - die Maschine dazu bringt, dass sie es von alleine (d.h. automatisch) tut. Dazu lernen Sie eine Reihe maschineller Sortierverfahren kennen, hier eine Handvoll: Bubblesort, Selectionsort, Insertionsort, Mergesort, Quicksort. Sie sehen: Auch Englisch ist für Informatik wichtig, die jeweils aktuelle Python-Dokumentation etwa ist auf Englisch abgefasst, das aktuelle Python-Tutorium gibt es auf Deutsch.

Aber Informatiker lösen nicht nur Such- oder Sortier-Probleme, sondern auch Steuer-Probleme von technischen Prozessen (Verkehrsfluss, Chemieanlage) oder Verwaltungsvorgängen (Geschäftsprozesse einer Bank, Versicherung oder Bibliothek).

Solche Probleme lösen Informatiker durch Objektorientierte Programmierung oder Datenbanken: Das bedeutet:

  • Sie analysieren dazu einen Ausschnitt der Wirklichkeit (z.B. eine Bücherei): Aus welchen Dingen oder Objekten besteht dieser Ausschnitt? (Benutzer, Medien) Wie spielen diese Objekte miteinander zusammen, welche Beziehungen bestehen zwischen ihnen? (Benutzer leihen Bücher aus, müssen eventuell gemahnt werden, etc.). Objekte und Beziehungen stellt man in einem Objekt-Beziehungs-Diagramm dar, im Informatik-Jargon ER-Diagramm genannt.
  • Sie konstruieren ein informatisches Modell
  • Sie gießen dieses Modell in eine andere Form – in eine Programmiersprache. Implementieren nennt man dieses Umgießen oder Übersetzen in eine Programmiersprache.

Diese drei Schritte nennt man kurz OOA, OOM und OOP, oft zusammengefasst durch den letzten Ausdruck (OOP). Die Abkürzungen bedeuten:

  • OOA = Objektorientierte Analyse
  • OOM = Objektorientierte Modellierung
  • OOP = Objektorientierte Programmierung

Lust auf Informatik bekommen?

Wolfgang Büchel

 

Links

Informatik

Internet - HTML und CSS

netplanet - Verstehen Sie mal das Internet! (Besim Karadeniz)

HTML- und JavaScript-Kurs (Karsten Beuche)

HTML-Kurs (Dietrich Grude)

Little Boxes (Webseiten gestalten mit HTML und CSS)

HTML-Baum (Programm zur Visualisierung der Baumstruktur von HTML-Dokumenten)

Self-HTML (DAS Nachschlagewerk für HTML)

CSS-Tutorial

4webmaster.de (u.a. HTML, CSS, Javascript, und vieles mehr)

css4you.de (CSS-Referenz auf deutsch)

css Zen Garden (zeigt die Leistungsfähigkeit von CSS)

JavaScript-Kurs (Walter Spiegel)

 

Einführung in die Informatik und ins Programmieren

Materialien von Bildungseinrichtungen

Informatik in der Schule ("Elektronisches Arbeitsbuch" zum Lehrplan Informatik in Rheinland-Pfalz)

Informatik (Hohenstaufengymnasium Kaiserslautern)

Infoskript (Thomas Karp)

Informatik (OSZ Handel Berlin)

Mathematik, Physik, Informatik (Wolfgang Urban)

Unterrichtsmaterial Informatik auf SwissEduc

Oberstufeninformatik (Horst Gierhardt)

Informatik (Alfred Hermes, Studienseminar Jülich)

Algorithmus der Woche (RWTH Aachen)

netzmafia.de (FH München, FB Elektrotechnik und Informationstechnik)

 

Python

Python-Kurs (Walter Spiegel)

Python-Kurs (Bernd Klein)

Learning to Program (Alan Gauld) (deutsche Version)

Gregor Lingls Python-Site (Autor des Buches Python für Kids, dort weitere Links)

Python. Das umfassende Handbuch (von Peter Kaiser und Johannes Ernesti, Openbbook bei Galilei Computing)

How to Think Like a Computer Scientist (Allen B. Downey, Jeffrey Elkner, Chris Meyers) (deutsche Version von Gregor Lingl)

Instant Python (Magnus Lie Hetland) (deutsche Version)

 

Cheat Sheets (Sammlung von Kurzübersichten)