Hinweis: Obwohl JavaScript für diese Website nicht unbedingt erforderlich ist, werden Ihre Interaktionsmöglichkeiten mit den Inhalten eingeschränkt sein. Bitte aktivieren Sie JavaScript für das volle Erlebnis.

EDU-SIG: Python in der Bildung

EDU-SIG: Python in der Bildung

Immer mehr dringt Python in allen Bildungsbereichen Fuß. Python bietet eine interaktive Umgebung, in der prozedurale, funktionale und objektorientierte Ansätze zur Problemlösung erforscht werden können. Seine High-Level-Datenstrukturen und seine klare Syntax machen es zu einer idealen ersten Sprache, während die große Anzahl vorhandener Bibliotheken es für fast jede Programmieraufgabe geeignet macht.

Die Edu-Sig bietet über ihre Mailingliste eine informelle Plattform zum Austausch von Notizen und zur Diskussion zukünftiger Möglichkeiten für Python in der Bildung. Ihre Ursprünge reichen auf Guido van Rossums wegweisendes Projekt Computer Programming for Everybody (CP4E) zurück, einen von DARPA genehmigten Zuschussantrag, der 1999 ein gewisses Maß an Finanzierung bot.

Die Mitgliedschaft umfasst unter anderem Lehrkräfte, die Python in ihren Kursen verwenden, unabhängige Entwickler und Autoren von Bildungsmaterialien. Die Diskussion konzentriert sich auf die Nutzung von Python auf allen Ebenen, von Anfänger- bis zu fortgeschrittenen Anwendungen.

Python 2 oder Python 3?

Vor mehreren Jahren wurde eine neue Version von Python (3) eingeführt. Diese neue Version unterscheidet sich geringfügig, aber signifikant von der vorherigen. Die auffälligste Änderung für Anfänger ist, dass print, das früher ein Python-Schlüsselwort war,

>>> print "Hello World!"   # for Python 2

jetzt eine Funktion ist

>>> print("Hello World!")   # for Python 3

Als Ergebnis der Änderungen sind für Python 2 geschriebene Programme wahrscheinlich nicht mit Python 3 kompatibel (und umgekehrt). Einige von Ihnen haben möglicherweise keine Kontrolle darüber, welche Python-Version für Studenten verfügbar ist. Wenn dies der Fall ist, sollten Sie nicht zu sehr verzweifeln, wenn Sie und Ihre Studenten keinen Zugang zur besten/neuesten Version von Python haben: Python ist eine fantastische Wahl als erste Sprache und die relativ geringen Änderungen zwischen den Versionen ändern diese Tatsache nicht.

Wenn Sie einige Kontrolle darüber haben, welche Python-Version für Studenten verfügbar ist, dann müssen Sie eine Wahl treffen. In diesem Fall möchten wir Ihnen Folgendes anbieten:

  • Verwenden Sie, wenn möglich, Python 3 und insbesondere Version 3.4, wobei Sie die wachsende Zahl von Drittanbieterbibliotheken nutzen, die dafür verfügbar sind. Dies gilt insbesondere, wenn Sie Python als Einführungssprache unterrichten möchten (z. B. in einem CS-1-Kurs), da Python 3 die Zukunft von Python ist. Auch wenn Sie Python in anderen Sprachen als Englisch unterrichten, in denen Nicht-ASCII-Zeichen für Bezeichner gut genutzt werden könnten, sollten Sie sich definitiv für Python 3 entscheiden.
  • Verwenden Sie Python 2 und insbesondere Version 2.7, wenn Sie Drittanbieter-Module benötigen, die noch nicht auf Python 3 portiert wurden.

Mailinglisten usw.

Wie oben erwähnt, hat die Edu-Sig-Community ihre eigene Mailingliste. Zwei weitere Mailinglisten sind für Pädagogen potenziell interessant: die python tutor und die allgemeine python-list. Alle drei sind in einem durchsuchbaren Archiv auf der ActiveState-Website verfügbar, die auch das berühmte Python Cookbook hostet. Die python tutor Mailingliste ist nützlich für Anfänger, die die Sprache lernen und Antworten auf ihre Programmierprobleme suchen; Lehrkräfte sind herzlich eingeladen, sich als Freiwillige zu beteiligen; die edu-sig Mailingliste ist eher für Diskussionen über die Nutzung von Python in Bildungseinrichtungen gedacht.

Kostenlose Bücher und Tutorials für Lehrende

