FORMALE SPRACHEN IM UNTERRICHT MIT PYTHON
BECK, LEUTGEB, SCHOLLER
AGENDA
•
WH und Definition Formale Sprachen•
Einführung Python•
Praxisbeispiel: Stundenplanung mit PythonSPRACHEN
•
Syntax•
Semantik•
PragmatikBEISPIEL – 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:• 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&Gesetzesnummer=10008568&FassungVom=2017 -09-01
•
Bildungs- und Lehraufgabe (5. Klasse)•
Beiträge zu den Bildungsbereichen• Sprache und Kommunikation
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!