Einführung in das Programmieren für Historiker*Innen

Martin Dröge / Ramon Voges

25. September 2018

Einstieg

Vorstellungsrunde und Erwartungen

Zeitplan

  • 7 Blöcke
  • kürzere Pausen
  • eine lange Pause

Warum sollten Historiker*Innen programmieren?

Ziele

  • Einstiegsschwelle überwinden
  • neugierig machen
  • Einblicke in Python geben
  • eigene Skripte schreiben

Grenzen

  • knapper Zeitplan
  • Grundlagen! Nicht alles kann angesprochen werden
  • kein vollständiger Programmierkurs

Fragen sind jederzeit erwünscht!

Vorgehen

  • Inputs
  • gemeinsam Skripte schreiben
  • Vorlage der Skripte im Ausdruck

Zwei ‘Lern-Stränge’

  1. Coden
  2. Benutzen der Tools zum Programmieren
  • Kommandozeile
  • Anaconda
  • IPython
  • Editor (VS Code)
  • Jupyter Notebooks

Block 1: Historie, Konzepte, Einsatz

Warum Python?

  • einfach zu lernen
  • einfach zu lesen
  • riesige Community
  • laut TIOBE auf Platz 3
  • Open Source Software

Entwicklung

  • zu Beginn der 1990er Jahre von Guido van Rossum entwickelt
  • 1994 erschien die Version 1.0
  • ursprünglicher Zweck: Programmieren beibringen
  • Name geht nicht auf die Schlange, sondern auf Monty Python zurück
  • Dezember 2008: Version 3.0 -> vollständig auf Unicode umgestellt
  • Juli 2018: Guido van Rossum tritt als “Benevolent Dictator for Life” (BDFL)

Python als Skriptsprache

Skript Programm
z.B. Python z.B. Java oder C++
Interpreter Compiler
höhere Programmiersprachen maschinennahe Programmiersprachen
anpassungsfähig aufwendiger anzupassen, schwer zu debuggen

Python als Skriptsprache

Skript Programm
dynamische Typisierung feste Typisierung
leichter zu erlernen schwerer zu erlernen

Python-Skripte erkennbar an der Endung: skript_name.py

Einsatzgebiete I

  • Universitäten und Forschungseinrichtungen
  • Technologie-Branche
  • Industrie
  • Data Science

Einsatzgebiete II

  • Data and Text Mining
  • Daten-Analyse
  • Visualisierung
  • Web Entwicklung
  • System-Administration
  • Rapid Prototyping

Arbeitsumgebung

Das Terminal

  • cd [Verzeichnis] - wechselt das Verzeichnis
  • cd ~ - wechselt in das Heimat-Verzeichnis
  • mkdir [Verzeichnis] - erstellt das [Verzeichnis]
  • touch [Datei] / New-Item [Datei] -type file – erstellt die [Datei]
  • rm [Datei] - löscht (unwiederbringlich!) die [Datei]
  • rm -r [Verzeichnis] - löscht (unwiederbringlich!) das [Verzeichnis]

Das Terminal

  • ls - listet den Inhalt des aktuellen Verzeichnisses auf
  • ls -lah – wie ls, nur ausführlicher
  • pwd - gibt den Namen des aktuellen Verzeichnisses an
  • man [Befehl] - Hilfeseite zum [Befehl]
  • pydoc [keyword] - Python-Dokumentation für [keyword]

Arbeitsumgebung schaffen

cd ~
mkdir Skripte
cd Skripte

Anaconda

conda - Package-Manager

  • conda search [Paket] – sucht das [Paket] auf dem Server
  • conda install [Paket1] [Paket2] etc. – installiert die Pakete
  • conda install -c conda-forge [Paket1] etc. – installiert die Pakete von dem Server conda-forge
  • conda install -n [env] [Paket] – installiert das Paket in die Umgebung [env]
  • conda list – listet die Pakete auf

conda - Package-Manager

  • conda update [Paket]/python/conda – updatet [Paket], Python oder conda
  • conda remove [Paket] – entfernt das [Paket]
  • pip3 install [Paket] – installiert mit Pip das [Paket]

Virtuelle Umgebungen

  • conda create -n [env] – erschafft die Umgebung [env]
  • conda create -n [env] python=3.7 – wie oben, aber mit bestimmter Python-Version
  • conda info --envs – Informationen zu die Umgebungen
  • conda list --explicit > spec-file.txt – speichert die Pakete der Umgebung in [spec-file.txt]

Virtuelle Umgebungen

  • conda install --name <env> --file spec-file.txt – installiert genau diese Umgebung
  • activate [env] – aktiviert die [Umgebung] auf Windows
  • source activate [env] – aktiviert die [Umgebung] auf MacOS und Linux
  • deactivate – deaktiviert die [Umgebung] auf Windows
  • source deactivate – deaktiviert die [Umgebung] auf MacOS und Linux