Es gibt eine Reihe von frei verfügbaren Tutorials für Python. Zum Beispiel gibt es auf dem Python-Wiki eine Sammlung von Anfängerleitfaden für Python. Darüber hinaus können die folgenden für Lehrende von besonderem Interesse sein:

  • Think Python von Allen B. Downey ist eine erheblich überarbeitete Version von How to Think Like a Computer Scientist Learning with Python. Es ist in verschiedenen Formaten kostenlos erhältlich; gedruckte Exemplare können ebenfalls erworben werden.
  • Python for Informatics: Exploring Information von Charles Severance ist ein weiteres Buch, das aus dem frei verfügbaren How to Think Like a Computer Scientist Learning with Python stammt, das oben erwähnt wurde. Zum Stand Januar 2010 ist dieses Buch nur teilweise fertiggestellt, mit Kapiteln, die frei als PDF-Dateien verfügbar sind.
  • Dave Kuhlmans kostenloses Buch und weitere Sammlungen von Tutorials sind ebenfalls eine sehr gute Ressource für Lehrende.
  • Andrew Harringtons praktisches Tutorial ist für CS-0-Studenten auf High-School- und Universitätsniveau geeignet. Dr. Harrington lehrt an der Loyola University Chicago.

Lehrbücher und andere kostenpflichtige Bücher

Obwohl es eine Reihe von kostenlosen Büchern und Tutorials gibt, ziehen es manche Leute vor, ein tatsächliches Exemplar auf Papier zu haben. Wenn Sie zu dieser Gruppe gehören, werden Sie vielleicht überrascht sein zu erfahren, dass es fast hundert Bücher über Python-Programmierung gibt. Hier konzentrieren wir uns nur auf eine Teilmenge, die für Lehrende, die Einführungskurse in die Programmierung geben, von Interesse sein könnte. Weitere Bücher finden Sie hier und hier oder durch eine Internetsuche.

Für Kinder, jung und alt

Lehrbücher auf Universitätsniveau sind ebenfalls erhältlich

  • Python Programming: An Introduction to Computer Science von John Zelle ist ein Buch für einen CS-1-Kurs. Dr. Zelle lehrt am Wartburg College.
  • Data Structures and Algorithms Using Python and C++ von David M. Reed und John Zelle ist ein Buch für einen CS-2-Kurs.
  • Object-Oriented Programming in Python von Michael H. Goldwasser und David Letscher ist ein Buch für einen CS-1-Kurs. Die Doktoren Goldwasser und Letscher lehren an der Saint Louis University. Sie haben ein kostenloses Object-Oriented Graphics Package als unterstützendes Material für ihr Lehrbuch geschrieben.
  • Practical Programming (2nd edition): An Introduction to Computer Science Using Python von Paul Gries, Jennifer Campbell und Jason Montojo ist ein Lehrbuch für einen CS-1-Kurs. Alle drei Autoren sind mit der University of Toronto verbunden.
  • Python Programming in Context von Bradley N. Miller und David L. Ranum ist ein Buch für einen CS-1-Kurs. Die Doktoren Miller und Ranum lehren am Luther College.
  • The Practice of Computing Using Python von Bill Punch und Rich Enbody ist ein Buch, das die Konzepte von CS1 mit der Python-Sprache lehrt. Das Bildungsmaterial umfasst eine vollständige Reihe von Powerpoint-Folien, Laborübungen, Python-Projekten und Lösungen für über 600 Übungen im Buch. Punch und Enbody sind beide Fakultätsmitglieder am Department für Informatik und Ingenieurwesen der Michigan State University.
  • Ein Buch mit einem ganz anderen Ansatz ist Mathematics for the Digital Age and Programming in Python von Maria Litvin und Gary Litvin. Laut der Beschreibung auf der Website: Es bietet eine einzigartige Mischung aus Mathematik und Programmierung, die Studenten in Einführungskursen in die Informatik dazu anregen soll, die strenge Mathematik zu schätzen, die für die Informatik relevant ist, sowie praktische Fähigkeiten zum Schreiben von Programmen zu entwickeln.
  • Python Scripting for Computational Science von Dr. Hans Petter Langtangen vermittelt Werkzeuge und Programmierkonzepte, die für die wissenschaftliche Arbeit besonders nützlich sind. Die Homepage des Buches enthält eine zugehörige und ziemlich vollständige Sammlung von Folien.
  • Dr. Hans Petter Langtangen schrieb ein zweites Buch, A Primer on Scientific Programming with Python. In diesem Buch werden Beispiele aus den Bereichen Mathematik, Statistik, Physik, Biologie und Finanzen verwendet. Das Buch lehrt "Matlab-ähnliche" und prozedurale Programmierung sowie objektorientierte Programmierung. Es ist auch bei Amazon erhältlich.

