Aus Das deutschsprachige Scratch-Wiki

Version vom 22. Februar 2021, 08:13 Uhr von LiFaytheGoblin (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Diese Seite ist der vierte Projektteil der OER-Serie Projekt: Ada's Gedicht Generator. In dieser Einheit geht es darum, einen eigenen Verschiebe-Verschlüsselungsalgorithmus zum Ver- und Entschlüsseln von Ada‘s Gedichten zu programmieren.

Voraussetzung: Absolvieren der dritten Einheit der OER-Serie Projekt: Ada's Gedicht Generator. Falls du absolut nicht weitergekommen bist, nutze das Lösungsprojekt aus Teil 3 als Grundlage für diese Aufgabe (also ruf das Projekt auf und mach einen Remix davon).

1. Vorbereitung

Caesar-Verschlüsselung: Bereits zu Zeiten Caesars erfand man eine Verschlüsselungsmethode, die heute als Caesar-Verschlüsselung bekannt ist. Die Idee dieser Verschlüsselungsmethode ist, dass die Zeichen des Klartextes (z.B. "Ich gehe") auf andere Zeichen abgebildet werden, z.B. c wird zu f. Woher weiß man, auf welches Zeichen das Klartextzeichen abgebildet wird? Dafür gibt es den Schlüssel. Dieser ist eine Zahl, wie hier 3, und gibt an, um wieviel der Buchstabe im Alphabet „verschoben“ wird. C ist Buchstabe Nummer 3 im Alphabet und F ist Buchstabe 6. Von 3 nach 6 sind es 3 Schritte. Deshalb wird "c" zu "f". Man könnte auch sagen: c + 3 = f.

Aufgabe: Es wird vorausgesetzt, dass du die Aufgaben aus Teil 3 4 erfüllt hast. Falls du absolut nicht weitergekommen bist, nutze das Lösungsprojekt aus Teil 3 als Grundlage für die Aufgabe von heute. Kopiere also zur Vorbereitung dein Projekt von Teil 3 oder remixe das Lösungsprojekt von Teil 3.

Tipp: Diese Kreativ-Aufgaben versuchen dir jedes mal dabei zu helfen, dich weiterzuentwickeln. Didaktisch gesehen wird hier der konstruktivistische Ansatz verwendet, den du vielleicht nicht gewohnt bist: Du konstruierst Verständnis indem du immer wieder Fehler machst, und daraus lernst. Fehler sind hier also etwas sehr wertvolles und positives!

2. Erstmal nachdenken

Aufgabe: Erinnere dich. Letztes mal hast du programmiert, dass Ada ihr Gedicht Zeichen für Zeichen in eine Folge zweistelliger Zahlen verwandelt. Schau dir die Schleife nochmal an und vollziehe deine Gedanken nochmal nach. Hast du schon eine Idee, wo du für die Aufgabe dieses vierten Teils, das Gedicht Zeichen für Zeichen zu verschlüsseln, ansetzen könntest?

Tipp: Falls du das Lösungsprojekt benutzt: Vollziehe den Code nach.

3. Einen Verschlüsselungs-Algorithmus erstellen

Aufgabe: Konstruiere deinen Algorthmus zum Verschlüsseln des Gedichts. Formuliere die in der Einleitung genannte Aufgabe für dich selbst. Was ist Schritt-für-Schritt zu tun? Schreibe die Schritte so detailliert auf wie möglich! Das zwingt dich, alle Elemente der Aufgabe zu verstehen und hilft dir aufzuzeigen, wo Unklarheiten sind.

Tipp: Mach Notizen oder male ein Diagramm!

Tipp: Arbeite von grob nach fein, z.B. "Verschiebe-Verschlüsselungsalgorithmus implementieren heißt: Das Gedicht Zeichen für Zeichen verschlüsseln und Zeichen für Zeichen entschlüsseln.", "Das Gedicht Zeichen für Zeichen verschlüsseln heißt: Zeichen 1, 2... von Zeile 1, Zeichen 1, 2… von Zeile 2 usw. verschlüsseln.", ...

Tipp: Was heißt "verschlüsseln"? Denk an die Caesar-Verschlüsselung aus der Einleitung. Hier arbeiten wir aber nicht mit dem Alphabet, sondern mit den Zeichen aus unserer Look-Up-Table. Wie kommst du vom Index (d.h. Stelle des Zeichens in der Look-Up-table) eines Klartext-Zeichens zum Index des verschlüsselten Zeichens? Du kannst deine Ideen mit Stift und Papier testen!

Tipp: Hast du die passende mathematische Formel für die Abbildung des Klartext-Zeichens auf das verschlüsselte Zeichen schon gefunden? Wie gehst du mit den leeren Zeilen am Anfang der Tabelle um?

Tipp: Wenn du das Gedicht nicht als Einzelzeilen sondern als Ganzes verschlüsseln willst, musst du auch Zeilenumbrüche verschlüsseln.

Tipp: Falls du nicht weiterkommst, tausch dich mit anderen aus, z.B. im Scratch-Forum!

4. Einen Verschlüsselungs-Algorithmus implementieren

Aufgabe: Implementiere deinen Algorithmus zum Verschlüsseln des Gedichts.

Tipp: Diese Aufgabe wirkt erstmal riesig! Vielleicht konnte dir die Vorbereitung aus Schritt 3 aber schon helfen, sie nicht mehr so überwältigend wirken zu lassen. Falls es hakt, versuche herauszufinden, was dir Schwierigkeiten bereitet. Hast du einen Schritt nicht genug ausgefeilt? Kannst du die passenden Scratch-Befehle nicht finden? Frag deine Freunde oder deine*n Tutor*in um Hilfe!

Tipp: Speichere dein Ergebnis auch als Element einer Liste, damt es kopierbar wird.

5. Das Gedicht entschlüsseln

Aufgabe: Wiederhole Schritt 3 und 4 übertragen auf das Entschlüsseln des verschlüsselten Gedichts.

Tipp: An dem Entschlüsseln des "/n" für eine neue Zeile hat die Autorin dieser Aufgabe ganz schön lang geknobelt. Als was wurde "/n" verschlüsselt? Was ist der Index des verschlüsselten Zeichens? Was ist der Index des entschlüsselten Zeichens? Scratch fängt bei 1 an, die Listenelemente zu zählen, es gibt also kein Element an der Stelle 0 der Liste - denn es gibt keine Stelle 0. Nutze einen Bedingungsblock, um den Spezialfall abzufangen!

Tipp: Einen Lösungsvorschlag findest du unter https://scratch.mit.edu/projects/441699489/ oder etwas erweiterter unter https://scratch.mit.edu/projects/435661005/.

6. Geheime Gedichte austauschen!

Aufgabe: Schicke einer anderen Person, die diese Challenge auch gelöst hat (z.B. dein*e Mentor*in oder Klassenkamerad*in), ein verschlüsseltes Gedicht. Kann sie es in ihrem Gedicht-Generator entschlüsseln? Falls nein, warum nicht?

7. Ein Schlusswort

Aufgabe: Was sagt folgende geheime Nachricht der Autorin?

OZMZBEIZDMFXYDJXDLJXHMFKKYBE


Code zum Einbinden ins Forum:
[wiki=de:Projekt: Ada's Gedicht Generator Teil 4 - Verschlüsselung]Projekt: Ada's Gedicht Generator Teil 4 - Verschlüsselung[/wiki]

Kategorie:En-Link

Cookies helfen uns bei der Bereitstellung von Das deutschsprachige Scratch-Wiki. Durch die Nutzung von Das deutschsprachige Scratch-Wiki erklärst du dich damit einverstanden, dass wir Cookies speichern.