Editor oder IDE

  • Editor: Bearbeiten von Text (Notepad++, Sublime Text, Atom, Vim, Emacs)
  • IDE: Integrated Development Environment (VSCode, Eclipse, PyCharm)

Hilfe zur Selbsthilfe

Block 2: Erste Schritte

Python Interpreter öffnen

Anaconda Prompt starten

  • Windows-Startmenu aufrufen
  • unter ‘A’: Anaconda auswählen
  • Anaconda-Prompt anklicken

Python Version checken

(base) C:/User/Username/>python --version

IPython-REPL

(base) C:/User/Username/>ipython

Hallo Welt

In[1]: print("Hallo Welt!")

Addieren

5 + 2

3 + 6

42 + 1337

Substrahieren

5 - 2

7 - 4

1337 - 42

Multiplizieren

7 * 5

6 * 3

6 * 7

Dividieren

15 / 3

42 / 7

1337 / 12

Ganzzahl und Gleitkommazahl

  • Ganzzahl

Integer, int(): 8, 42, 1337

  • Gleitkommazahl

Float, float(): 1.5, 8.7, 123.45

Block 3: Datentypen

IPython-REPL II

  • Windows-Startmenu aufrufen
  • unter ‘A’: Anaconda auswählen
  • IPython anklicken

Magische Befehle

%magic

%cpaste

Zeichenketten / Strings

Konkatenieren

Variablen

Interpolieren

Funktionen und Methoden bei Strings

Listen / Lists

Zuordnungen / Dictionaries

Mengen / Sets

Tuple

Indexieren von Strings

Slicing

Indexieren von Listen

Funktionen und Methoden bei Listen

Zugriff auf Dictionaries

Logische Ausdrücke

Logische Ausdrücke: and, or

Block 4: kleine Skripte

VS Code einrichten

  • Windows-Startmenu aufrufen
  • unter ‘A’: Anaconda auswählen
  • Anaconda Navigator anklicken
  • VS Code installieren

VS Code starten

  • Windows-Startmenu aufrufen
  • unter ‘A’: Anaconda auswählen
  • Anaconda-Prompt anklicken
  • ‘code’ eingeben

Python Extension einbinden

  • ganz links viertes Symbol von oben klicken
  • im Suchfeld ‘Python’ eingeben
  • ersten Treffer auswählen und installieren
  • Code neu starten

Python-Datei anlegen

  • speichern unter: Dateiname eingeben
  • Dateiendung: .py anhängen

User-Input Skript

Skript aufrufen

  • STRG + ö
  • ins Verzeichnis navigieren
  • python DATEINAME.py

Anweisungsaufbau und Blöcke

ANWEISUNGSKOPF:DOPPELPUNKT

EINRÜCKUNG ANWEISUNG

Fehlerbehandlung / error handling

help() Function

Juypter Notebooks einrichten

  • Windows-Startmenu aufrufen
  • unter ‘A’: Anaconda auswählen
  • Anaconda Navigator anklicken
  • Jupyter Lab installieren

Jupyter Lab starten

  • Windows-Startmenu aufrufen
  • unter ‘A’: Anaconda auswählen
  • Anaconda-Prompt anklicken
  • ‘juypter lab’ eingeben

Jupyter Notebook starten

  • ganz links ‘Files’ klicken
  • in das Arbeitsverzeichnis navigieren
  • im Launcher Notebook Python 3 auswählen

Jupyter Notebook Short Cuts

  • STRG + Eingabe: = Zelle ausführen
  • B = neue Zelle unten einfügen

Kontrollstrukturen

For-Schleife

While-Schleife

If-Anweisung

Dateien lesen 1

Dateien lesen 2

I/O Parameter

  • “r” = read / lesen
  • “w” = write / schreiben
  • “a” = append / anhängen

Block 7: Hilfe zur Selbsthilfe

algorithmisches Denken

  • Problem in einzelne Schritte zerlegen
  • Schritte ausformulieren
  • einzelne Bauteile zusammenstellen

Pseudo Code

TEXT = “text” LOOP OVER TEXT IF ELEMENT IS VOWEL PRINT ELEMENT

Vorteil

  • Vorgehen wird klarer
  • Konzepte verstehen
  • Übertragbar auf andere Programmiersprachen

Tutorials

https://realpython.com/

https://docs.python.org/3/tutorial/

https://www.python-kurs.eu/

https://programminghistorian.org/lessons/?topic=python

Bücher: Online

https://automatetheboringstuff.com/

https://www.nltk.org/book/

Bücher

Siehe Büchertisch!

offene Fragen

Feedback-Runde

Zum Abschluss

What people think programming is vs. how it actually is

https://www.youtube.com/watch?v=HluANRwPyNo