Systemnachricht: WARNUNG/2 (<string>, Zeile 208); zurücklink

Doppelt benannter expliziter Zielname: "a primer on scientific programming with python".

Lernumgebungen

Da Python eine interpretierte Sprache ist, benötigt man zum Programmieren nur ein Terminalfenster. Für Ihre Studenten wäre dies jedoch keine benutzerfreundliche Umgebung. Stattdessen empfehlen wir die Verwendung von IDLE (was für Integrated DeveLopment Environment steht), das in den Installationsdateien von Python für jede Plattform enthalten ist, die Tcl unterstützt, einschließlich Windows.

Für sich selbst ist, wenn Sie es vorziehen, direkt von einem Terminalfenster aus zu programmieren, eine bessere Wahl als der Standardinterpreter IPython.

Zusätzlich zu IDLE gibt es eine Reihe von Drittanbieter-Tools, die Sie im Python Editors Wiki und im Python Integrated Development Environments Wiki finden können.

Lernressourcen

Dies sind Ressourcen, interaktive Online-Tutorials und andere Bildungsressourcen, die entweder Python lehren oder Python zur Vermittlung von Programmierung nutzen.

  • Online Python Tutor ist ein kostenloses Bildungswerkzeug von Philip Guo, das Studenten hilft, eine grundlegende Barriere beim Erlernen der Programmierung zu überwinden: das Verständnis dessen, was geschieht, wenn der Computer jede Zeile des Quellcodes eines Programms ausführt. Mit diesem Werkzeug können Lehrer oder Studenten ein Python-Programm im Webbrowser schreiben und visualisieren, was der Computer Schritt für Schritt tut, während er das Programm ausführt.
  • Die Website Interactive Python bietet Live-Python-Bücher, die es Lernenden ermöglichen, Python-Code im Browser auszuführen und Visualisierungen ihrer laufenden Programme zu sehen.
  • Python for Fun ist eine Sammlung kleiner Python-Programme, die sich an fortgeschrittene Programmierer richten und eine breite Palette von Informatikkonzepten untersuchen - einschließlich Logikschaltungen und KI.
  • Pynguin ist ein einheitlicher Editor, eine interaktive Konsole und ein Grafikbereich, der in Python und dem PyQt-Toolkit geschrieben wurde. Pynguin soll eine einfache Umgebung für die Einführung von Programmierkonzepten für Anfänger sein. Pynguin-Programme generieren digitale Bilder, die als SVG- oder PNG-Dateien gespeichert werden können.
  • Crunchy ist ein Python-Programm, das ein ansonsten statisches HTML-Tutorial in eine interaktive Python-Sitzung innerhalb eines Browsers umwandeln kann. Die Grundfunktionen einer frühen Version von Crunchy werden in diesem Screencast demonstriert.
  • Eine neue "Mathematica-ähnliche" Umgebung für Python ist Codenode. Sie können es selbst ausprobieren.
  • PyKata ist eine neue Online-Umgebung, die als Lehrmittel für Python konzipiert ist. Sie enthält eine kleine, aber wachsende Anzahl von Programmierübungen, die Studenten selbst ausprobieren und sofortiges Feedback erhalten können. Lehrende sind eingeladen, ihre eigenen Übungen beizusteuern.
  • Pyro ist eine Python-Programmierumgebung zur einfachen Erkundung fortgeschrittener Themen in künstlicher Intelligenz und Robotik.
  • GvR, oder Guido van Robot, bemüht sich, den ursprünglichen Karel the Robot von Richard Pattis zu emulieren. Es verwendet eine einrückungsbasierte, Python-ähnliche Sprache und etwa 20 Lektionen, die darauf ausgelegt sind, Programmierkonzepte zu vermitteln. Eine Online-Demo ist verfügbar.
  • RUR-PLE ist eine Python-Lernumgebung, die einen Editor, eine Python-Shell und vor allem einen Karel the Robot-Klon enthält, der mit Python-Syntax programmiert werden kann, entweder mit prozeduralen Befehlen (z. B. move()) oder einem objektorientierten Ansatz (z. B. robot.move()). Sie enthält etwa 40 Lektionen. Eine neue webbasierte Version, Reeborg's World, bietet mehr Tutorials als die Desktop-Version.
  • Pythons Turtle-Modul ist keine Lernumgebung an sich, aber es wurde für Python 2.6 und höher komplett überarbeitet und ist einen Blick wert. Beispiele sind in der Quellcodeverteilung enthalten (zusammen mit einem demoViewer-Programm, das auch als Beispiel für die Einbettung von Turtle-Grafiken in eine Tkinter-Anwendung dient). Für diejenigen, die ältere Python-Versionen (2.3, 2.4 oder 2.5) installiert haben, kann eine geeignete Version des Turtle-Moduls hier gefunden werden, mit den Beispielen hier. Ein Video des Pycon 2009-Vortrags, der das Turtle-Modul demonstriert, ist verfügbar.

