dl021: python lernen!
Intro (00:00:00)
Thema des Podcasts (00:00:18)
Willkommen zur einundzwanzigsten Folge beim datenleben-Podcast, dem Podcast über Data Science. Wir sind Helena und Janine und möchten euch die Welt der Daten näher bringen. Was für Daten umgeben uns? Was können wir mit ihnen machen? Und was können wir aus ihnen lernen? Wer schon immer mehr darüber wissen wollte, ist hier richtig, denn diesen Fragen gehen wir nach.
Thema der Folge (00:00:41)
- Dieses Mal geht es besonders um den Aspekt was wir mit Daten machen können
- Oder besser gesagt: wie wir etwas mit Daten machen können
- Wir haben ja schon über Datenvisualisierung gesprochen
- Um aber an diesen Punkt zu kommen, braucht mensch vielleicht auch noch das richtige Werkzeug
- Eins der vielen Data Science Werkzeuge ist die Programmiersprache Python
- Wir sprechen mit Piko, wie und wo anfangen mit Python
- Piko kann Python und vermittelt es auch
Warum ist das Thema wichtig? (00:01:13)
- Python ist in Data Science eine der wesentlichen Programmiersprachen für Datenanalysen
- Mit Python kann man im Prinzip alles machen
Wer ist Piko? (00:01:57)
- Piko promoviert in Hamburg zum Thema Maschine Learning und Musiktheater und unterrichtet Python
- Ist durch den örtlichen CCC ihres Studienortes einer Hackerin begegnet, die sagte: Wenn Du wiederkommst, bringe ich Dir programmieren bei
- Nach dem ersten "Wie, das kann man einfach lernen?", blieb Piko dort kleben und lernte Python
- Hat das Buch Python for Kids in die Hand gedrückt bekommen, das super für den Einstieg ist
- War sehr begeistert und sieht, dass sie das mit vielen anderen Hackerinnen teilt, wie in dem Zitat:
- "Ich hab mich eigentlich immer schon für Technik interessiert, ich wusste es nur noch nicht."
Einspieler: Von Webstühlen über Raumfahrt zum Smartphone (00:04:29)
- Wir tragen leistungsfähige Geräte mit uns herum, über die wir die allermeiste Zeit nicht nachdenken
- Smartphone sei vielfach leistungsfähiger, als der Computer, der die Mondlandung steuerte
- Aber wie entstehen Programme?
- Sie werden in einer eigenen Sprache geschrieben, die von Maschinen interpretiert und umgesetzt wird
- Viele können sich vermutlich nicht vorstellen, wie die Programme, die ihren Alltag bereichern genau aussehen und funktionieren, obwohl wir die Geräte in der Hand haben und das Resultat sehen
- Ada Lovelace hat in der ersten Hälfte des 18. Jahrhunderts das Gegenteilige "Problem"
- Sie hat, das erste Programm überhaupt geschrieben – ohne die Maschine dafür in der Hand zu haben
- Natürlich hat sie aus ihrer Zeit heraus gehandelt und gedacht
- Sie war interessiert an und umgeben von Mathematik, Naturwissenschaften, Technik
- Die Industrialisierung war im vollen Gang, 1805 wurde der Jaquardwebstuhl von Joseph-Marie Jacquard vorgestellt, der mittels Lochkarten mechanisch gesteuert werden konnte
- Der Wunsch Prozesse zu automatisieren trieb diese und andere entwicklungen voran
- Ab 1822 arbeitete Charles Babbage an seine Analytischen Maschine, die Berechnungen ausführen sollte - mit dem Ziel schneller und besser, also fehlerfreier zu arbeiten, als der Mensch
- Für diese Maschine arbeitete Lovelace – noch während Babbage sie entwickelte – ein Programm aus
- Und heute stehen wir hier – und die meisten Menschen haben technik vor sich und wissen zu verfügung, mit dem sie selbst einfache, komplexe oder hochgradig komplizierte programme entwickeln könnten.
- Nur 3 Klicks entfernt steht alles, was man braucht, also: Was möchtest Du als erstes Programmieren?
Was macht Python allgemein aus? (00:07:18)
- Python ist eine Programmiersprache, die mit dem Ziel den Code "hübscher" zu machen
- Früher war Programmcode sehr kurz gehalten (wegen Speicher), daher nicht unbedingt verständlich
- Mit Python in den 1990ern wurde die Lesbarkeit verbessert, dass es Standard wurde
- Teilweise ist eine Zeile Code lesbar wie ein englischer Satz mit etwas anderen Satzzeichen
- Durch bessere Lesbarkeit hat mensch mehr Kapazitäten für andere Sachen
- Piko, warum ist Python eine gute Programmiersprache?
- Einerseits, wegen dieser Lesbarkeit und leichteren Verständlichkeit, ohne Dinge auswendig zu können
- Andererseits, weil es viele oft kostenfreie Ressourcen im Internet gibt, um es zu lernen
- Viele nutzen es und tauschen sich online aus, z. B. auf stackoverflow
- Es gibt viele Ressourcen für die Anwendung, Module für verschiedene Zwecke, Codeschnippsel
- Oft kann mensch auf Dinge anderer zurückgreifen und darauf dann eigene Projekte aufbauen
- Die ganze Community arbeitet an Python, Module werden entwickelt und stehen zum Beispiel via GitHub zur Verfügung oder finden eingang in die Packages, die mit Python installiert werden
- Je mehr Menschen dran mitwirken, desto besser wird die Sprache mit der Zeit
- Genereller Vorteil von Open Source Software, dass sie vom Mitwirken aller profitiert
Wie wird Python für Data Science eingesetzt? (00:12:08)
- Warum Python für Data Science gut geeignet ist, hat verschiedene Gründe
- Vor allem gibt es Module, die zum Beispiel speziell für Datenanalysen konzipiert sind
- Statistische Methoden liegen also schon fertig vor und müssen nicht eigens programmiert werden
- Die Jupyter Notebooks, die es gibt, sind auch sehr gut, um schnell Datenanalysen zu machen
- Weboberfläche, in der mensch Programmschnippsel schnell testen und Ergebnisse anzeigen lassen kann zum Beispiel bei Zusatzpaketen wie Pandas -> Tabellen können direkt angezeigt werden
- Notebooks können gespeichert und mit anderen geteilt werdenhöre auch
- Gut für Exploration der Daten -> in Gefühl für diese zu bekommen -> dl013: datenvisualisierung
- Gegenüber R hat Python noch einen Vorteil: Python ist besser via eines Servers anwendbar, weil allgemeiner benutzbar als R, sodass Anwender*innen selbst in einer Webanwendung, die auf Python basiert, Daten auswerten können
Für welche Menschen ist Python noch interessant? (00:15:47)
- Anfänger*innen, die noch nicht viel mit Computern machen, aber ins Programmieren einsteigen wollen
- Wenn man Maschine Learning intensiver betreiben möchte, geht eher kein Weg um Python herum
- Empfehlenswert für Menschen, die bunte Lichter blinken lassen möchten -> MicroPython
- Die Frage ist: Wo fängt ein Mensch an, der vielleicht gar nicht weiß, was Python alles bietet?
- Wie soll jemand so wissen, welche Optionen auf den eigenen Interessengebieten vorliegen?
- Die Webseite und das Buch Automate the Boring Stuff kann da helfen
- Da lassen sich einige Projekte finden, um etwa wiederkehrende Aufgaben am PC zu automatisieren
Wie Python lernen und lehren? (00:20:33)
- Wie man den Einstieg findet, wo fängt man am besten an?
- Es gibt viele YouTube Tutorials und Websites, die Python vermitteln
- Problem: Allein als Mensch ohne Informatikhintergrund kann das frustrierend werden
- Gerade auch, wenn dann der Alltag noch dafür sorgt, dass mensch nicht regelmäßig dazu kommt
- Empfehlung: Accountability schaffen, z.B. mit einem Buch aus der Bibliothek -> Abgabefrist
- Accountability funktioniert am besten über einen Kurs, wo man sich mit anderen verschwistert
- Klug rangehen: Sachen müssen nicht immer perfekt sein!
- Python gibt gute Fehlerhinweise, aus denen mensch viel lernen kann, mehr vielleicht, als ohne Fehler
- Nicht frustriert sein bei Fehlern, das sind wertvolle Informationen -> Fehlermeldungen sind Freunde
- Wichtig beim Lernen: Sich selbst sagen können, was das Programm eigentlich machen soll
- Das heißt auch die einzelnen Schritte des Programms nachvollziehen und ausformulieren
- Für Lernende ist es gut, das Rad neu zu erfinden, ehe sie Code kopieren und nicht verstehen
- Lustigerweise heißt es in Python nicht Error wie Fehler, sondern Exception wie Ausnahme
- In Helenas Kursen ist immer ein Abschnitt mit absichtlich herbeigeführten Fehlern mit drin
- Umgang mit den Meldungen ist essentiell für das Verständnis
Was motiviert euch, Python zu unterrichten? (00:27:15)
- Helena: Menschen in die Lage bringen mit Technik umzugehen
- Einblicke in die Technik bekommen, sich ihr nicht ausgeliefert fühlen
- Menschen, die etwas lernen wollen, zu unterrichten, macht auch viel Spaß
- Helena gibt deswegen auch seit einigen Jahren Kurse in Bremen bei der Informatica Feminale
- Piko unterrichtet zusätzlich noch in ihrer Freizeit Menschen (kleiner Leak: unter anderem Janine)
- Pikos Motivation: Was zurückgeben! Aus der eigenen Geschichte raus, weil Python so viel für Piko ermöglicht hat und der Kurs sozusagen für 'Piko vor fünf Jahren' ist
- Weil Piko weiß, wie sich das anfangen anfühlt, macht sie ihre Kurse auch so, um alle abzuholen
- Anspruch: Kurs soll die langsamsten 30% abholen können
- Helena sagt, dass es ihr eher schwer fällt, sich in absolute Anfänger*innen reinzudenken
- Ihre Mindestvorraussetzung ist, Teilnehmende sollten selbstständig Programme installieren können
- Janine merkt an, dass das für sie noch verschiedene Dinge sind: es kann auch Hürden im Kopf geben
- Gedanken wie: Das verstehe ich ohnehin nicht in den Griff kriegen und auch ok finden, wenn mensch zu diesen 'langsamsten 30%' gehört, ohne sich gleich überfordert zu fühlen
- Piko: 'langsam' ist vielleicht auch nicht der korrekte Begriff, sondern eher es fehlt Vorwissen
- Wer Maschinenbau studiert hat, hat andere Denkgewohnheiten gelernt als Geisteswissenschlaftler*innen
- Stereotype Threat: Menschen schneiden bei Tests schlechter ab, wenn ihnen gesagt wird, dass 'ihre Gruppe' typischerweise dabei schlechter abschneidet
- Deswegen ist es Piko wichtig, dass ihre Kurse für FINTA-Menschen sind
- Das ist auch einer der Gründe, warum es Formate wie die Informatica Feminale gibt
- Helena und Piko haben sich bewusst dafür entschieden gerade auch solche Gruppen zu unterrichten
- Piko beschreibt, selbst vom Stereotyp Threat betroffen zu sein und sich als Unterrichtende auch in solchen Gruppen wohler zu fühlen
- Impostersyndrom gegenüber Menschen, die Informatik studiert haben, spielt hier auch rein
- Janines Beobachtung ist, dass FINTA-Gruppen oft niedrigere Einstiegshürden haben und Lehrende sich der Hürden, die es gibt oft besser bewusst sind und Menschen da abholen können, wo sie stehen
Wie gestaltet Piko den Pythonkurs? (00:43:25)
- Treffen in Videokonferenzsoftware Big Blue Button
- Immer der gleiche Anfang mit organisatorischen Dingen
- Wichtiges Instrument: Hausaufgaben aufgeben und im Kurs besprechen; so kann das theoretische Konzept, das hinter den Aufgaben steckt, besser verstanden werden
- Vorgehen dahinter: Erst das theoretische Konzept anwenden lassen/ zeigen, ohne es zu benennen
- Dann in der Folgestunde es genau erklären und auch aufzeigen, was kaputt gehen kann, was passiert beim Ändern von Werten etc.
- Aufgrund der Größe und für Accountability, wurden Kleingruppen gegründet (3-5 Personen)
- Kurs findet donnerstags statt und dazwischen sollen sich die Kleingruppen jeweils treffen
- Kleingruppen sind gute Lernsituationen, weil sich hier gegenseitig Dinge erklärt werden können
- Programmieren heißt nicht nur Sachen (theoretisch) verstehen, sondern auch Skills entwickeln
- Wie gut trainierte Bewegungsabläufe bei Handarbeit, ist das Anwenden von Konzepten eine Fertigkeit
- "Wenn ihr etwas lernen wollt, sucht euch jemanden, vor dem ihr euch schämt."
- Wichtiges Tool für den Kurs: Umfragen in BBB. Haben die Hausaufgaben für euch funktioniert? Hat Aufgabe 1 für euch funktioniert? Hat Aufgabe 2 für euch funktioniert? etc.
- Das erzeugt Rückmeldung: Wie geht es den Leuten eigentlich? Wo muss genauer hingeschaut werden?
- Fragen können jederzeit im Chat gestellt werden, manchmal gehen sie etwas unter, aber bei Beantwortung wird immer so genau wie möglich beantwortet
- Umfrage am Kursende: Wie war die Geschwindigkeit? Wie war die Menge des Inputs?
- Feedback zulassen, auch kritisches ist ein wichtiges und großes Thema in der Lehre
Was kann das Turtle-Modul im Unterricht leisten? (00:55:27)
- Manchmal kann Unterricht auch zu abstrakt sein, wie kriegt man Dinge praktischer vermittelt?
- Öfter hört mensch die Antwort, dass die Turtle (Schildkröte) als Lehrkonzept genutzt werden kann
- Wie bringt mensch das Modul Turtle in Python im Unterricht ein?
- Ursprünglich wurde die Turtle für eine andere Sprache entwickelt, um das Programmieren beizubringen, verschiedene elementare Konzepte zeigen und vermitteln zu können
- Beispiel: Schleifen, wiederholte Ausführungen einer Sache, lassen sich sehr gut damit vermitteln
- Die Turtle ist eine kleine Schildkröte, die auf einem weißen Feld lebt und die kann malen
- Man kann ihr Befehle geben, wie zB: Gehe 100 Schritte (Pixel) gerade aus – beim Gehen malt sie dann den Strich hinter sich; Verändere deine Strichfarbe zu rot – ab jetzt mal sie rot; Gehe 20 Schritte geradeaus – sie zeichnet eine 20px lange rote Linie
- Während die Turtle das macht, kann man sie dabei gut beobachten; schreibt man eine Reihe von Befehlen und lässt diese dann ausführen, kann mensch der Turtle dann zusehen, wie sie auf die Befehle reagiert und was dabei entsteht
- Dabei können Konzepte geübt und deren Anwendung beobachtet werden (Funktionen, Schleifen etc.)
- Das Cover dieser Folge ist auch teilweise mit der Turtle enstanden, die Schildkröte wurde gezeichnet
- Turtle ist explizit für Programmieren lernen geschrieben worden, damit ist vieles machbar, sogar Spiele können damit gemacht werden
- Janine Motivation mit der Turtle zu arbeiten ist, dass es Turtlestitch gibt -> man kann die Turtle programmieren und dann dafür benutzen, das Bild auf einer Stickmaschine sticken zu lassen
- Statt, dass also die Turtle auf einem weißen Feld auf dem Monitor läuft, wird unter der Nadel der Nähmaschine der Stoff in einem Rahmen bewegt und beim sticken dann das Programm ausgeführt, sodass das Bild auf dem Stoff ist
- Es kann auch viel Freude durch diese Form von Veranschaulichung und Verwendbarmachung entstehen
- Nochmal die Problematik: Ein konkretes Ziel für den Gebrauch von Python kann helfen
- Für Janine ist dieser kreative Zugang zu Python wichtig, um motiviert dran zu bleiben
- Programmieren an sich ist auch ein kreativer Prozess
- Für haptische Menschen könnte gerade das "etwas danach in Händen halten" sehr motivierend sein
- Piko spricht Problematik von optimierten Geräten an -> schwierig sie an uns anzupassen
- Hier braucht es Kreativität, um zu sehen, zB an Computersystemen, Dinge zu finden, die mensch schöner gestalten könnte für den eigenen Gebrauch
- So etwas kann einen total motivieren, als Enduser/Anfänger*in sieht man diese Optionen vllt. nicht
- Frage, die dazu hinführen kann: Was möchte ich an meinem System ändern, was nervt mich?
- Wie können wir Anfängerprojekte haben, die Spaß machen und einem den Mund wässrig machen?
- Eigene nützliche Programme können einen glücklich machen, immer wenn sie in Gebrauch sind
- Ähnlich wie bei handwerklichen Tätigkeiten
- Ziele finden und haben ist eine wichtige Sache beim Programmieren lernen
Fazit (01:10:49)
- Python ist tolle Programmiersprache, die sehr niederschwellig zu lernen ist
- Motivation für das Lernen und Ziele, wohin das gehen kann, fördert einen beim Lernen
- Aufgrund des Stereotyp Threats sind FINTA-Angebote super wichtig, dafür gibt es viele Orte
- Wer Interesse daran hat, eine FINTA-Gruppe für sich zu finden, online oder offline kann uns gerne anschreiben, vielleicht können wir helfen zu vermitteln und irgendwo unterzukommen
- Vielen Dank an Piko für Zeit und Gespräch!
- Piko gibt den Pythonkurs nicht nur ehrenamtlich, sondern kann auch für Einsteiger-Wochenendkurse gebucht werden, erreichbar unter python(at)ithea.de
Nächste Folge: Jahresrückblick 2021 am 29.01.22 (01:13:13)
- Wir machen wieder eine kleine Winterpause und melden uns dann im neuen Jahr zurück
- Wir werden bis dahin nachdenken, was uns an 2021 besonders erwähnenswert erscheint
- Falls ihr etwas habt, dass ihr mit uns teilen wollt über das Jahr 2021, dann schreibt uns! Vielleicht können wir das in der nächsten Folge unterbringen
- Ansonsten werden wir in diesem Jahr auch wieder auf der rC3 dabei sein und vermutlich auch die World unsicher machen - sprecht uns gerne an (:
- Achso, ausserdem haben wir einen Talk im Programm der Haecksen auf der rC3 eingereicht und werden vermutlich einen Talk zu unserem Podcast halten
- Wenn euch interessiert, wie datenleben entsteht, dann kommt gerne vorbei! Es wird auch ein Pad geben, um Fragen an uns einzureichen
- Mehr erfahrt ihr definitiv auf unserem Twitteraccount
- In jedem Fall wünschen wir euch einen schönen Jahresausklang und wir hören uns dann spätestens in 2022 wieder
Call to Action (01:14:47)
- Wenn ihr uns weiter hören möchtet, folgt uns auf Twitter unter @datenleben
- Oder besucht unsere Webseite: www.datenleben.de
- Hinterlasst uns gerne Feedback, wir würden uns darüber sehr freuen
- Ihr könnt uns als Data Scientists auch Buchen für Analysen oder Projekte
- Habt ihr Fragen oder Themen, die euch interessieren? Dann schreibt uns!
Outro (01:15:26)
Schlagworte zur Folge
Python, Data Science, Maschinelles Lernen, Lernen und Lehren, Motivation, Ziele, Accountability, FINTA
Quellen
- Python for Kids: Das Buch
- The Conversation: Would your mobile phone be powerful enough to get you to the moon?
- Wikipedia: Jaquardwebstuhl
- Wikipedia: Analytical Engine
- Wikipedia: Python (Programmiersprache)
- https://stackoverflow.com/
- https://jupyter.org/
- datenleben: dl013 datenvisualisierung
- https://www.micropython.org/
- Al Sweigart: Automate the Boring Stuff with Python
- https://www.informatica-feminale.de/
- Universität Ulm, Abteilung Sozialpsychologie: Stereotype Threat
- Queer-Lexikon: FINTA
- Python.org: turtle — Turtle graphics
- https://www.turtlestitch.org/