Formale Sprachen im Unterricht mit Python Beck, Leutgeb, Scholler
Agenda WH und Definition Formale Sprachen Einführung Python Praxisbeispiel: Stundenplanung mit Python
Sprachen Syntax Semantik Pragmatik
Beispiel – Automatisierte Vorgänge Sprache: PGM
Beispiel – Automatisierte Vorgänge Sprache: Python
Beispiel – Automatisierte Vorgänge Sprache: PGM
Formale Sprachen - Definition Alphabet Nicht-leer, geordnet und endliche Menge Wort Leerwort - Σ* & Σ+ Formale Sprache Syntax!
Python: Einfachheit: Bibliothek: Leicht erweiterbar Wenig Schlüsselwörter Syntax sehr übersichtlich Bibliothek: Leicht erweiterbar Multiparadigmensprache: Erlaubt das für die jeweilige Aufgabe beste Paradigma zu wählen.
Python Open Source: Für jedes OS verfügbar Viele bekannte Dienste nutzen Python: YouTube, Instagram, Pinterest, Dropbox, Reddit, ... Heute populärste naturwiss.-math. Programmiersprache Sehr viele math. Bibliotheken verfügbar: Numerik, Algebra, symbolisches Rechnen, Funktionsplots, Zahlentheorie, ...
Reguläre Ausdrücke in Python In Programmiersprachen, so auch in Python, werden reguläre Ausdrücke für die Filterung genutzt Die Syntax der regulären Ausdrücke ist in allen Programmiersprachen und Skriptsprachen gleich! s = „Reguläre Ausdrücke einfach erklärt!“ „einfach“ in s True!
in
Modul re Notwendig um mehr aus den regulären Ausdrücken zu machen als bisher: Problem: Backslash hat zB eine besondere Bedeutung in regulären Ausdrücken, ist in Python aber in Strings ein Escape: 1. Lösung: statt einem \ zwei \\ machen 2. Lösung: r“^a.*\.html$“ = raw string (mit einem r)
Anwendung: r“cat“ = regulärer Ausdruck um cat zu suchen. Funktioniert einwandfrei Findet aber auch Wörter wie "falsification„ Nicht gewünscht! r“ cat „ Lösung? Findet nicht „I like this cat, but …“
Beliebiges Zeichen Statt „cat“ wollen wir nun etwas finden, was mit „at“ endet und 3 Buchstaben hat: Lösung: r“ .at „ Oder auch nicht? Auch @at oder 3at wären hier gültig. Alternative: Gewünschte Zeichen durch [] definieren: r“M[ae][iy]r [a-c] als Abkürzung für [abc] [^abc] = alles außer abc [a^bc] = ?
Diverse Kürzel: \d Eine Ziffer, entspricht [0-9]. \D das Komplement von \d. Also alle Zeichen außer den Ziffern, entspricht der Klassennotation [^0-9]. \s Ein Whitespace, also Leerzeichen, Tabs, Newlines und so weiter, entspricht der Klasse [ \t\n\r\f\v]. \S Das Komplement von \s. Also alles außer Whitespace, entspricht [^ \t\n\r\f\v]. \w Alphanumerisches Zeichen plus Unterstrich, also [a-zA-Z0-9_]. Wenn die LOCALE gesetzt ist, matched es auch noch die speziellen Zeichen der LOCALE, also z.B. die Umlaute. \W Das Komplement von \w. \b Passt auf den leeren String, aber nur, wenn dieser am Anfang oder Ende eines Strings ist. \B Passt wie \b den leeren String, aber nur, wenn dieser nicht am Anfang oder Ende eines Strings ist. \\ Ein Backslash.
Match vs. Search
Match vs. Search? Funktioniert aber nur in Python (Search)
Was macht Python anders?
Einführung in die Programmierung anhand der Programmiersprache Python
Lehrplan Gesamte Rechtsvorschrift für Lehrpläne – allgemeinbildende höhere Schulen, Fassung vom 01.09.2017 https://www.ris.bka.gv.at/GeltendeFassung.wxe?Abfrage=Bundesnormen&G esetzesnummer=10008568&FassungVom=2017-09-01 Bildungs- und Lehraufgabe (5. Klasse) Beiträge zu den Bildungsbereichen Sprache und Kommunikation
Konstruktiver Informatikunterricht ist auch Sprachunterricht Konstruktiver Informatikunterricht ist auch Sprachunterricht. Der Mensch-Maschine-Kommunikation liegt im Gegensatz zu natürlichen Sprachen eine abstrakte formale Sprache zugrunde.
Informatiksysteme tragen wesentlich zu Veränderungen der Kommunikationskultur bei. Unterschiedliche digitale Repräsentationsformen von Information ergänzen die traditionelle Verständigung und erfordern neue technologische und methodische Kompetenzen.
Die vielfältigen Möglichkeiten der elektronischen Kommunikation ermöglichen einen Austausch über Grenzen hinweg und erleichtern die virtuelle Begegnung mit anderen Kulturen. Die davon ausgehende Motivation, Fremdsprachenkenntnisse zu erwerben, wird durch die Verfügbarkeit aktueller und authentischer fremdsprachlicher Informationen und das Fachvokabular verstärkt.
5. Klasse (1. und 2. Semester) – Praktische Informatik Begriffe und Konzepte der Informatik verstehen und Methoden und Arbeitsweisen anwenden können Algorithmen erklären, entwerfen, darstellen und in einer Programmiersprache implementieren können Grundprinzipien von Automaten, Algorithmen, Datenstrukturen und Programmen erklären können
Unterrichts Konzept Dauer: 2 Doppelstunden Zielgruppe: 5 Klasse AHS Lernziele Verstehen der Grundkonzepte der Programmierung Praktisches Anwenden dieser mittels Python
Programmieren mit PYTHON
Übersicht Grundbegriffe Formale und natürliche Sprachen Die Programmiersprache Python Ein erstes Programm
Grundbegriffe Was ist ein Algorithmus? Was ist eine Datenstruktur? Was ist Programmieren? Und was ist ein Programm?
Was ist ein Algorithmus? Ein Algorithmus ist eine detaillierte und explizite Handlungsvorschrift zum schrittweisen Lösen eines bestimmten Problems.
Eigenschaften von Algorithmen Determinismus Ein Schritt folgt auf den nächsten Reihenfolge immer absolut klar Effektivität Ein Schritt ist eine möglichst einfache Grundaktion Verständlichkeit Ein Schritt muss genau genug angegeben werden, um ihn auszuführen
Beispiele für Algorithmen Beispiele aus dem täglichen Leben Spaghetti kochen Einkaufen in einem Supermarkt Abheben von Geld bei einem Bankomaten Einen IKEA-Tisch zusammenbauen
Aufgabe Algorithmus Stell dir ein Essen vor, das du selbst gerne kochst. Beschreibe algorithmisch den Ablauf. Beginnend mit den Zutaten bist zum fertigen Rezept.
Was ist eine Datenstruktur? Abstraktes Objekt zur Speicherung von Daten Datenstrukturen werden von Algorithmen benötigt Beispiele: Zahlen, Zeichen Listen, Matrizen, Graphen, Mengen, … Reale Objekte: Buch, Telefon, Tastatur, ... Sollen dem Algorithmus angepasst sein
Was ist ein Programm? Ein Programm ist eine Abfolge von Anweisungen, die festlegen, wie ein Problem zu lösen ist. Man kann Anweisungen nach ihrer Funktion gruppieren: Eingabe (das Programm besetzt Variablen mit Daten von der Platte, dem Netz, der Benutzer) Verarbeitung (Rechnen…) Ausgabe
Was ist Programmieren? Umsetzen von Algorithmen und Datenstrukturen in ein Computerprogramm Dazu ist eine Programmiersprache nötig Programmierer schreibt Quelltext (Code): Gewöhnlicher, von Menschen lesbarer Text Wird sofort ausgeführt oder in Dateien abgespeichert Enthalt Anweisungen an die Programmiersprache
Warum programmieren? Probleme zu formulieren, kreativ über Lösungen nachzudenken Eine Lösung klar und genau zu beschreiben Programmieren lernen ist eine hervorragende Gelegenheit um Problemlösungs-Fertigkeiten zu entwickeln und zu üben
Syntax Grammatik einer Programmiersprache Regeln, wie ein Programm aufgebaut ist Programmiersprache ähnlich der natürlichen Sprache Korrekte Syntax: ”Der Lehrer spricht über Syntax.” Syntaxfehler: ”Syntax spricht Lehrer über.” Syntaxfehler in Programmiersprache: Vergessen eines Symbols Vertauschen von Symbolen Zu viele Symbole aufgeschrieben
Semantik Bedeutung eines Programms (oder Satzes) Ziel/Zweck eines Programms? ”Der Lehrer spricht über Semantik” Semantische Fehler Syntax ok, aber: ”Eine Katze ist blau”?! ”Die Erde ist das Zentrum des Universums”?! In Programmen oft nicht so einfach ersichtlich Programmiersprache kann nur selten warnen
Die Programmiersprache Python
Warum Python? Einfacher Einstieg Intuitiver und lesbarer Programmcode Trotzdem sehr mächtig Unterstützt alle wichtigen Programmiermodelle: strukturiert, objektorientiert, funktional Sehr verbreitet im akademischen Umfeld, in Unternehmen, Hobby,…
Warum Python? Python ist Open Source Gratis herunterladbar Auch frei im Sinn von ”für beliebige Zwecke verwendbar und veränderbar” Für jedes moderne Betriebssystem verfügbar Windows, Linux, Mac, … Viele bekannte Dienste nutzen Python: YouTube, Instagram, Pinterest, Dropbox, Reddit, … Name: Monty Python, nicht die Schlange
Installation von Python - Windows Betriebssystemabhängig Wir verwenden Python 3 Für uns am besten passend: WinPython http://winpython.github.io/ ”Downloads” → WinPython-64bit-3.4.4.6.exe Für sehr alte Notebooks/Netbooks: 32bit-Version Installation Windows-typisch (OK, ”Weiter”, …) Mit Explorer in den Installationsordner gehen: WinPython Control Panel.exe ausfuhren Advanced → Register Distributionon 3 (nicht 2)!
Genug der Theorie… lasst uns programmieren!
Ein erstes Programm – Hallo Welt Aufgabe: Gib folgendes am Bildschirm aus: Hallo, Welt! Code: print('Hallo Welt!') Ausgabe: Hallo Welt!
Ein erste Spiel - Geisterspiel In jeder Runde des Spieles steht man vor drei Türen. Hinter einer dieser Türen versteckt sich ein gefährlicher Geist. Ziel des Spieles ist es diesem Geist zu entgehen. Errät man eine Türe ohne Geist, bekommt man einen Punkt und man kann weiterspielen. Das Spiel wiederholt sich so lange, bis man sich für die Tür mit dem Geist entscheidet.
Aufgabenstellung - Algorithmus Beschreibe die einzelnen Schritte des Spieles mit deinen eigenen Worten. Gehe Schritt für Schritt des Spiels ganz genau durch.