Videos

Es gibt eine wachsende Zahl von Podcasts, Screencasts und Videopräsentationen für die Python-Community, von denen viele für Lehrende von Interesse sein könnten. Weitere Details finden Sie in den Audio-/Video-Lehrmaterialien für Python

Spezialisierte Pakete

Angesichts der großen Anzahl von Modulen, die in der Python-Distribution enthalten sind, wird oft gesagt, dass Python "batteries included" ist. Wenn die Standarddistribution nicht das enthält, was Sie benötigen, sollten Sie sich den Python Package Index ansehen, ein Repository, das fast 7000 zusätzliche Pakete enthält.

Das Folgende ist nur eine kleine Auswahl dessen, was verfügbar ist.

  • NumPy ist das grundlegende Paket für wissenschaftliches Rechnen mit Python. Es enthält:
    • ein leistungsfähiges N-dimensionales Array-Objekt
    • anspruchsvolle Broadcasting-Funktionen
    • grundlegende lineare Algebra-Funktionen
    • grundlegende Fourier-Transformationen
    • anspruchsvolle Zufallszahl-Fähigkeiten
    • Werkzeuge zur Integration von Fortran-Code.
    • Werkzeuge zur Integration von C/C++-Code.
  • SciPy (ausgesprochen "Sigh Pie") ist Open-Source-Software für Mathematik, Wissenschaft und Ingenieurwesen. Die SciPy-Bibliothek basiert auf NumPy, das eine praktische und schnelle N-dimensionale Array-Manipulation bietet. Die SciPy-Bibliothek ist für die Arbeit mit NumPy-Arrays konzipiert und bietet viele benutzerfreundliche und effiziente numerische Routinen, wie z. B. Routinen für numerische Integration und Optimierung. Zusammen laufen sie auf allen gängigen Betriebssystemen, sind schnell zu installieren und kostenlos. NumPy und SciPy sind einfach zu bedienen, aber leistungsfähig genug, um von einigen der weltweit führenden Wissenschaftler und Ingenieure genutzt zu werden. Wenn Sie Zahlen auf einem Computer manipulieren und die Ergebnisse anzeigen oder veröffentlichen müssen, probieren Sie SciPy aus!
  • matplotlib ist eine Python-Bibliothek für 2D-Plots, die druckfähige Grafiken in einer Vielzahl von Hardcopy-Formaten und interaktiven Umgebungen auf verschiedenen Plattformen erstellt. matplotlib kann in Python-Skripten, der Python- und IPython-Shell (ähnlich Matlab oder Mathematica), Webanwendungsservern und sechs grafischen Benutzeroberflächen-Toolkits verwendet werden. matplotlib versucht, einfache Dinge einfach und schwierige Dinge möglich zu machen. Mit wenigen Codezeilen können Sie Diagramme, Histogramme, Leistungsspektren, Balkendiagramme, Fehlerbalkendiagramme, Streudiagramme usw. erstellen.
  • PIL, die Python Imaging Library, erweitert die Bildverarbeitungsfunktionen Ihres Python-Interpreters. Diese Bibliothek unterstützt viele Dateiformate und bietet leistungsstarke Bildverarbeitungs- und Grafikleistungen.
  • OpenOpt ist ein kostenloses Optimierungsframework, das auf Numpy aufbaut. Zusätzlich zu verschiedenen numerischen Optimierungspaketen enthält es:
    • FuncDesigner - ein Werkzeug zur schnellen Erstellung von Funktionen über Variablen/Arrays und zur Erzielung ihrer Ableitungen durch automatische Differenzierung. Außerdem kann man Integrationen, Interpolationen durchführen, Systeme von linearen/nichtlinearen/ODE-Gleichungen und numerischen Optimierungsproblemen lösen, die in FuncDesigner von OpenOpt codiert sind.
    • DerApproximator - ein Werkzeug zur Ermittlung (oder Überprüfung vom Benutzer bereitgestellter) Ableitungen mittels finite Differenzen-Approximation.
    • SpaceFuncs - ein Werkzeug für 2D-, 3D-, N-dimensionale geometrische Modellierung mit Möglichkeiten für parametrisierte Berechnungen, numerische Optimierung und die Lösung von Systemen geometrischer Gleichungen.
  • VPython erleichtert die Erstellung von navigierbaren 3D-Anzeigen und Animationen, selbst für Personen mit begrenzter Programmiererfahrung. Es enthält eine modifizierte Version von IDLE.
  • ReportLab gibt Python-Programmen die Möglichkeit, direkt im PDF-Format von Adobe auszugeben. Die Open-Source-Version ist in den Händen eines Python-Programmierers voll funktionsfähig. Nützlich für die Veröffentlichung von Kursmaterialien.
  • SymPy ist eine Python-Bibliothek für symbolische Mathematik. Sie zielt darauf ab, ein vollwertiges Computeralgebrasystem (CAS) zu werden und gleichzeitig den Code so einfach wie möglich zu halten, um verständlich und leicht erweiterbar zu sein. SymPy ist komplett in Python geschrieben und benötigt keine externen Bibliotheken.
  • Sage ist kein Python-Paket, bietet aber eine Umgebung, die Python als Programmiersprache präsentiert. Es ist ein kostenloses Open-Source-Mathematiksoftware-System, das unter der GPL lizenziert ist. Es kombiniert die Leistung vieler bestehender Open-Source-Pakete in einer gemeinsamen Python-basierten Benutzeroberfläche. Sages Mission ist es, eine praktikable, kostenlose Open-Source-Alternative zu Magma, Maple, Mathematica und Matlab zu schaffen.
  • Blender ist eine plattformübergreifende 3D-Modellierungs-Suite, die Modellierung, Animation, interaktive Erstellung und Wiedergabe bietet. Blender ist kein Python-Paket, verwendet aber Python für die Skriptunterstützung.
  • Ein objektorientiertes Grafikpaket wurde von Michael H. Goldwasser und David Letscher für die Verwendung in Verbindung mit ihrem Lehrbuch (oben erwähnt) geschrieben.

