Ressourcen: Programmierung
Programmiersprachen
- Python (https://www.python.org/)
Python hat sich in den letzten Jahren zu einer der am weitesten verbreiteten Programmiersprachen (v. a. in den Digital Humanities) entwickelt („TIOBE Index“ 2025). Es ist sowohl einsteigerfreundlich als auch für komplexe Softwareprojekte geeignet. Insbesondere im Kontext von Machine Learning'Machine Learning, bzw. maschinelles Lernen im Deutschen, ist ein Teilbereich der künstlichen Intelligenz. Auf Grundlage möglichst vieler (Text-)Daten erkennt und erlernt ein Computer die häufig sehr komplexen Muster und Gesetzmäßigkeiten bestimmter Phänomene. Daraufhin können die aus den Daten gewonnen Erkenntnisse verallgemeinert werden und für neue Problemlösungen oder für die Analyse von bisher unbekannten Daten verwendet werden.' (Glossar forTEXT) Weiterlesen ist Python die Standardsprache und profitiert von einem großen Ökosystem an BibliothekenProgrammbibliothek, kurz Bibliothek, wird in der Informatik eine Sammlung von Funktionen genannt, die in anderen Programmen eingebunden und von diesen verwendet werden kann. Eine Funktion ist in diesem Kontext ein in sich abgeschlossener Programmcode, der von anderen Stellen eines Programms aus aufgerufen und ausgeführt werden kann. Für Programmiersprachen wie Python gibt es eine ausgesprochen umfangreiche Sammlung von Bibliotheken, die komplexe Funktionalitäten z. B. für das Machine Learning bieten. Weiterlesen, die in das eigene Projekt eingebunden werden können und die Entwicklungsarbeit reduzieren. - R (https://www.r-project.org/)
R ist die Programmiersprache für statistische Berechnungen und zur Datenvisualisierung. Vergleichbar mit Python sind eine Vielzahl an zusätzlichen Bibliotheken verfügbar. R ist vor allem in der wissenschaftlichen Datenauswertung verbreitet und bietet mit RStudio eine eigene grafische Oberfläche. Es wird jedoch im Gegensatz zu Python seltener zur Entwicklung vollständiger Anwendungen eingesetzt.
Entwicklungstools
- Visual Studio Code (https://code.visualstudio.com/)
Visual Studio Code hat sich in den letzten Jahren zu einem De-facto-Standard als die meistgenutzte IDE (Integrated Development EnvironmentEine Integrated Development Environment (IDE) - zu deutsch Integrierte Entwicklungsumgebung - ist eine Software, die verschiedene zur Entwicklung von Programmen notwendige Tools in einem Paket vereint. IDEs bieten Unterstützung beim Schreiben von Programmen, beim Übersetzen in Maschinensprache sowie beim anschließenden Ausführen und Fehlersuchen. Sie unterstützen zudem oft die Verwendung von Versionskontrollsystemen direkt aus der IDE heraus. Der konkrete Funktionsumfang ist von IDE zu IDE verschieden, so unterstützen manche nur eine Programmiersprache, während andere ein möglichst breites Spektrum unterschiedlicher Sprachen abdecken. Weiterlesen – deutsch: Integrierte Entwicklungsumgebung) entwickelt. Durch Plugins kann die Funktionalität fast beliebig erweitert werden. Der Quellcode von Visual Studio Code ist Open Source, die von Microsoft zum Download bereitgestellte Version sendet jedoch Nutzungsdaten. Bei Datenschutzbedenken kann alternativ die vollständig freie Version VSCodium (https://vscodium.com/) genutzt werden. Mit der Eclipse Theia IDE (https://theia-ide.org/) steht ein auf demselben Quellcode aufbauendes Projekt zur Verfügung, das zusätzlich ein eigenes Ökosystem an Erweiterungen anbietet. - Jupyter Notebooks (https://jupyter.org/)
Jupyter Notebooks bieten die Möglichkeit, Quellcode interaktiv in einem Dokument auszuführen und Quellcode, Programmausgabe sowie umfangreichere Dokumentationstexte an einer Stelle zu vereinigen, zu speichern und zu teilen. Insbesondere im Kontext wissenschaftlicher Forschung ist dies zur transparenten Dokumentation der Forschungsergebnisse im Sinne der guten wissenschaftlichen Praxis'Die gute wissenschaftliche Praxis (GWP) bildet einen standardisierten Kodex, der als Regelwerk in den Leitlinien der Deutschen Forschungsgemeinschaft (DFG) verankert ist. Die Leitlinien verweisen auf die ethische Verpflichtung jedes/jeder Forschenden, verantwortungsvoll, ehrlich und respektvoll vorzugehen, auch um das allgemeine Vertrauen in Forschung und Wissenschaft zu stärken. Sie können als Orientierung im Rahmen wissenschaftlicher Arbeitsprozesse geltend gemacht werden.' (Data Affairs, Glossar) Weiterlesen besonders nützlich. Jupyter Notebooks unterstützt verschiedene Programmiersprachen inklusive Python und R. - Git (https://git-scm.com/)
Git ist das Standardwerkzeug zur Versionsverwaltung von Daten. Es ermöglicht, Zwischenstände zu speichern, eine Historie an Veränderungen vorzuhalten und neue Entwicklungen in einem sog. separaten Zweig (englisch Branch) vorzunehmen. Dadurch wird das Risiko minimiert, funktionierenden Programmcode während der Weiterentwicklung zu zerstören und es kann bei Bedarf zu einem früheren Stand zurückgekehrt werden. Mit git verwalteter Quellcode kann zudem leicht auf SoftwareentwicklungsplattformenModerne Softwareentwicklung findet in aller Regel über speziell dafür entwickelte Plattformen statt, die Methoden zum Projektmanagement und der Verwaltung des Quellcodes bieten. Für Letzteres hat sich das Tool git als De-Facto-Standard etabliert. Softwareentwicklungsplattformen bieten die Möglichkeit, die Entwicklung projektzentriert durchzuführen und neben dem Quellcode beispielsweise ein Wiki zu pflegen und Fehler mittels eines Issue-Trackers nachzuverfolgen. Über diesen können auch Nutzer*innen von Software Fehler melden. Diese Plattformen bieten auch weitere Mechanismen zur Automatisierung, z. B. das automatische Erstellen von lauffähigen Programmen aus dem Quellcode, die dann zum Herunterladen angeboten werden können. Weiterlesen hochgeladen und über diese geteilt werden.
Lernressourcen
- Programming Historian (https://programminghistorian.org/)
Umfangreiche Sammlung von Tutorials zur Programmierung anhand der Auswertung von historischen Quellen. Programmiersprachen sind vor allem Python und R. Die Tutorials setzen jedoch idR Grundkenntnisse der verwendeten Sprachen voraus, da direkt in die Verwendung bestimmter Methoden zur Analyse eingestiegen wird. - Python Tutorials for Digital Humanities (https://www.youtube.com/@python-programming)
Videoserie auf YouTube mit einer Vielzahl an Videotutorials beginnend bei den absoluten Grundlagen bis hin zu fortgeschrittenen Themen wie der Nutzung von Grafikkarten für maschinelles Lernen. - Python für Historiker:innen (https://digital-history-berlin.github.io/Python-fuer-Historiker-innen/home.html)
Die Ressourcen sind auch auf Zenodo zu finden: https://doi.org/10.5281/zenodo.6868043. Diese deutschsprachige Einführung in Python richtet sich explizit an Historiker*innrn und vermittelt die Grundlagen der Programmierung und eignet sich daher gut als erster Einstieg. Die Codeabschnitte sowie die dazugehörigen Erläuterungen sind als Jupyter-Notebooks verfügbar, welche entweder lokal ausgeführt oder direkt online genutzt werden können. Für einen ersten Einstieg ist also keine Installation von Software notwendig. - Introduction to Python for Humanists (https://python-textbook.pythonhumanities.com/intro.html)
Englischsprachige Ressource zu Python, die im Vergleich zu „Python für Historiker:innen“ einen deutlich tieferen Einstieg bietet, da neben der Erläuterung der elementaren Funktionsweise von Python auch Bibliotheken wie spaCy (https://spacy.io/) und Pandas (https://pandas.pydata.org/) vorgestellt werden. Diese dienen zur Analyse und Verarbeitung von Daten auch mit Hilfe von Methoden aus dem Bereich des Natural Language ProcessingNatural Language Processing (NLP), maschinelle Sprachverarbeitung zu Deutsch, ist ein Teilgebiet der Linguistik, der Informatik und der künstlichen Intelligenz, welches sich damit beschäftigt, wie Computer so programmiert werden, dass sie große Mengen an natürlichsprachlichen Daten verarbeiten und analysieren können. Weiterlesen (NLP). Die Übungen und Beispiele können sowohl lokal als auch direkt online ausgeführt werden, so dass keine Installation von Software notwendig ist. - Programmieren für Geistes- und Sozialwissenschaftler:innen (https://github.com/yannickfrommherz/exdimed-student/tree/main)
Die deutschsprachige Ressource vermittelt grundlegende Programmierkenntnisse in Python für Geistes- und Sozialwissenschaftler*innen ohne Vorkenntnisse. Sie eignet sich für das Selbststudium und den flexiblen Einsatz im Unterricht. Anhand von neun Jupyter Notebooks werden sowohl die wichtigsten Grundlagen als auch fortgeschrittene Themen wie Datenanalyse und Web Scraping praxisnah anhand fachspezifischer Beispiele vermittelt. Die Materialien sind modular aufgebaut und enthalten zahlreiche Übungen mit Lösungen. Die Notebooks können entweder lokal oder direkt in der Cloud genutzt werden.
