• Keine Ergebnisse gefunden

FORMALE SPRACHEN IM UNTERRICHT MIT PYTHON

N/A
N/A
Protected

Academic year: 2022

Aktie "FORMALE SPRACHEN IM UNTERRICHT MIT PYTHON"

Copied!
50
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

FORMALE SPRACHEN IM UNTERRICHT MIT PYTHON

BECK, LEUTGEB, SCHOLLER

(2)

AGENDA

WH und Definition Formale Sprachen

Einführung Python

Praxisbeispiel: Stundenplanung mit Python

(3)

SPRACHEN

Syntax

Semantik

Pragmatik

(4)

BEISPIEL – AUTOMATISIERTE VORGÄNGE

Sprache: PGM

(5)

BEISPIEL – AUTOMATISIERTE VORGÄNGE

Sprache: Python

(6)

BEISPIEL – AUTOMATISIERTE VORGÄNGE

Sprache: PGM

(7)

FORMALE SPRACHEN - DEFINITION

Alphabet

Nicht-leer, geordnet und endliche Menge

Wort

Leerwort - Σ* & Σ+

Formale Sprache

Syntax!

(8)

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.

(9)

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, ...

(10)

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!

(11)

IN

(12)

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)

(13)

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 …“

(14)
(15)

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] = ?

(16)

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.

(17)
(18)

MATCH VS. SEARCH

(19)

MATCH VS. SEARCH?

Funktioniert aber nur in Python (Search)

(20)

WAS MACHT PYTHON ANDERS?

(21)

EINFÜHRUNG IN DIE

PROGRAMMIERUNG ANHAND DER PROGRAMMIERSPRACHE

PYTHON

(22)

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

(23)

Konstruktiver Informatikunterricht ist auch Sprachunterricht.

Der Mensch-Maschine-Kommunikation liegt im Gegensatz zu natürlichen

Sprachen eine abstrakte formale Sprache

zugrunde.

(24)

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.

(25)

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.

(26)

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

(27)

UNTERRICHTS KONZEPT

Dauer: 2 Doppelstunden

Zielgruppe: 5 Klasse AHS

Lernziele

Verstehen der Grundkonzepte der Programmierung

Praktisches Anwenden dieser mittels Python

(28)

PROGRAMMIEREN

mit PYTHON

(29)

Übersicht

Grundbegriffe

Formale und natürliche Sprachen

Die Programmiersprache Python

Ein erstes Programm

(30)

Grundbegriffe

Was ist ein Algorithmus?

Was ist eine Datenstruktur?

Was ist Programmieren?

Und was ist ein Programm?

(31)

Was ist ein Algorithmus?

Ein Algorithmus ist eine detaillierte und explizite Handlungsvorschrift zum schrittweisen Lösen

eines bestimmten Problems.

(32)

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

(33)

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

(34)
(35)

Aufgabe Algorithmus

Stell dir ein Essen vor, das du selbst

gerne kochst. Beschreibe algorithmisch

den Ablauf. Beginnend mit den Zutaten

bist zum fertigen Rezept.

(36)

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

(37)

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

(38)

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

(39)

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

(40)

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

(41)

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

(42)

Die Programmiersprache Python

(43)

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,…

(44)

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

(45)

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)!

(46)

Genug der Theorie… lasst uns

programmieren!

(47)

Ein erstes Programm – Hallo Welt

Aufgabe: Gib folgendes am Bildschirm aus: Hallo, Welt!

Code: print('Hallo Welt!') Ausgabe: Hallo Welt!

(48)

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.

(49)

Aufgabenstellung - Algorithmus

Beschreibe die einzelnen Schritte des

Spieles mit deinen eigenen Worten. Gehe

Schritt für Schritt des Spiels ganz genau

durch.

(50)

Referenzen

ÄHNLICHE DOKUMENTE

Schreiben Sie ein Programm, das eine Datei zensiert: Alle Zahlen in der Datei werden durch X ersetzt. Achtung: Erstellen Sie für die Ausgabe eine neue Datei, der man ansieht, dass

Ihr Programm soll die heruntergeladene Datei önen und die Einträge der Datei (ein Wort pro Zeile) in einem Python-Dictionary speichern. Bei der Benutzereingabe soll das eingegebene

Zunächst NLTK importieren: >>> import nltk Korpora downloaden mit >>> nltk.download().. einen Text nutzen, zB: >>> from nltk.book

Befehle können mit Strg + S gespeichert werden, oder durch File → Save die Shell kann durch Strg + F6 neu gestartet werden, dies kann auch durch den Reiter Shell → Restart

Mit dir(__builtins__) können Sie sich die vordefinierten Funktionen anzeigen lassen (es werden nicht nur Funktionen angezeigt). Mit help(function_name) erhalten Sie

Beim Aufruf der Funktion werden die Parameter mit den Argumenten gefüllt und es werden schrittweise die Anweisungen im Funktionskörper ausgewertet, bis eine return-Anweisung

fh ist eine Konvention nach der man den Datei-Handle benennt (file handle) dateiname ist der Name einer existierenden oder zu erstellenden Datei das zweite Argument, in diesem Fall

Tupel, Listen und Strings sind sequentielle Datentypen Tupel: (a,b,c,d) , Liste: [a,b,c,d] , String: abcd.. Für alle sequentielle