Unterrichtsmaterial
Table of Contents
- 1. Klasse 8 - Pflichtfach Informatik
- 1.1. Block 1 - Robotik / Algorithmen
- 1.2. Block 2 - Rechnernetzte
- 1.2.1. IP-Adresse (Internet Protocol Address)
- 1.2.2. MAC-Adresse (Media Access Control Address)
- 1.2.3. MAC- und IP-Adressen Cheatsheet
- 1.2.4. Binärsystem (Zweiersystem/Dualsystem)
- 1.2.5. Hexadezimalsystem (Sechzehnersystem)
- 1.2.6. Zahlensysteme Cheatsheet
- 1.2.7. LAN (Local Area Network)
- 1.2.8. WAN (Wide Area Network)
- 1.2.9. Switch (Netzwerk-Schalter)
- 1.2.10. Hub (Netzwerk-Verteiler)
- 1.2.11. DNS
- 1.2.12. Router
- 1.2.13. Heimrouter
- 1.2.14. Protokolle (Netzwerkprotokolle)
- 2. WPU 10
- 3. Oberstufe EA
1. Klasse 8 - Pflichtfach Informatik
1.1. Block 1 - Robotik / Algorithmen
1.1.1. Algorithmus
Eine definierte, endliche abfolge von Anweisungen
1.1.2. Schleifen
Ein Werkzeug, womit man Algorithmen beliebig oft wiederholen kann.
1.1.3. If-Abfragen
Ein Wekrzeug, womit man Algorithmen basierend auf Zustände kontrollieren kann. Z.B. wenn irgendwas, dann mach das. Wenn nicht, mach was anderes.
1.1.4. Funktionen
Ein von dem Benutzer selbst definierter Block, wodurch man Coderepetition vermeiden und die Übersichtlichkeit verbessern kann.
1.2. Block 2 - Rechnernetzte
1.2.1. IP-Adresse (Internet Protocol Address)
- Eindeutige Adresse für jedes Gerät im Internet oder Netzwerk
- Funktioniert wie eine Postanschrift/Adresse/Hausnummer für Computer
- Besteht aus vier Zahlengruppen (Oktetten), getrennt durch Punkte (z.B. 192.168.1.1)
- Ermöglicht den korrekten Austausch von Datenpaketen zwischen Sender und Empfänger
- Besteht aus Netzwerk-ID und Host-ID
1.2.2. MAC-Adresse (Media Access Control Address)
- Physikalische Adresse, die fest einem Gerät zugeordnet ist
- Dient zur Identifizierung der Netzwerkadapter
- Besteht aus 12 hexadezimalen Zeichen (Zahlen und Buchstaben) (6 Oktetten, Hexadezimal) (z.B. a1:b2:c3:d4:e5:f6)
- Sie werden durch Doppelpunkte getrennt
- Jede MAC-Adresse ist (theoretisch) weltweit einzigartig
1.2.3. MAC- und IP-Adressen Cheatsheet
| IP-Adresse | MAC-Adresse |
|---|---|
| 4 Oktetten | 6 Oktetten |
Die Oktetten sind mit . voneinander getrennt |
Die Oktetten sind mit : voneinander getrennt |
| Dezimalsystem | Hexadezimalsystem |
| Veränderbar | Nicht Veränderbar |
| (theoretisch) nicht Einzigartig | Einzigartig |
| Wie Adresse | Wie Name |
| Besteht aus Netz- und Host-ID |
1.2.4. Binärsystem (Zweiersystem/Dualsystem)
- Zahlensystem mit nur zwei Ziffern: 0 und 1
- Computer nutzen ausschließlich das Binärsystem
- Grundlage für fast alles in der Informatik
- Die Stellen verdoppeln sich: 1111 = 1x8 + 1x4 + 1x2 + 1x1 = 15
- Video
1.2.5. Hexadezimalsystem (Sechzehnersystem)
- Zahlensystem mit 16 Grundziffern: 0-9 und A-F
- Erleichtert die Lesbarkeit von langen Binärzahlen
- Komprimiert Daten mit weniger Zeichen
- Die Stellen werden mal 16: 13 = 1x16 + 3x1 = 19
- Video
1.2.6. Zahlensysteme Cheatsheet
| Dezimalsystem | Binärsystem | Hexadezimalsystem |
|---|---|---|
| 10 Zeichen | 2 Zeichen | 15 Zeichen |
| 0-9 | 0-1 | 0-9, A-F |
| “Normale Zahlen”/Grundsystem | Computerzahlen | Computerzahlen |
| 321 = 3x10² + 2x10¹ + 1x10⁰ = 321 | 110 = 1x2² + 1x2¹ + 0x2⁰ = 6 | A3 = 10x16¹ + 3x16⁰ = 163 |
1.2.7. LAN (Local Area Network)
- Lokales Netzwerk in einem begrenzten Bereich
- Verbindet Geräte wie Computer, Drucker und Server
- Beispiele: Netzwerk zu Hause, in der Schule oder im Büro
- Geräte sind meist durch Kabel miteinander verbunden
1.2.8. WAN (Wide Area Network)
- Ein WAN (Wide Area Network) deckt große geografische Gebiete ab.
- Es verbindet mehrere lokale Netzwerke (LANs) miteinander.
- Ein WAN nutzt öffentliche Übertragungswege und Telekommunikationsleitungen.
- Das Internet ist das bekannteste Beispiel für ein WAN.
1.2.9. Switch (Netzwerk-Schalter)
- Gerät zur intelligenten Verteilung von Daten im Netzwerk
- Verbindet mehrere Computer miteinander
- Sendet Daten gezielt nur an den richtigen Empfänger
- Effizienter als ein Hub
1.2.10. Hub (Netzwerk-Verteiler)
- Einfaches Gerät zur Verbindung mehrerer Computer
- Verteilt eingehende Daten an alle angeschlossenen Geräte
- Weniger effizient als ein Switch
- Heute kaum noch im Einsatz
1.2.11. DNS
- Steht für Domain Name System
- Record für alle Websites und IP-Adressen
| Domain | IP-Adresse |
|---|---|
| youtube.com | 8.8.8.9 |
| omidmash.de | 172.173.83.18 |
1.2.12. Router
- Verbindet mehrere Netzwerke miteinander
- z.B.
10.7.254.0mit10.7.249.0
1.2.13. Heimrouter
- Ein Gerät, wie z.B. Fritzbox
- Beinhaltet:
- DHCP Server
- Router
- Switch
- Wireless Access Point
- Firewall
1.2.14. Protokolle (Netzwerkprotokolle)
- Regelwerke für die Kommunikation zwischen Computern
- Legen fest, wie Daten ausgetauscht werden
- Verschiedene Protokolle für verschiedene Aufgaben
- DHCP (Dynamic Host Configuration Protocol)
- Protokoll zur automatischen Vergabe von IP-Adressen
- Weist Geräten im Netzwerk automatisch Netzwerkeinstellungen zu
- Vereinfacht die Netzwerkverwaltung erheblich
- Funktioniert nach dem Client-Server-Modell
- SSH (Secure Shell)
- Verschlüsseltes Protokoll für sichere Fernverbindungen
- Ermöglicht sicheren Zugriff auf entfernte Computer
- Schützt Passwörter und Daten durch Verschlüsselung
- Sicherer als Telnet
- Port 22
- Telnet (Telecommunication Network)
- Protokoll für Fernzugriff auf andere Computer
- Ermöglicht Bedienung eines entfernten Rechners
- Überträgt Daten unverschlüsselt (unsicher)
- Heute meist durch SSH ersetzt
- SFTP/FTP (File Transfer Protocol)
- Protokoll zur Übertragung von Dateien
- Regelt den Datenaustausch zwischen Computern im Netzwerk
- Ermöglicht Upload und Download von Dateien
- Standard für Dateiübertragungen
- Port 20-21
- HTTP/HTTPS (Hyper Text Transfer Protocoll)
- Protokoll zur Übertragung von Hypertext / Websites
- Port 80 für HTTP, 443 für HTTPS
- HTTP wird i.d.R. nicht mehr benutzt.
- ICMP (Internet Control Message Protocol)
- Protokoll zum Austausch von Informations- und Fehlermeldungen
- Wird für Netzwerkdiagnose verwendet (z.B. Ping-Befehl)
- Meldet Probleme im Netzwerk
- SMTP (Simple Mail Transfer Protocol)
- Protokoll für den Versand von E-Mails
- Sorgt dafür, dass E-Mails zugestellt werden
- Überträgt Nachrichten zwischen E-Mail-Servern
- Postausgangsserver des E-Mail-Kontos
2. WPU 10
2.1. Python - Begriffe
2.1.1. Variabel
- Variabel sind Etiketten
- Werden oft mit Kisten verglichen, in denen man Werte ablegen kann.
- Werden so definiert:
mesage = "hallo" - Variablennamen dürfen nur Buchstaben, Ziffern und Unterstriche enthalten.
- Leerzeichen sind in Variablennamen nicht erlaubt!
- Sollten kurz, aber aussagekräftig sein.
- Werden kleingeschrieben.
2.1.2. Integers
- Ganze Zahlen
- Z.B. 3 oder -12 oder 0
2.1.3. Floats
- Zahlen mit Kommastellen
- Z.B. 3.14 oder -12.00 oder 0.0000
2.1.4. Chars
- Unicode Chars
- Z.B. ’a’ oder ’!’ oder ’🐏’
2.1.5. Strings
- Zeichenkette
- Z.B. “hallo!”
2.1.6. Listen
- Eine geordnete Sammlung von Elementen.
- Ist “Mutable” => kann sich ändern
- Sind 0-indexed.
- Z.B.
[1, 2, 3, "4", "hallo"]
2.1.7. Tuples
- Eine geordnete Sammlung von Elementen.
- Ist NICHT “Mutable” => kann sich NICHT ändern
- Z.B.
(1, 2, 3)
2.1.8. Dictionaries
- Schlüssel-Wert-Paare
- Wie ein Database
- Z.B.
{"name": "MZ", "email": "xyz@gymhum.de", "Alter": 32}
3. Oberstufe EA
3.1. Rechnernetze und Verschlüsselung
3.1.1. Authentizität
Die Authentizität bezieht sich darauf, dass die Identität von Benutzern, Geräten oder Informationen verifiziert werden kann. Es geht darum sicherzustellen, dass diejenigen, mit denen man interagiert, tatsächlich diejenigen sind, für die sie sich ausgeben.
3.1.2. Integrität
Mit der Integrität der Daten soll sichergestellt werden, dass keine Veränderung an den Daten unerkannt bleibt. Hier geht es also darum nachvollziehen zu können, welche Änderungen an den Daten vorgenommen wurden.
3.1.3. PKI (Public Key Infrastructure)
Infrastruktur zur Verwaltung digitaler Zertifikate.
3.1.4. Web of Trust
Dezentrales Vertrauensmodell durch gegenseitige Bestätigung
3.2. Verschlüsselung
3.2.1. Klartext
Unverschlüsselte, lesbare Nachricht
3.2.2. Geheimtext
Verschlüsselte Nachricht
3.2.3. Asymmetrisches Verfahren
- Verfahren mit öffentlichem und privatem Schlüssel
- Ein Schlüssel zum ent- und ein Schlüssel zum verschlüsseln
3.2.4. Symmetrisches Verfahren
Ein Schlüssel zum Ver- und Entschlüsseln.
3.2.5. Schlüsseltauschproblem
Problem des sicheren Schlüsselaustauschs, lösbar durch z.B:
3.2.7. Monoalphabetische Verfahren
- Substitution mit festem Schlüsselalphabet
- Caesar, RSA
3.2.8. Polyalphabetische Verfahren
- Substitution mit wechselndem Schlüssel, z.B. ein Wort
- Vigénere
3.3. Haskell
3.3.1. Rekursive Funktionen
Funktionen, die sich selbst aufrufen.
In Python:
def fib(n): if n in [0,1]: return 1 else: return fib(n - 1) + fib(n - 2)
In Haskell:
fib 0 = 0 fib 1 = 1 fib n = fib (n - 1) + fib (n - 2)
3.3.2. Weitere Infos und Übungen: LearnYouAHaskell
3.3.3. Mit Listen arbeiten
l = [1, 3..10] l -- [1,3,5,7,9] tail l -- [3,5,7,9] head l -- 1 init l -- [1,3,5,7] take 2 l -- [1,3] drop 2 l --[5,7,9]
3.3.4. Implementation von Caesar
import Data.Char (isLower, isUpper, ord, chr) shift :: Int -> Char -> Char shift n c | isLower c = chr $ (ord c - ord 'a' + n) `mod` 26 + ord 'a' | isUpper c = chr $ (ord c - ord 'A' + n) `mod` 26 + ord 'A' | otherwise = c caesarRec :: Int -> String -> String caesarRec _ [] = [] caesarRec n (c:cs) = shift n c : caesarRec n cs
3.4. Python und OOP
3.4.1. Rekursive Funktionen
Funktionen, die sich selbst aufrufen.
In Python:
def fib(n): if n in [0,1]: return 1 else: return fib(n - 1) + fib(n - 2)
In Haskell:
fib 0 = 0 fib 1 = 1 fib n = fib (n - 1) + fib (n - 2)
3.4.2. Links/Hilfe/Allgemein
3.4.3. Abstrakte Klassen
3.5. Muster Aufgaben
3.5.1. Users erstellen
Du hast die Aufgabe bekommen, für IServ ein Login-System zu implementieren. Es gibt viele Benutzer, die sich einloggen wollen, und sie sollten unterschiedliche Rechte haben. Insgesamt gibt es drei Gruppen: Administrator, Lehrer und SuS. Der Auftraggeber will, dass die drei Gruppen von einem Hauptobjekt class User erben.
Jeder User sollte Felder für Vorname, Nachname, Geburtsdatum, Benutzername und E-Mail-Adresse haben. Die Lehrer sollten zusätzlich noch Felder für Telefonnummer und Adresse haben. Bei der Admin-Gruppe sollte es auch noch eine Variable is_admin = True geben. Die Benutzernamen werden automatisch durch das Muster <vorname>.<nachname> erstellt, und die E-Mail-Adressen sollten durch das Muster <benutzername>@gymhum.de automatisch erstellt werden.
- Erstelle ein grafisches Diagramm dafür, wie das Programm und die Objekte funktionieren sollen.
- Implementiere das Programm in Python.
3.5.2. Ackermannfunktion
- Angenommen, dass eine Funktion namens ack so definiert ist, rechne ack 1 10, ack 2 4 und ack 3 3.
ack :: Integer -> Integer -> Integer ack 0 n = n + 1 ack m 0 = ack (m - 1) 1 ack m n = ack (m - 1) (ack m (n - 1))
- Implementiere diese Funktion in Python und/oder in Haskell.
3.5.3. Pascalschs Dreieck
- Aufgabe
Das folgende Zahlenmuster wird Pascalsches Dreieck genannt.
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 ...Die Zahlen am Rand des Dreiecks sind alle 1, und jede Zahl im Inneren des Dreiecks ist die Summe der beiden Zahlen darüber.
- Schreibe eine Prozedur in Haskell, die die Elemente des Pascalschen Dreiecks mittels eines rekursiven Prozesses berechnet.
- Schreibe deinen Algorithmus in Python um.
- Lösung
pascal :: Int -> Int -> Int pascal row col | col < 0 || col > row = 0 | col == 0 || col == row = 1 | otherwise = pascal (row - 1) (col - 1) + pascal (row - 1) col
