Kursthemen

  • Allgemeines

    Nachdem wir uns im Kurs A "Sprachen und Sprachkonzepte entdecken" mit der Darstellung von Information in natürlichen und künstlichen Sprachen beschäftigt haben, lernen wir im Kurs B "Grundlagen der Digitalisierung" mit dem von-Neumann-Modell ein Konzept für den grundlegenden Aufbau und die prinzipielle Funktionsweise von Informatiksystemen kennen und verstehen die Programmierbarkeit als zentrales Wirkprinzip von Informatiksystemen.

    Stand: 2023-12-21 – Der Kurs wird aktuell nicht gepflegt.

    • Werkzeuge für den Unterricht

    • Neben einem Office-Paket (z. B. LibreOffice oder OnlyOffice) werden ein aktueller Browser und ein Internet-Zugang benötigt. Für Hausaufgaben oder zum Nachvollziehen der Unterrichtsbeispiele können Programme des IoSticks benutzt werden. 

  • John-von-Neumann-Rechnermodell

    • Icon Aufgabe

      In der Klasse 9 haben wir einige Projekte mit dem Calliope mini durchgeführt.

      1. Beschreiben Sie den grundlegenden Aufbau des Gerätes.
      2. Implementieren Sie auf dem Calliope mini in das vorhandene Programm eine Funktionalität, die den Nachfolger der zufällig bestimmten Zahl bestimmt und ausgibt. Übertragen Sie das Programm auf den Calliope mini und testen Sie es.
      3. Beschreiben Sie den Inhalt der Datei, die auf den Calliope mini übertragen wird.
    • Ein Blick in die Datei zeigt uns eine eigenartige Sprache aus Zahlen. Scheinbar gibt es vorn  eine laufende Nummerierung und dahinter einen Code, den der Calliope direkt versteht.

      Wir wollen also ermitteln, die Computer im Allgemeinen aufgebaut sind und wie sie prinzipiell arbeiten. Prüfen wir nach, ob der von uns gefundene Aufbau des Calliope mini so fundamental ist. Dazu schauen wir uns den Film "Meilensteine der Naturwissenschaft und Technik - Charles Babbage und Konrad Zuse und der Computer" an.

    • Icon Aufgabe

      Gruppe 1: Erfasst auf einem Zeitstrahl die Daten, die zur Erfindung des Computers führten mit Datum und Erfinder/Entwickler/Forscher

      Gruppe 2: Erfasst den grundlegenden Aufbau des Rechnermodells von John von Neumann.

    • Icon Datei
      01 AB von Neumann Lösung 10 Datei
      Nicht verfügbar, es sei denn: Sie sind in 10_1
    • Übungen mit MOPS

      Wir nutzen nun einen Simulator, der wie unser Spiel nach den grundlegenden Prinzipien des von-Neumann-Rechners arbeitet. Zunächst analysieren wir ein Programm im Animationsmodus und erweitern dies anschließend.

    • Zusammenfassung

      Wie haben den Aufbau und die grundlegende Funktionsweise eines Informatiksystems nach dem von- Neumann-Modell kennen gelernt und mit MOPS ein Werkzeug zur Simulation maschinennaher Programmierung genutzt.

      Uns ist aufgefallen, dass die Maschinensprache geeignet ist um einen Prozessor zu programmieren. Allerdings ist es eher mühselig, komplexe Algorithmen damit zu entwickeln. Es ist zweckmäßiger eine "höherer" Programmiersprache wie etwa MakeCode zu verwenden. 

      Bild: CC BY-SA 2.0, Smithsonian InstitutionWikimedia Commons contributors, https://commons.wikimedia.org/w/index.php?title=File:Grace_Hopper_and_UNIVAC.jpg&oldid=502905726

      Grace Hopper ist ein frühe Programmiererin, die genau diese Idee hatte. Allerdings gab es 1957 noch keine höheren Programmiersprachen. Daher hat sie im Team die Sprache A0 und kurz darauf die erste höhere Sprache COBOL entwickelt.

  • Verarbeitung binärer Signale mit Logikgattern

    • Im von-Neumann-Konzept findet sich die Formulierung: "Ein Computer arbeitet elektronisch und verwendet Binärzahlen." In unseren Simulationen und auch im Rollenspiel haben wir das jedoch nicht realisiert. Schauen wir uns mal genauer an, warum binäre Signale (und die Binärzahlen) für die maschinelle Verarbeitung so sehr geeignet sind.

    • Icon Aufgabe
      1. Warum funktioniert(e) die "mechanischen Computer" von Charles Babbage damals und heute praktisch nicht?
      2. Warum wählte Zuse das Relais als zentrales Bauelement für seinen Computer aus?
      3. Beschreiben Sie, wie man mithilfe von 0 und 1 Dezimalzahlen und Zeichen bilden kann.
    • Icon Aufgabe
      1. Warum funktioniert das Zählen mit zwei Händen bis 1023?
      2. Wir weit könnte zwei Menschen zählen?
      3. Wie funktioniert binäres Addieren?

      Hier geht es zur Mausseite.

    • Binäre Signale lassen sich in sog. Logikschaltungen verarbeiten. Solche Logikschaltungen bestehen aus Grundbausteinen, den Logikgattern.

    • Selbststudium: Grundlagen und Arbeitsmaterial nach Lehrbuch Inf-Schule.de
    • Grenzen der binären Zahlendarstellung

    • Computer müssen auch negative ganze Zahlen darstellen können, also zu 24 sollte es auch eine -24 geben.

      Erste Idee (keine gute): Einerkomplement

      Man könnte die Bitfolge der natürlichen Zahl negieren. Zur Zahl 6[10] = 0110[2] wäre dann -6[10] = 1001[2].
      Damit gibt es allerdings ein Problem: zur Zahl 0[10] = 0000[2] gäbe es eine "negative Null: -0[10] = 1111[2]! Die Null ist jedoch einmalig, zur ihr darf es kein "Gegenstück" geben.

      Lösung: Zweierkomplement

      Die Lösung ist so einfach: Im Dezimalsystem entsteht bei der Addition der positiven und negativen Zahl stets Null. Wir suchen also eine Binärzahl n zu beispielsweise 5[10] = 0101[2], für die gilt 0101[2] + n = 0000[2]. Durch Probieren finden wir -5[10] = 1011[2]. Die Addition ergibt zwar einen Übertrag auf die Stelle 24, aber das blenden wir aus.

      Können wir aus dem Probieren eine Regel entwickeln? Klar: 

      1. Bilde das Einerkomplement der Binärzahl = Negiere die Bitfolge der Binärzahl 
      2. Erhöhe das Ergebnis aus 1.) um eins = Inkrementiere das Ergebnis.

      Gibt es noch unsere "negative" Null?
      Nein, da:

      1. Einerkomplement: 0000[2] → 1111[2]
      2. Inkrement: 1111[2] → 0000[2]

      Im Zweierkomplement sind alle Binärzahlen, bei denen das höchste Bit den Wert 1 hat, negativ. Mit vier Bit lassen sich die Zahlen von -8[10] = 1111[2] bis 7[10] = 0111[2] bilden.

      Probleme bei der Zahldarstellung: 7 + 1 = -8?

      Inkrementiert man 7[10] = 0111[2], so erhält man 1000[2] = -8[10]!

      Der Zahlbereich der ganzen Zahlen ist als endlicher Zahlenkreis darstellbar. In diesem gibt es eine Problemstelle, nämlich den Übergang von der höchsten darstellbaren Zahl zum Nachfolger. Programmierer müssen daher stets auf den Wertebereich des Datentyps achten, um keine fehlerhaften Berechnungen durch den sogenannten Überlauf zu erzeugen.

      Und was ist mit reellen Zahlen?

      Die Abbildung reeller Zahlen auf dem Computer ist defacto unmöglich. Man nutzt Hilfskonstrukte wie die Gleitkommadarstellung. Diese ist jedoch endlich und diskret, d. h. zwischen zwei Zahlen ist eine Lücke. Die Differenz zu nächst möglichen Gleitkommazahl ist ein Fehler, der sich bei umfangreichen Rechnungen auch sehr schnell summieren und zu ernsthaften Konsequenzen führen kann. 

      Das kann man auch schnell selbst ausprobieren: Was passiert in Java/Python, wenn man 0.1 und 0.2 addiert?

  • Auswirkung der Digitalisierung

    • Icon Aufgabe
      Auswirkungen der Digitalisierung untersuchen Aufgabe
      Nicht verfügbar, es sei denn: Sie sind in einer Gruppe