hier die Materialien und unterrichtsbegleitende Links. Der Verlaufsplan dient zur Orientierung. Wir beginnen mit der Programmiersprache Python.
Bei Fragen/Problemen mailen (s. Überblick), eigenes Material ist immer herzlich willkommen und wird hier veröffentlicht.
Dazu haben wir noch ein Blog (Registrieren nicht vergessen ;-)
Verlauf der Reihe
Informatik-Kurs am GA (2019/20) | |||
Datum | Reihe | Stundenthema | Texte/Material |
---|---|---|---|
2. HJ | Mathematik & Python | Materialsammlung aus Edmund Weitz, Konkrete Mathematik (nicht nur) für Informatiker, Hamburg 2018: | Stellenwertsystem, modulare Arithmetik, Primzahlen, Neuronale Netze |
11.03. - 07.04. - Machine Learning | Wer hat Lust auf den Deep Learning-Kurs auf OpenHPI (11.03. - 07.04.)? Löwis-Kurs und Mathekenntnisse auf Abiturniveau sind die Voraussetzungen Tipp für ML in Python (unabhängig vom Kurs): Importieren der Libraries | ||
für Di 26.05. | Kryptographie | RSA in a nutshell am Beispiel Dialog der Schwestern n=681, e=151. Gesucht ist: cd mod n |
must read: Uni Flensburg, RSA-Verschlüsselung. Wir brauchen:
|
Di 14.04. (home office) | Data Science | Hier eine Einführung in Pandas (aus edx, IBM - Introduction to Data Science): | Introduction to Pandas Python. Für die Data Science-Leute: importiert covid-death.csv und wertet es in Pandas aus. Vergleicht with und without underlying conditions etc. Hier noch eine von mir geschriebene Einführung: CSV-Dateien in Pandas auswerten |
Di 07.04. (home office) | Kryptographie | Wdh.: Hier siehst du einen verschlüsselten Text. Schreibe eine Funktion (brute force), die den entschlüsselten Text zurückgibt: | Station - Kryptoanalyse beim Verschiebeverfahren. Für die Cracks: importiere Sweigarts detectEnglish.py (s. Anhang auf IServ), adaptiere das Modul für ein deutsches Wörterbuch (oder nimm einen englischen Text - egal) |
Mo/Di 30./31.03. (home office) | Corona & Python | In Pandemien spielt das exponentielle Wachstum eine entscheidende Rolle. In SZ online, Alle Daten zur Pandemie. lest ihr unter "Woran lässt sich erkennen, ob die Trendwende erreicht ist?" über die Verdoppelungsraten in bestimmten Zyklen (3 Tage, 7 Tage). | Hier die Aufgabe Verdoppelungszyklen in Pandemien, gefragt ist - you've guessed it - eine Python-Funktion, die tagesgenau angibt, was die Autoren beschreiben. Lösung:
zyklen.ipynb |
Diagramme mit matplotlib.pyplot: Screenshot exp. Wachstum Corona (Klick auf thumb = Vollbild): | |||
23.03. Klausur S4 | Corona-bedingt fällt die Klausur aus. Evtl. Ersatzleistungen und Noten werden per Mail und tel. mit jedem Einzelnen besprochen. Dazu wurde Mail an S4 am 18.03., 14:09 Uhr verschickt. Bitte auch in Spam-Folder gucken. | ||
16.-29.03. | Corona-bedingt bitte Aufgaben zu Hause erledigen. Bei Fragen mailto:Gebhard Dettmar | ||
Mo/Di 23./24.03. (home office) | Kryptographie | Modulare Arithmetik: Wende die modulare Arithmetik in Weitz, S. 33 - 38, auf Sweigarts caesarCipher.py an | Hier Sweigarts caesarCipher.py: Source Code for the Caesar Cipher Program, Chapter 5. Ab Zeile 32: Handle wraparound, if needed: - mache diesen Abschnitt überflüssig durch entprechende Modifikation der Zeilen 28 und 30. |
Mo/Di 16./17.03.(home office) | Klausurübung - Wiederhole vom 19.11. an: |
|
|
Mo/Di 24./25.02. | Kryptographie | Forts. Transposition Cipher: | Hier The Shorter Sweigart ;-) |
Mo/Di 17./18.02. (18. leider Uni-Tag) | Kryptographie | Transposition Cipher: Schreibe ein Programm, das einen Text auf eine bestimmte Anzahl von Spalten verteilt und spaltenweise zusammensetzt | Hier die Erläuterungen von Sweigart: Cracking Codes with Python, Chapter 7 |
Mo/Di 10./11.02. | Kryptographie | Caesar Cipher: Schreibe ein Programm, das einen Brut-Force-Angriff auf einen mit einem Dir unbekannten Schlüssel verschobenen Text startet | Tipp: Beginne mit for i in range(1, len(alphabet)): Das i liefert Dir die möglichen Verschiebeschlüssel. Vergleiche mit CaesarCipher.py von Al Sweigart: crypto.7z. |
Mo/Di 27./28.01. | Mathematik & Python | Wiederhole Cäsar-Verschlüsselung. Ver- und entschlüssele beliebige Sätze mit beliebigen Vielfachen von 26 (27 mit Leerzeichen) | Weiter mit Kapitel "Modulare Arithmetik" im Weitz
Für Dictionaries mit Buchstaben-/Worthäufigkeit schaut Euch defaultdict an: |
Mo 20.01 (Sek I-Konferenzen)/21.01. | Mathematik & Python | Zufallszahlen für die Verschlüsselung von Sätzen | s.u. |
Mo 13.01 (14.01. fällt aus) | Mathematik & Python | Zunächst mal die "Schwestern": wenn satz='ichbinbianca' -> zahlen='139 289 112 496 1335 612 80 2063 365 508 133 53'.split(), dann schreibe das Programm für satz = ' ', das satz='ichbinbianca' zurückgibt. |
Carsten Elsner, Der Dialog der Schwestern |
Mo/Di, 06./07.01. | Mathematik & Python | Wir machen jetzt Mathe ;-) Stellenwertsystem: Schreibe ein Programm, das Dezimalzahlen in Dual-, bzw. jede beliebige andere Basis umrechnet. |
Algorithmus für Dualzahlen: Dezimalzahl = 19 19 / 2 = 9, Rest 1 9 / 2 = 4, Rest 1 ... Letzter Teiler ist immer 1, Rest 1 Ergebnis invertieren, Ansatz wieder einmal hier: Sequentielle Datentypen |
Mo/Di, 16./17.12. | Kryptographie | Asymmetrische Verschlüsselung Frage: Bei Hempel ist d der private Schlüssel. Was ist das d bei Elsner? Ansonsten: Programm für die letzte Chiffre schreiben. |
Carsten Elsner, Der Dialog der Schwestern Timo Hempel, Einführung Kryptologie |
Mo/Di, 09./10.12. | Python | Textdateien einlesen, Zufallsnoten vergeben Wörter aus Textdateien zählen (cf., wie Prof. Löwis in 3.4.1 Zufallswürfe zählt) |
with open('/...path_to_file/namen.csv', 'r') as f: namen=f.read() namen=namen.split() Python Doc: 7.2. Reading and Writing Files |
Mo/Di, 02./03.12. | Kryptographie mit Python | Caesar-Cipher:
|
must read: Sequentielle Datentypen |
Di, 26.11. | Python | Mauseingaben, OpenHPI 4.4.1 - 3; Verschlüsselung | Hinweis: onclick() in CodeOcean --> onscreenclick() in Idle Verschlüsselung: Die Caesar-Chiffre |
Di, 19.11. | Python | ggt mit Modulo | Erweiterter euklidischer Algorithmus (aus der Reihe Zahlentheoretische Algorithmen der Kryptografie) |
Mo, 04.11. | Python | Klausurrückgabe S3 | Klausur Lösungsblatt |
Di, 29.10. | Python | Klausurrückgabe S1 | Klausur Lösungsblatt |
Mo, 30.09. / Di, 01.10. | Python | Klausurtraining. Tipp: Für Turtlegraphik -> Logo mit Python (s. rechte Spalte) | OpenHPI: Fragen Woche 2 und 3 (halb), Für die Klausur: Fragen und Antworten Woche 2 und 3 (halb), Turtlegraphik: Logo mit Python. Für Klausur: Python portable auf USB-Stick mithaben |
Mo, 12. / Di, 13.08. | Python | MOOC: Prof. Dr. Martin v. Löwis, Spielend Programmieren lernen. OpenHPI-Kurs von 2015. | Python runterladen (Link s.u.), Aufgaben aus Woche 1 bis 1.4.3 in Python schreiben, auf USB-Stick / Code Ocean parat haben und vorne am Rechner mit Beamer dem Kurs vorstellen können. |
Informatik-Kurs am HSG (2013/14) | |||
Mi, 07.08. | Think Python | How to Think Like a Computer Scientist: Python. Alte Ausgabe mit interaktiver python-shell, leider alte Python-Version. | Python runterladen (Link s.u.), Aufgaben aus Downey, Think Python, Chapter 2, Variables, expressions and statments, 2.12 Exercises lösen, in Python schreiben, auf USB-Stick o.ä. parat haben und vorne am Rechner mit Beamer dem Kurs vorstellen können. |
Mi, 14.08. | Think Python | Stunden addieren mit Modulus: Problemlösen mit Python | Programm aus Aufg. 3 mit korrekter Addition und Stundenausgabe (mit print) zu Ende schreiben. Für die Cracks: Schreibe das Programm so, dass ich beliebige Werte für Stunde und Minute eingeben kann. Tipp: raw_input() ist dein Freund, hier die Beschreibung |
Mi, 21.08. | Think Python | vorauss.: Stunden addieren mit: raw_input(); Think Python, Chapter 3, Functions | 3.16 Exercises 3.3 (alle), + 3.4 (die Guten :p) |
guckt mal, was ich gemacht habe (3.3): | def rechts(s): print s rechts('_'*(70-len('allen')) + 'allen') So ist das aber nicht gemeint ;-) |
||
Mi, 28.08. | Think Python | HA besprechen; Think Python, Chapter 4, Functions | Exercises 4.3, 1-5 |
Mi, 04.09. | Think Python | Das Haus vom Nikolaus (mit Pythagoras); Einstieg Chapter 5 | macht was mit "conditional statements" |
Mi, 11.09. | Think Python (Stunde fällt aus wg. Klassenfahrt) | Chapter 5, 5.8 Recursion | Exercise 5.3. Fermat's Last Theorem |
Mi, 18.09. | Think Python | Wdh. Chapter 5, 5.8 Recursion; Rekursion mit TurtleWorld | s.o. |
Mi, 25.09. | Think Python | Fruitful functions, Factorials + Recursion | Gesamtes Kapitel durcharbeiten, inkl. Code-Schreiben; erholen :) |
Mi, 16.10. | S1 erscheint nicht! | ||
Mi, 23.10. | S1 erscheint nicht! |
relevante Links (wird fortgesetzt):
- download python: Python 3.7.4 (latest stable, Windows).
- download python portable: Python 3.7.4 portable (latest stable, Windows, für GA, Com-Räume: 32 bit-Version).
-
Link zum Programme testen: pythontutor.com
z.B. Verschlüsselung von 'ich bin gebhard' mit Vielfachen von 27. - Allen B. Downey, Think Python. How to Think Like a Computer Scientist, Needham, Massachusetts 2013
- Getting Started with Python
- Python 3 Tutorial
- Python Course Computer Science Circles, Centre for Education in Mathematics and Computing, University of Waterloo.
- Al Sweigart, Cracking Codes with Python, 2nd edition.
- Verschlüsselung mit dem Caesar-Verfahren: Caesar-Chriffre.
- Bernhard Esslinger, Kryptographie lernen und anwenden mit CrypTool und SageMath, www.cryptool.org, 2018 (12. Aufl.).
- AI unplugged: Aktivitäten und Unterrichtsmaterial zu Künstlicher Intelligenz ohne Strom. Materialien von der FAU Erlangen-Nürnberg
- Mein GitHub Gist & GitHub: GitHub Gist & GitHub mit allen meinen Notebooks (+ einigen aus meinem IBM Data Science-Kurs auf edx, sofort erkennbar an der IBM Watson-Reklame ;-).
- MINTFIT Hamburg: MINTFIT Informatik. Eignungstest Informatikstudium (IMHO etwas arg einfach).
- CS50 Python: CS50’s Introduction to Programming with Python. HarvardX auf edx
- Zentralabi Informatik: Schriftliche Abiturprüfung Informatik
Viel Erfolg und viel Spaß im Kurs