Wissenschaftliche Arbeiten

Eine Reihe von wissenschaftlichen Arbeiten wurde über die Verwendung von Python als Programmiersprache verfasst. Dazu gehören folgende:

Und schließlich, obwohl es keine wissenschaftliche Arbeit ist, ist Why Python is a great language for teaching beginners in introductory programming classes von Philip Guo sicherlich lesenswert.

Spielzeit!

Wenn es keine Spiele gäbe, wären wahrscheinlich viel weniger Menschen an Programmierung interessiert - und infolgedessen viel weniger freie Software entwickelt worden. Python hat zwei bekannte Frameworks für die Spieleentwicklung:

  • pygame ist das ursprüngliche und immer noch sehr aktive Paket für die Spieleentwicklung mit Python. Es ermöglicht Python, mit SDL, einer plattformübergreifenden Multimedia-Bibliothek, zu kommunizieren. Da es für jede Plattform und jede Python-Version kompiliert werden muss, kann es bei einer neuen Python-Version zu Verzögerungen kommen.
  • pyglet ist der Neuling, basierend auf OpenGL. Da es sich um ein reines Python-Paket handelt, kann es auch bei einer neuen Python-Version (mit Ausnahme des Übergangs von Python 2 zu Python 3) verwendet werden.

Sonstiges

  • Python for secretaries: Eine Ressource, die sich darauf konzentriert, Geschäftsanwendern zu zeigen, wie sie ein wenig Python nutzen können, und die sich ausschließlich darauf konzentriert, ihnen bei ihren täglichen Aufgaben zu helfen.
  • Freely-reusable data: Lehrende haben oft Bedarf an aussagekräftigen Daten für die Erstellung von Programmierübungen. Um diesen Bedarf zu decken, haben viele in der Bildungsgemeinschaft frei wiederverwendbare Daten beigesteuert, auf denen aufgebaut werden kann.
  • Software Carpentry von Greg Wilson ist ein Kurs über Softwareentwicklungsfähigkeiten für Wissenschaftler und Ingenieure.
  • Kirby Urners CP4E-Ressourcen integrieren Python-Programmierung mit Themen der Mathematik.
  • An Interview with Guido van Rossum, von Phil Hugues für das Linux Journal, ist ein Gespräch mit dem Erfinder von Python über eine Initiative, Nicht-Informatikstudenten Python beizubringen.
  • Hackers and Trackers: CP4E und Teaching Math with Python, beide von Stephen Figgins, sind ältere Artikel über den Beginn der Computer Programming for Everybody-Initiative.

SIG-Administratives