Formale Sprachen im Unterricht mit Python

Slides:



Advertisements
Ähnliche Präsentationen
Vorlesung Compilertechnik Sommersemester 2008
Advertisements

XPointer Die Xpointer beschreiben einen Ort oder Bereich innerhalb einer XML-Instanz. Die XPointer bauen auf der XML Path Language auf. Die XPointer ist.
Proseminar Programmiersprachen Python
Kompetenz -, Lern - und Prüfungsbereiche Anforderungsbereiche
Dieser nicht Fehler finden Algorithmus enthält einfach einen gravierenden welcher zu ist.
Programmieren ... in C++ Prof. Dr.-Ing. Franz-Josef Behr, HfT Stuttgart Programmeiren I.
Mensch – Maschine - Kommunikation
2 Grundlagen In diesem Abschnitt werden die Grundbegriffe und Methoden der Theorie der formalen Sprachen und der Automaten wiederholt, soweit diese ben.
Programmiersprachen II Vorbesprechung Klausur Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Programmieren Hexenwerk oder Zauberspuk? Kinderuniversität Mittwoch, 16. März 2016 Kinder-Akademie Fulda & Hochschule Fulda Peter Klingebiel, HS Fulda,
IIS The microsoft way. © Windows NT Option pack optionale Server Komponenten IIS (Internet Information Server) Webserver von Microsoft.
Einführung. Ziel der Veranstaltung  Vermittlung von Grundkenntnissen in C++  Solide Basis für anschließende Weiterentwicklung  Fähigkeit, kleine Programme.
Funktionsweise eines Funambolservers Natascha Graf Aachen, 01. Februar 2010.
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
Patrick Richterich Lattwein GmbH Web Services Softwareentwicklung mit SOAP.
Tutorium Software-Engineering SS14 Florian Manghofer.
Besitzrechte. Datei- und Verzeichnis-Besitzer Dateien und Verzeichnisse gehören einem Benutzer und einer Gruppe Besitzer wird bei ls -l in der dritten.
WISSENSREPRÄSENTATION IN ACTIVEMATH Theoretische Grundlagen – Teil 1.
1 freedroidz – spielend Programmieren lernen. 2 Was ist freedroidz?
Linux Seminar Einführung Linux. Gliederung ● Was ist Linux? ● Geschichte ● GNU/GPL ● grundsätzliche Begriffe ● Vorteile ● Nachteile ● Hilfe? ● Unterschiede.
Zehn Schritte zu Linux Der Weg in eine andere Welt...
Piraten erklären das Internet Teil 2: … wie kommuniziert man über das Internet?
Computerschädlinge. Was sind Computerschädlinge? Computerschädlingen versteht man im Allgemeinen Trojaner, Würmer und Viren. Die bekanntesten Vertreter.
Mit dem Computer kann man ganz toll präsentieren
Schule in Deutschland.
Das Entwurfsmuster Model-View-Controller
Programmieren und Problemlösen
Objektorientiertes Modellieren und Programmieren mit Java
Anforderungen an die neue Datenstruktur
Eine Präsentation von Sandro Schluep und Leon Wink.
Grundlagen der Informationsverarbeitung
Objektorientierte Programmierung
Gliederung 0. Motivation und Einordnung 1. Endliche Automaten
Datentypen: integer, char, string, boolean
Formale Sprachen.
Das Problem des Handlungsreisenden
Forschendes Lernen Forschendes Lernen in der Mathematik
Algorithmen.
Sinnerfassendes Lesen – Lesen Lernen mit Physik
Die 7 Wege zur Effektivität
So gelingt der digitale Wandel in einem Landwirtschaftsbetrieb
Unterwegs im Internet.
Routing … … die Suche nach dem Weg..
Übung: Star Wars - Erbaue eine Galaxie mit Hilfe von Code
Erkundung eines Berufs
Coden mit Python Was sind deine Erfahrungen mit Programmieren?
Mensch-Maschine-Interaktion
Wie geht es weiter im Projekt. Wochenrückblick vom bis
SS 04 Christiane Rauh Christian Hellinger
Arten von Kontrollstrukturen
Eingabegerät Die Tastatur
Programmiersprachen Tim, Luca, Ricky & Manuel.
Mögliche Stoffverteilung im Grundkurs
1. Die rekursive Datenstruktur Liste 1.3 Rekursive Funktionen
DESIGN THINKING.
GRUNDLAGEN WISSENSCHAFTLICHEN ARBEITENS MODULA-2 SONAY SUBAYAZ
2. Vererbung und Kapselung
«Delegierter» Methoden Schablone Funktionszeiger
1. Die rekursive Datenstruktur Liste 1
Datenstrukturen und Softwareentwicklung
Der 30-Sekunden Elevator Pitch
2. MKT – Die verbale Selbstinstruktion Mo
Wissenschaftliches Projekt
3. Die Datenstruktur Graph 3.3 Durchlaufen von Graphen
SO VERWENDEN SIE DIESE VORLAGE
Objektorientierte Programmierung
DB2 – SS 2019 von Baum allgemein bis B*-Baum
Spracherziehung Förderung in der deutschen Sprache als Aufgabe des Unterrichts in allen Fächern.
DB2 – SS 2019 von Baum allgemein bis B*-Baum
 Präsentation transkript:

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.