From e4ad0af39b6eab2dbd35cfae203aac0f6d9b6a12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20J=C3=A4schke?= <jaeschke@l3s.de> Date: Fri, 13 Jul 2018 11:54:05 +0200 Subject: [PATCH] =?UTF-8?q?aufger=C3=A4umt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.org | 2 + notebooks/README.org | 2 + notebooks/einfuehrung.ipynb | 96 ------------------------------------- notebooks/seminar00.ipynb | 87 ++++++++++++--------------------- notebooks/seminar09.ipynb | 13 +++-- notebooks/seminar10.ipynb | 11 ++--- 6 files changed, 44 insertions(+), 167 deletions(-) delete mode 100644 notebooks/einfuehrung.ipynb diff --git a/README.org b/README.org index 636a312..876271a 100644 --- a/README.org +++ b/README.org @@ -33,6 +33,8 @@ speichern unter.../ wählen: - [[https://scm.cms.hu-berlin.de/ibi/python/raw/master/notebooks/seminar07.ipynb][7: Iteration]] - [[https://scm.cms.hu-berlin.de/ibi/python/raw/master/notebooks/seminar08.ipynb][8: Zeichenketten]] - [[https://scm.cms.hu-berlin.de/ibi/python/raw/master/notebooks/seminar09.ipynb][9: Fallstudie: Wortspiele]] +- [[https://scm.cms.hu-berlin.de/ibi/python/raw/master/notebooks/seminar10.ipynb][10: Listen]] +- [[https://scm.cms.hu-berlin.de/ibi/python/raw/master/notebooks/seminar11.ipynb][11: Assoziative Datenfelder]] Merken Sie sich, wo Sie die Dateien gespeichert haben und navigieren Sie dann mit Jupyter zu diesem Ordner, um sie zu öffnen. diff --git a/notebooks/README.org b/notebooks/README.org index a17d934..9529e66 100644 --- a/notebooks/README.org +++ b/notebooks/README.org @@ -25,3 +25,5 @@ speichern unter.../ wählen: - [[https://scm.cms.hu-berlin.de/ibi/python/raw/master/notebooks/seminar07.ipynb][7: Iteration]] - [[https://scm.cms.hu-berlin.de/ibi/python/raw/master/notebooks/seminar08.ipynb][8: Zeichenketten]] - [[https://scm.cms.hu-berlin.de/ibi/python/raw/master/notebooks/seminar09.ipynb][9: Fallstudie: Wortspiele]] +- [[https://scm.cms.hu-berlin.de/ibi/python/raw/master/notebooks/seminar10.ipynb][10: Listen]] +- [[https://scm.cms.hu-berlin.de/ibi/python/raw/master/notebooks/seminar11.ipynb][11: Assoziative Datenfelder]] diff --git a/notebooks/einfuehrung.ipynb b/notebooks/einfuehrung.ipynb deleted file mode 100644 index e244373..0000000 --- a/notebooks/einfuehrung.ipynb +++ /dev/null @@ -1,96 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Seminar Problemorientierte Programmierung\n", - "\n", - "Diese Notebooks sind im Wesentlichen eine Übersetzung der 2. Ausgabe des Buches \"Think Python\" von Allen B. Downey. Sie finden den originalen Text hier: __[gemeinsame Etherpad](http://url)__ http://greenteapress.com/wp/think-python-2e/.\n", - "\n", - "## Lernziele und Ablauf diese Seminars\n", - "\n", - "Unser Lernziel ist, dass Sie Programmieren lernen (mit Python :-). Bis dahin ist es ein weiter Weg. Der beste Tipp ist: üben, üben, üben\n", - "\n", - "Das Seminar wird wie folgt ablaufen:\n", - "\n", - "1. Sie arbeiten als Pair-Programming-Team diese Jupyter-Notebooks durch.\n", - " - Währenddessen bin ich für Sie da um Fragen zu beantworten und Probleme zu lösen\n", - " - Nutzen sie bitte auch das [gemeinsame Etherpad](http://url)__ für Codeschnipsel und allgemeine Probleme. \n", - "2. Nach ca. 15 Minuten unterbrechen wir das Programmieren und Sie wechseln die Rollen (NavigatorIn<->FahrerIn)\n", - " - Jetzt nutzen wir das [Etherpad](http://url) und besprechen Fragen und Probleme\n", - "3. Schritte 1. und 2. bis zum Ende des Seminars wiederholen\n", - "4. Zuhause arbeiten Sie gemeinsam das durch, was Sie im Seminar nicht geschafft haben. Dies gilt besonders für die Aufgaben \n", - " - Wir werden im Seminar entscheiden, bis zu welchem Notebook Sie kommen sollten.\n", - " \n", - "## Tipps\n", - "\n", - " - Arbeiten Sie die Notebooks selbständig im Team durch und probieren Sie möglichst viel aus. Seien Sie kreativ, neugierig und manchmal auch destruktiv. Denn auch durch Fehler lernen Sie.\n", - " - Sie können alles in Ihrem Notebook bearbeiten ... nutzen Sie diese Möglichkeit. Ergänzen Sie also Text, löschen Sie, was Sie überflüssig finden, fügen Sie Ihre eigenen Notizen oder Programme hinzu. Dieses Notebook kann Ihr \"Portfolio\" werden: eine Demonstration dessen, was Sie schon können.\n", - " - Denken Sie daran, alle Code-Blöcke auszuführen. \"Unbekannter\" Code führt in Jupyter häufig zu leicht vermeidbaren Fehlern.\n", - " - Falls Sie mal nicht weiterkommen: helfen Sie sich gegenseitig und versuchen Sie verschiedene Dinge. Schreiben Sie Ihr Problem z.B. einfach mal ganz genau hier im Notebook auf. Oft hilft das Aufschreiben eines Problems schon bei der Lösung eines Problems.\n", - "\n", - "## Wiederkehrende Abschnitte:\n", - "\n", - " - **Exkurse** sind Material, welches Sie sich nur anschauen brauchen, falls es Sie interessiert. Bitte schauen Sie sich die Exkurse eher zu Hause an, als während des Seminars, damit Sie vorwärts kommen. Die Inhalte der Exkurse sind nicht notwendig, um vorwärts zu kommen, aber hilfreich, um mehr zu lernen.\n", - " - **Debugging-Abschnitte** erklären, wie Sie Fehler finden und beheben können.\n", - " - **Glossar-Abschnitte** listen die Begriffe auf, die im Kapitel vermittelt wurden. Es ist eine gute Übung für zu Hause, jeden Begriff dort noch einmal in eigenen Worten zu definieren.\n", - " - Schließlich gibt es **Übungen**, diese sollten Sie unbedingt durchführen und erst fortfahren, wenn Sie die Aufgaben lösen konnten und verstanden haben.\n", - " \n", - "## Hinweise zur Benutzung von Jupyter\n", - "\n", - " - Sie kommen deutlich schneller vorwärts, wenn Sie Tastaturkürzel nutzen (und nicht die Maus). Im \"Help\"-Menü gibt es dazu den \"Keyboard Shortcuts\"-Eintrag. Sie können aber auch einfach die Tastenkombination `ESC h` drücken (das bedeutet: die `ESC`-Taste drücken und dann die Taste h). Wichtigste Kombinationen: `ESC b` fügt einen neuen Block ein, `STRG-ENTER` (oder `STRG-RETURN`, also `STRG` gedrückt halten und dann `RETURN` drücken) führt den aktuellen Block aus, `ESC m` ändert den Typ des aktuellen Blocks auf Markdown (und `ESC y` zu Python), usw.\n", - " - Alternativ können Sie auch die Knöpfe oben mit der Maus bedienen.\n", - " - Es gibt zwei Arten von Blöcken: \"Code\" ist für Python-Code, \"Markdown\" ist für Texte, die Sie mit Hilfe der [Markdown-Syntax](https://de.wikipedia.org/wiki/Markdown#Auszeichnungsbeispiele) formatieren können.\n", - " - Sie können auf Text doppelt klicken, um sich den Markdown-Quellcode anzuzeigen. Probieren Sie es mit diesem Text aus.\n", - " - Wenn Sie mal etwas \"kaputtgespielt\" haben, hilft es evtl., im \"Kernel\"-Menü den \"Restart\"-Eintrag auszuwählen.\n", - " - Mit der Funktion help können Sie in Python zu vielen Funktionen Hilfe erhalten. Die offizielle Python-Dokumentation finden Sie hier: https://docs.python.org/3/.\n", - "\n", - "## Exkurs: Was mir an Python gefällt:\n", - "\n", - "In dieser Rubrik, die normalerweise am Anfang eines Kapitels steht, möchte ich Ihnen zeigen, wofür ich Python nutze und warum ich es mag. Sie werden vielleicht noch nicht verstehen, was ich genau mache, aber Sie sehen damit schon einmal die Möglichkeiten von Python und können später darauf zurückgreifen. Da dies ein Exkurs ist, können Sie diese Rubrik gerne auch erst einmal überspringen.\n", - "\n", - "Ich finde toll, dass ich mit Python ganz einfach Zufallsexperimente durchtesten kann. Das hilft mir, Stochastik besser zu verstehen. Z.B. das Würfeln mit zwei Würfeln:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import random # Zufallszahlen, siehe https://docs.python.org/3/library/random.html\n", - "\n", - "# Werte initialisieren, größter möglicher Wert bei zwei Würfeln: 6+6=12 \n", - "haeufigkeiten = [0 for i in range(13)]\n", - "\n", - "wuerfe = 100000\n", - "for i in range(wuerfe):\n", - " # Würfelsumme für zwei Würfel zählen\n", - " haeufigkeiten[random.randrange(1,7) + random.randrange(1,7)] += 1\n", - "\n", - "# Ergebnis als Tabelle ausgeben\n", - "print(\"Wir würfeln wiederholt mit zwei sechsseitigen Würfeln und addieren die Augenzahlen zusammen:\")\n", - "print(\"Summe Augenzahlen:\", \"\\t\".join([str(i) for i in range(2,13)]), sep='\\t')\n", - "print(\"Anzahl der Würfe:\", \"\\t\".join([str(i) for i in haeufigkeiten[2:]]), sep='\\t')\n", - "print(\"Wahrscheinlichkeit:\", \"\\t\".join([\"{:2.3f}\".format(i/wuerfe) for i in haeufigkeiten[2:]]), sep='\\t')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "([Random Number](https://xkcd.com/221/), Randall Munroe)" - ] - } - ], - "metadata": { - "language_info": { - "name": "python", - "pygments_lexer": "ipython3" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/notebooks/seminar00.ipynb b/notebooks/seminar00.ipynb index 013fdcb..d1e9b89 100644 --- a/notebooks/seminar00.ipynb +++ b/notebooks/seminar00.ipynb @@ -8,58 +8,46 @@ "\n", "Diese Notebooks sind im Wesentlichen eine Übersetzung der 2. Ausgabe des Buches \"Think Python\" von Allen B. Downey. Sie finden den originalen Text hier: http://greenteapress.com/wp/think-python-2e/.\n", "\n", - "## Lernziele + Ablauf dieses Seminars\n", + "## Lernziele und Ablauf diese Seminars\n", "\n", - "- Unser **Lernziel** ist, dass Sie **Programmieren lernen** (mit Python :-). Bis dahin ist es ein weiter Weg. Der beste Tipp ist: üben, üben, üben. \n", - "- Wir versuchen es dieses Mal mit folgendem **Ablauf** im Seminar:\n", - " 1. Sie arbeiten als Pair-Programming-Team diese Jupyter-Notebooks durch.\n", - " - Währenddessen bin ich für Sie da, um Fragen zu beantworten und Probleme zu lösen.\n", - " - Sie können Codeschnippsel und Fragen im [gemeinsamen Etherpad](https://pad.okfn.org/p/ibi_spp) ablegen.\n", - " 2. Nach ca. 15 Minuten unterbrechen wir das Programmieren und Sie wechseln die Rollen (Navigator<->Fahrerin).\n", - " - Jetzt besteht die Möglichkeit, Fragen zu stellen und Probleme im Plenum anzusprechen. Dazu nutzen wir auch das [Etherpad](https://pad.okfn.org/p/ibi_spp).\n", - " 3. Wir wiederholen die Schritte 1.+2. bis zum Ende des Seminars.\n", - " 4. Nach dem Seminar arbeiten Sie bitte die übrigen Notebooks gemeinsam durch, insbesondere die Übungen.\n", - " - Wir werden im Seminar entscheiden, bis zu welchem Notebook Sie kommen sollten.\n", + "Unser Lernziel ist, dass Sie Programmieren lernen (mit Python :-). Bis dahin ist es ein weiter Weg. Der beste Tipp ist: üben, üben, üben.\n", "\n", + "Das Seminar wird wie folgt ablaufen:\n", + "\n", + "1. Sie arbeiten als Pair-Programming-Team diese Jupyter-Notebooks durch.\n", + " - Währenddessen bin ich für Sie da um Fragen zu beantworten und Probleme zu lösen\n", + " - Nutzen sie bitte auch das [gemeinsame Etherpad](https://etherpad.gwdg.de/p/Pro2P) für Codeschnipsel und allgemeine Probleme. \n", + "2. Alle ca. 15 Minuten unterbrechen wir das Programmieren und Sie wechseln die Rollen (NavigatorIn<->FahrerIn)\n", + "3. Die Schritte 1. und 2. wiederholen wir bis zum Ende des Seminars\n", + "4. Zuhause arbeiten Sie gemeinsam das durch, was Sie im Seminar nicht geschafft haben. Dies gilt besonders für die Aufgaben \n", + " - Wir werden im Seminar entscheiden, bis zu welchem Notebook Sie kommen sollten.\n", + " \n", "## Tipps\n", "\n", - "- Arbeiten Sie die Notebooks selbständig im Team durch und **probieren Sie möglichst viel aus**. Seien Sie kreativ, neugierig und manchmal auch destruktiv. Denn auch durch Fehler lernen Sie.\n", - "- **Sie können alles in Ihrem Notebook bearbeiten** ... nutzen Sie diese Möglichkeit. Ergänzen Sie also Text, löschen Sie, was Sie überflüssig finden, fügen Sie Ihre eigenen Notizen oder Programme hinzu. Dieses Notebook kann Ihr \"Portfolio\" werden: eine Demonstration dessen, was Sie schon können.\n", - "- Es gibt wiederkehrende Abschnitte in den Notebooks:\n", - " - **Exkurse** sind Material, welches Sie sich nur anschauen brauchen, falls es Sie interessiert. Bitte schauen Sie sich die Exkurse eher zu Hause an, als während des Seminars, damit Sie vorwärts kommen. Die Inhalte der Exkurse sind nicht notwendig, um vorwärts zu kommen, aber hilfreich, um mehr zu lernen.\n", - " - **Debugging**-Abschnitte erklären, wie Sie Fehler finden und beheben können. \n", - " - **Glossar**-Abschnitte listen die Begriffe auf, die im Kapitel vermittelt wurden. Es ist eine gute Übung für zu Hause, jeden Begriff dort noch einmal in eigenen Worten zu definieren. \n", - " - Schließlich gibt es **Übungen**, diese sollten Sie unbedingt durchführen und erst fortfahren, sobald Sie die Aufgaben lösen konnten und verstanden haben bzw. die Aufgaben nach dem Seminar lösen.\n", + " - Arbeiten Sie die Notebooks selbständig im Team durch und probieren Sie möglichst viel aus. Seien Sie kreativ, neugierig und manchmal auch destruktiv. Denn auch durch Fehler lernen Sie.\n", + " - Sie können alles in Ihrem Notebook bearbeiten ... nutzen Sie diese Möglichkeit. Ergänzen Sie also Text, löschen Sie, was Sie überflüssig finden, fügen Sie Ihre eigenen Notizen oder Programme hinzu. Dieses Notebook kann Ihr \"Portfolio\" werden: eine Demonstration dessen, was Sie schon können.\n", + " - Denken Sie daran, alle Code-Blöcke auszuführen. \"Unbekannter\" Code führt in Jupyter häufig zu leicht vermeidbaren Fehlern.\n", + " - Falls Sie mal nicht weiterkommen: helfen Sie sich gegenseitig und versuchen Sie verschiedene Dinge. Schreiben Sie Ihr Problem z.B. einfach mal ganz genau hier im Notebook auf. Oft hilft das Aufschreiben eines Problems schon bei der Lösung eines Problems.\n", "\n", - "- **Falls Sie mal nicht weiterkommen:** helfen Sie sich gegenseitig und versuchen Sie verschiedene Dinge. Schreiben Sie Ihr Problem z.B. einfach mal ganz genau hier im Notebook auf. Oft hilft das Aufschreiben eines Problems schon bei der Lösung eines Problems.\n", - "- Je nachdem wie gut Sie in den letzten beiden Seminaren aufgepasst haben (oder sich Dinge eingeprägt haben), kommt Ihnen einiges schon bekannt vor ... entscheiden Sie selbst, wie schnell Sie vorwärts kommen. Das Ziel ist, dass Sie diese Inhalte hier verstehen und später wieder abrufen können. \n", - "- Für die **Fortgeschrittenen**: am besten schauen Sie sich nochmal kurz alle Abschnitte an und entscheiden selbst, was Sie überspringen können. Falls Sie einige der Übungsaufgaben noch nicht durchgeführt haben, ist das jetzt eine gute Möglichkeit. Und ansonsten gibt es am Ende des [3. Kapitels](seminar03.ipynb) eine Knobelaufgabe.\n", + "## Wiederkehrende Abschnitte:\n", "\n", + " - **Exkurse** sind Material, welches Sie sich nur anschauen brauchen, falls es Sie interessiert. Bitte schauen Sie sich die Exkurse eher zu Hause an, als während des Seminars, damit Sie vorwärts kommen. Die Inhalte der Exkurse sind nicht notwendig, um vorwärts zu kommen, aber hilfreich, um mehr zu lernen.\n", + " - **Debugging-Abschnitte** erklären, wie Sie Fehler finden und beheben können.\n", + " - **Glossar-Abschnitte** listen die Begriffe auf, die im Kapitel vermittelt wurden. Es ist eine gute Übung für zu Hause, jeden Begriff dort noch einmal in eigenen Worten zu definieren.\n", + " - Schließlich gibt es **Übungen**, diese sollten Sie unbedingt durchführen und erst fortfahren, wenn Sie die Aufgaben lösen konnten und verstanden haben.\n", + " \n", "## Hinweise zur Benutzung von Jupyter\n", "\n", - "- Sie kommen deutlich schneller vorwärts, wenn Sie **Tastaturkürzel** nutzen (und nicht die Maus). Im \"Help\"-Menü gibt es dazu den \"Keyboard Shortcuts\"-Eintrag. Sie können aber auch einfach die Tastenkombination `ESC h` drücken (das bedeutet: die `ESC`-Taste drücken und dann die Taste `h`). Wichtigste Kombinationen: `ESC b` fügt einen neuen Block ein, `STRG-ENTER` (oder `STRG-RETURN`, also `STRG` gedrückt halten und dann `RETURN` drücken) führt den aktuellen Block aus, `ESC m` ändert den Typ des aktuellen Blocks auf Markdown (und `ESC y` zu Python), usw.\n", - "- Alternativ können Sie auch die Knöpfe oben mit der Maus bedienen.\n", - "- Es gibt zwei **Arten von Blöcken**: \"Code\" ist für Python-Code, \"Markdown\" ist für Texte, die Sie mit Hilfe der [Markdown-Syntax](https://de.wikipedia.org/wiki/Markdown#Auszeichnungsbeispiele) formatieren können.\n", - "- Sie können auf Text doppelt klicken, um sich den Markdown-Quellcode anzuzeigen. Probieren Sie es mit diesem Text aus. \n", - "- Wenn Sie mal etwas \"kaputtgespielt\" haben, hilft es evtl., im \"Kernel\"-Menü den \"Restart\"-Eintrag auszuwählen. \n", - "- Mit der Funktion `help` können Sie in Python zu vielen Funktionen Hilfe erhalten. Die offizielle Python-Dokumentation finden Sie hier: https://docs.python.org/3/.\n", - "\n", - "## Ihre Lernziele\n", - "\n", - "Beschreiben Sie in 2-3 Stichpunkten kurz was Sie im Seminar heute lernen wollen. Klicken Sie dazu doppelt auf diesen Text und bearbeiten Sie dann den Text:\n", + " - Sie kommen deutlich schneller vorwärts, wenn Sie Tastaturkürzel nutzen (und nicht die Maus). Im \"Help\"-Menü gibt es dazu den \"Keyboard Shortcuts\"-Eintrag. Sie können aber auch einfach die Tastenkombination `ESC h` drücken (das bedeutet: die `ESC`-Taste drücken und dann die Taste h). Wichtigste Kombinationen: `ESC b` fügt einen neuen Block ein, `STRG-ENTER` (oder `STRG-RETURN`, also `STRG` gedrückt halten und dann `RETURN` drücken) führt den aktuellen Block aus, `ESC m` ändert den Typ des aktuellen Blocks auf Markdown (und `ESC y` zu Python), usw.\n", + " - Alternativ können Sie auch die Knöpfe oben mit der Maus bedienen.\n", + " - Es gibt zwei Arten von Blöcken: \"Code\" ist für Python-Code, \"Markdown\" ist für Texte, die Sie mit Hilfe der [Markdown-Syntax](https://de.wikipedia.org/wiki/Markdown#Auszeichnungsbeispiele) formatieren können.\n", + " - Sie können auf Text doppelt klicken, um sich den Markdown-Quellcode anzuzeigen. Probieren Sie es mit diesem Text aus.\n", + " - Wenn Sie mal etwas \"kaputtgespielt\" haben, hilft es evtl., im \"Kernel\"-Menü den \"Restart\"-Eintrag auszuwählen.\n", + " - Mit der Funktion help können Sie in Python zu vielen Funktionen Hilfe erhalten. Die offizielle Python-Dokumentation finden Sie hier: https://docs.python.org/3/.\n", "\n", - "- \n", - "- \n", - "- " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Exkurs: Was mir an Python gefällt\n", + "## Exkurs: Was mir an Python gefällt:\n", "\n", - "In dieser Rubrik, die immer am Anfang eines Kapitels steht, möchte ich Ihnen zeigen, wofür ich Python nutze und warum ich es mag. Sie werden vielleicht noch nicht verstehen, was ich genau mache, aber Sie sehen damit schon einmal die Möglichkeiten von Python und können später darauf zurückgreifen. Da dies auch ein Exkurs ist, können Sie diese Rubrik gerne auch erst einmal überspringen.\n", + "In dieser Rubrik, die normalerweise am Anfang eines Kapitels steht, möchte ich Ihnen zeigen, wofür ich Python nutze und warum ich es mag. Sie werden vielleicht noch nicht verstehen, was ich genau mache, aber Sie sehen damit schon einmal die Möglichkeiten von Python und können später darauf zurückgreifen. Da dies ein Exkurs ist, können Sie diese Rubrik gerne auch erst einmal überspringen.\n", "\n", "Ich finde toll, dass ich mit Python ganz einfach Zufallsexperimente durchtesten kann. Das hilft mir, Stochastik besser zu verstehen. Z.B. das Würfeln mit zwei Würfeln:" ] @@ -72,7 +60,7 @@ "source": [ "import random # Zufallszahlen, siehe https://docs.python.org/3/library/random.html\n", "\n", - "# Werte initialisieren, größtermöglicher Wert bei zwei Würfeln: 6+6=12 \n", + "# Werte initialisieren, größter möglicher Wert bei zwei Würfeln: 6+6=12 \n", "haeufigkeiten = [0 for i in range(13)]\n", "\n", "wuerfe = 100000\n", @@ -94,19 +82,6 @@ "\n", "([Random Number](https://xkcd.com/221/), Randall Munroe)" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Kapitelübersicht\n", - "\n", - "- [1: Die ersten Programme](seminar01.ipynb)\n", - "- [2: Variablen, Ausdrücke und Anweisungen](seminar02.ipynb)\n", - "- [3: Funktionen](seminar03.ipynb)\n", - "\n", - "... wird fortgesetzt. " - ] } ], "metadata": { diff --git a/notebooks/seminar09.ipynb b/notebooks/seminar09.ipynb index 7470755..2cab1ce 100644 --- a/notebooks/seminar09.ipynb +++ b/notebooks/seminar09.ipynb @@ -205,7 +205,7 @@ "outputs": [], "source": [ "def has_no_e(word):\n", - " # Implementieren Sie hier die Funktion has_no_e\n" + " # Implementieren Sie hier die Funktion has_no_e" ] }, { @@ -221,8 +221,7 @@ "metadata": {}, "outputs": [], "source": [ - "# Implementieren Sie hier Ihr Programm\n", - "\n" + "# Implementieren Sie hier Ihr Programm" ] }, { @@ -241,7 +240,7 @@ "outputs": [], "source": [ "def avoids(word, forbidden):\n", - " # Implementieren Sie hier die Funktion\n" + " # Implementieren Sie hier die Funktion" ] }, { @@ -259,14 +258,14 @@ "metadata": {}, "outputs": [], "source": [ - "# Implementieren Sie hier Ihr Programm\n" + "# Implementieren Sie hier Ihr Programm" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "Können Sie eine Kombination von fünf verbotenen Buchstaben finden, die die kleinste Anzahl an Wörtern ausschließt? (*Bestwert unter den 10000 Wörtern der Liste ist bisher 634.*)" + "Können Sie eine Kombination von fünf verbotenen Buchstaben finden, die die kleinste Anzahl an Wörtern ausschließt? (*Bestwert unter den 10000 Wörtern der Liste ist bisher 590.*)" ] }, { @@ -301,7 +300,7 @@ "metadata": {}, "outputs": [], "source": [ - "# Implementieren Sie hier Ihr Programm\n" + "# Implementieren Sie hier Ihr Programm" ] }, { diff --git a/notebooks/seminar10.ipynb b/notebooks/seminar10.ipynb index 4d786e0..fb810ed 100644 --- a/notebooks/seminar10.ipynb +++ b/notebooks/seminar10.ipynb @@ -1292,7 +1292,8 @@ "outputs": [], "source": [ "def nested_sum(t):\n", - " # Implementieren Sie hier die Funktion" + " # Implementieren Sie hier die Funktion\n", + " " ] }, { @@ -1552,13 +1553,7 @@ "metadata": {}, "outputs": [], "source": [ - "# Implementieren Sie hier das Programm\n", - "\n", - "# Wörter einlesen\n", - "with open('top10000de.txt', encoding=\"latin1\") as f:\n", - " words = []\n", - " for line in f:\n", - " words.append(line.strip().lower())" + "# Implementieren Sie hier das Programm" ] }, { -- GitLab