====== Erste Schritte in Python ======
Für den Einstieg in die Programmierung mit [[edu:Python]] bietet sich die Seite **[[http://cscircles.cemc.uwaterloo.ca/de|Computer Science Circles]]** an.((Die deutsche Version der Seite wird vom Bundeswettbewerb Informatik betreut.)) Sie enthält ein schönes deutsches Tutorial mit interaktiven Übungen zum Erlernen der Programmiersprache. Ein [[http://cscircles.cemc.uwaterloo.ca/cheatsheet-de/|Spickzettel zum Ausdrucken]] hilft bei den Übungen. Die Aufgaben können direkt auf der Seite in einem interaktiven Interpreter erledigt werden.
- Registriere dich auf der Webseite mit einem eigenen Konto und notiere die Zugangsdaten.
- Füge mich (Benutzername //bakera//) in den Profil-Einstellungen als "guru" hinzu. So bleibe ich über deinen Fortschritt bei den Übungen auf dem Laufenden und kann ggf. frühzeitig weiterhelfen.
- Bearbeite die Kapitel und mache die Übungen.
- Hausaufgabe:
- Drucke den Spickzettel aus, damit du immer eine kleine Hilfe an der Hand hast.
- Installiere Python 3 oder bringe die Installationsdatei auf einem USB-Stick mit.
===== Gliederung =====
==== Sitzung 1 (Grundlagen) ====
^ Kapitel ^ Inhalt ^ Anmerkungen ^
| 0 | Hallo Welt | Grundsätzliche Nutzung des Online-Python-Interpreters, ''print'' |
| 1 | Variablen | |
| 1E | Fehler | Syntaxfehler, Logische Fehler, Laufzeitfehler |
| | | **Übung:** Beschreibe in eigenen Worten: "Syntaxfehler", "Laufzeitfehler", "logischer Fehler". |
| 2 | Funktionen | Argumente/Parameter, Rückgabewert, Beispiele: ''print, min, max'', Verketten von Funktionsaufrufen, z.B. min(max(13, 7), 9) |
| 2X | Zusätzliche Übungen (optional) | keine neuen Inhalte, sondern komplexere Übungen |
==== Sitzung 2 (Grundlagen) ====
^ Kapitel ^ Inhalt ^ Anmerkungen ^
| 3 | Kommentare und Anführungszeichen | Kommentare: #, Anführungszeichen alternativ einfaches oder doppeltes Hochkomma, Maskierung von Anführungszeichen durch \' oder \" |
| 4 | Typen | Datentypen ''str, int, float'', ''*''-Operator für Zeichenketten, z.B. "MA" * 2, Typumwandlung mit ''int(..), float(..), str(..)'' |
| 5 | Eingabe | ''input'', Rückgabetyp der Input Funktion ist "str" |
==== Sitzung 3 (Kontrollstrukturen) ====
^ Kapitel ^ Inhalt ^ Anmerkungen ^
| 6 |if | if-Anweisungen, Einrücken von Blöcken, Vergleichsoperatoren ''<, <='', Datentyp bool, Konstanten True und False, Logische Operatoren != und == |
| 6D | Design, Debugging und Donuts | Entwurf und Testen von Algorithmen |
==== Sitzung 4 (Kontrollstrukturen) ====
^ Kapitel ^ Inhalt ^ Anmerkungen ^
| 7A | Zeichenketten bzw. Strings | Länge einer Zeichenkette: ''len(s)'', Zugriff auf einzelne Zeichen über index, z.B.: ''s[0]'', Teilstrings mit ''s[start:ende]'', Zeichenketten verbinden mit + und Vervielfachen mit *, Zeichen <-> Unicode-Position mit ord() und chr() |
| 7B | Mathematik | Operatoren **, //, %, Modul math, Funktionen sqrt(), exp(), log(), sin(), cos(), tan(), pi |
| 7C | Schleifen | while-Schleifen, for-Schleifen, break, continue (break und continue sollten sehr sparsam eingesetzt werden, da sie den Code meist unübersichtlicher machen.) |
==== Sitzung 5 (Kontrollstrukturen) ====
Achtung! Reihenfolge geändert.
^ Kapitel ^ Inhalt ^ Anmerkungen ^
| 9 | Fälle & Logik | else, elif, and, or, not |
| 8 | Remix (optional) | keine neuen Inhalte, sondern Übungen (teilw. schwierig) |
==== Sitzung 6 (Funktionen) ====
^ Kapitel ^ Inhalt ^ Anmerkungen ^
| 10 | def | Funktionen definieren und aufrufen, Rückgabewerte, mehrere Parameter |
| 11A | Kleinbuchstaben | Übung zum Umwandeln von Zeichenketten mit selbst definierten Funktionen |
| 11B | Geltungsbereich von Variablen | In einer Funktion darf man nie lesend oder schreibend auf eine Variable außerhalb der Funktion zugreifen. Dafür werden Parameter und Rückgabewerte genutzt. globale / lokale Variablen |
==== Sitzung 7 (Listen) ====
^ Kapitel ^ Inhalt ^ Anmerkungen ^
| 13 | Listen (Arrays) | Erzeugung von Listen durch [element1, ..., elementn], Zugriff auf Elemente über deren Index, z.B. liste[0], len(liste), Verketten und Vervielfachen von Listen durch + bzw. *, Negative Indizes für Zugriff vom Ende der Liste aus, max(liste) und sum(liste), for element in liste: ... |
| 14 | Methoden | Achtung: Die Übung "Exact Postage" geht von einer Postleitzahl mit genau 6 Stellen aus (bis auf Leerzeichen), Listenmethoden wie z.B. index(x), count(x), append(x), insert(i, x), extend(liste), remove(x), pop(x), pop(), reverse(), sort(), x in liste zum Überprüfen, ob Element in Liste vorhanden ist, "Slices" mit [start:ende:step] analog zu Zeichenketten |