Your browser doesn't support the features required by impress.mod.js, so you are presented with a simplified version of this presentation.

For the best experience please use the latest Chrome, Safari or Firefox browser.

20.04.2018 | Forschungsdesign 4.0, Dresden

Programming Historians

Unverzichtbare Kompetenz, methodisches Plus oder nicht zwingende Eigenschaft zukünftiger HistorikerInnen?

Torsten Schrade, Akademie der Wissenschaften und der Literatur & Hochschule Mainz
@digicademy, @_mainzed | Twitter digicademy | CC-BY 4.0

Gliederung

  1. Einführung und Überblick
    L'historien et l'ordinateur après 50 ans
  2. "Weniger schlecht programmieren"
    Vom einfachen Skripting zu professioneller Forschungssoftware
  3. Naming things
    Domain Driven Design als Modellierungsmethode in der geschichtswissenschaftlichen Softwareentwicklung
  4. Fazit
    Geschichtswissenschaften im Spannungsfeld zwischen Software Engineering und digitaler Quellenkritik

Fragestellungen

01

Einführung und Überblick

L'historien et l'ordinateur après 50 ans

The Programming Historian

Kollaborative Lernplattform für HistorikerInnen (2008 - 2018)

"In 2008, William J. Turkel and Alan MacEachern introduced the project to the world by writing a series of tutorials aimed at everyday working historians looking to build their technical skills. [...] A decade on, and the project has attracted more than 1.3-million visitors, has included a team of 24 different scholars in 6 countries. Contributions have come from 63 authors and 97 different peer reviewers who have published 102 tutorials in 2 languages. Each of those tutorials is about the length of a journal article, making the project a substantial piece of collective writing. Adam Crymble, A Decade of Programming Historians, 23.03.2018

The Programming Historian

Kollaborative Lernplattform für HistorikerInnen (2008 - 2018)

The Programming Historian ...

  • ... is committed to open source values.
  • ... is committed to diversity
  • ... is a volunteer-driven project.
  • All submissions [...] are published under a Creative Commons ‘BY’ license.

"We do not solicit reviews to judge whether a tutorial is 'good enough' to be published. Rather, we consider the review process an integral component of a collaborative, productive, and sustainable effort for scholars to teach and learn from each other."

The Programming Historian (ISSN: 2397-2068),
URL: https://programminghistorian.org/,
CC-BY 4.0

The Programming Historian

Überblick und Analyse des Tutorienangebotes

  • Ein Schwerpunkt liegt (immer noch) in der Datengenerierung, -verarbeitung und -transformation mit Python
  • Mehrere neuere Bereiche der Digital Humanities, die auch von besonderem Interesse für die Geschichtswissenschaften sind, werden abgedeckt (bspw. Netzwerkanalyse, Linked Data), andere fehlen noch (bspw. Machine Learning)
  • Kein direkter Fokus auf Software Engineering, eher auf Skripting

The Programming Historian

Einschätzungen aus der Community

"The Programming Historian is currently the best one-stop-shop for technical skill-building in the digital humanities. But this comes with a caveat: it is heavily slanted towards a particular kind of technical skill-building, one bound up within a tradition of humanities computing and tech culture. [...] [It] can feel daunting for people who are not already familiar with humanities computing or tech culture. [...] Lesson titles such as 'Transliterating non-ASCII Characters with Python', 'Supervised Classification with a Naive Bayesian', or even the tutorial I followed for this review, 'Sustainable Authorship in Plain Text Using Pandoc and Markdown', assume an existing familiarity with what all those words mean and how they might help you. ASCII, Python, Bayesian, Pandoc, Markdown: these are part of an insider vocabulary." Cameron Blevins, Review of The Programming Historian, 2015

»Der Historiker von morgen wird Programmierer sein oder es wird ihn nicht mehr geben«

Zitat aus dem Blogpost von Mareike König, 03.04.2015 zur Kontextualisierung des Beitrags „L’historien et l’ordinateur“ des französischen Mediävisten Emmanuel Le Roy Ladurie von 1968

Aus den Kommentaren

"Was insgesamt nicht schaden könnte, statt generell über Historiker und Programmieren zu diskutieren, ist vielleicht eine sinnvolle Kenntnis von Methodik zu entwickeln. Sinn macht Programmieren ja erst, wenn man entweder eine eindeutig datengetriebene Frage hat, oder eine Frage so formulieren kann, dass man sie datengetrieben bearbeiten kann." Kommentar von Daniel Stange, 06.04.2015
"Die Frage ist für mich, was verloren geht, wenn man das Curriculum von Historikern mit Statistik, Programmierkursen etc. vollpackt." Kommentar von Eckhart Arnold, 07.04.2015
"Ohne diese 'code literacy' wird man nicht Tools nicht ausreichend verstehen und methodisch kritisch hinterfragen können, um sie anschließend anwenden zu können" Kommentar von Mareike König, 10.04.2015

Programming Historians

Transfer und Effizienzsteigerung

"One of the ways historians can learn more about the digital environment is through programming. [...] learning how to code is fun, as it helps us develop the ability to think outside of the box and to build logical connections. I wouldn’t ask everyone to become a programmer, but rather to foster computational thinking. [...] Historians could read sources in a foreign language using a translator, but need to know the specifics of the relevant syntax to fully understand the content, right? It is the same logic for coding. If we understand the structure of the internet, the nature of the programs we use, the values behind a software and the various ways to verify the information on the internet, we could handle the provided resources more effectively."
Janine Noack, Why historians should learn how to code (at least a bit), 2015

Programming Historians

Erweiterung des Methodenrepertoires, Unabhängigkeit

"Historians are very thorough when it comes to the integrity of their sources, so it seems logical that they should apply the same rigorous approach to an algorithm that decides what sources are the most visible, or appear at all. [...] there probably isn’t a program out there that does exactly what you want it to do, this is where programming comes in. Programming allows you to create the program or add-on that will enable you to manipulate the data in the way you want to. [...] The biggest reason why we do not see programming used more widely is that it is difficult to learn, and can be very time consuming. Also of concern is which language is worth spending the time and effort to learn."
mal1661, How can Programming be Useful for Historians?, 27.04.2015

Programming Historians

Programmieren als Kulturtechnik

"[...] beide Kompetenzen, die klassische Quellenkritik ebenso wie eine adäquate Medienkompetenz [sind] im Kurrikulum der Geschichts- wissenschaften existentiell bedroht bzw. hochgradig unterrepräsentiert. [...] von Programmcode ganz zu schweigen, der in manchen Teilen der Wissenschaft – auch jenseits seiner funktionellen Eigenschaft als source codelängst zur historischen Quelle geworden ist. [...] Denn so wie die Kodikologie, die Diplomatik, die Numismatik und die Sphragistik nie ohne den Sachverstand der Kunstgeschichte, Mediävistik, Altertumskunde, Physik oder Chemie auskommen konnten, so wenig wird die Geschichtswissenschaft in Zukunft ohne den intensiven Austausch [...] – zwischen Informatik, den Philologien, der Medientheorie und der Philosophie und ihrer digitalen Expertise bestehen."
Forum: Markus Krajewski: Programmieren als Kulturtechnik, in: H-Soz-Kult, 30.11.2015, <www.http://www.hsozkult.de/debate/id/diskussionen-2901>

02

"Weniger schlecht programmieren"

Vom einfachen Skripting zu professioneller Forschungssoftware

Research Software Engineering

Von Programmierkompetenzen zu Forschungssoftware

Wordcloud der vergebenen Topics der DHd 2018

Quelle: Ulrike Henny-Krahmer, Patrick Sahle, Einreichungen zur DHd 2018, URL: http://dhd-blog.org/?p=9001

Wordcloud der vergebenen Topics der DHd 2018

Quelle: Stephan Janosch, Keynote zum DH RSE Workshop auf der DHd 2018, URL: Figshare

Research Software Engineering

Studienfach - Abschluss - Arbeitsort

Quelle: Stephan Druskat, Alexander Czmiel und Torsten Schrade: Slides des Workshops "Research Software Engineering und Digital Humanities. Reflexion, Kartierung, Organisation", DHd 2018, Köln, 27.02.2018, URL: https://dh-rse.github.io/dhd-workshop-2018-presentation/.

Research Software

Studienfach - Jobtitel - Arbeitsfelder

Quelle: Stephan Druskat, Alexander Czmiel und Torsten Schrade: Slides des Workshops "Research Software Engineering und Digital Humanities. Reflexion, Kartierung, Organisation", DHd 2018, Köln, 27.02.2018, URL: https://dh-rse.github.io/dhd-workshop-2018-presentation/.

Research Software Engineering

Kompetenzerwerb - Erfahrung - Professionalität

Quelle: Stephan Druskat, Alexander Czmiel und Torsten Schrade: Slides des Workshops "Research Software Engineering und Digital Humanities. Reflexion, Kartierung, Organisation", DHd 2018, Köln, 27.02.2018, URL: https://dh-rse.github.io/dhd-workshop-2018-presentation/.

Research Software Engineering

Problemstellungen, für die wir ein Grundverständis benötigen

  • Ausgelaufene Projektfinanzierungen bedingen, dass der Weiterbetrieb einer Software "irgendwie anders" aufrecht erhalten werden muss
  • EntwicklerInnen stehen einem Projekt nicht mehr zur Verfügung, waren aber die ausschließlichen Wissensträger (sog. Busfaktor...)
  • Veraltete und/oder nicht mehr wartbare Software-Infrastruktur (mit implizitem, undokumentierten "Infrastrukturwissen")
  • Veralteter oder unverständlicher Programmcode, der weitergeführt werden muss
  • Sicherheitslücken in der Software, die erst im Produktivbetrieb auffallen und einen Weiterbetrieb der Software verhindern
  • Bugs in der Software, die erst im Produktivbetrieb auffallen, da vorher keine Softwaretests durchgeführt wurden
  • Datenverluste oder unerwartetes Verhalten der Software, da die Anwendung nicht unter Produktiv-Bedingungen (infrastrukturell gesehen) entwickelt wurde
  • Fehlendes Monitoring der Forschungssoftware, wodurch Störfälle nicht oder erst spät auffallen

Quelle: Torsten Schrade: Nachhaltige Softwareentwicklung in den Digital Humanities, DHd 2017, Bern, 17.02.2018, URL: https://digicademy.github.io/2017-dhd-sustainable-software.

Research Software Engineering

Notwendige Professionalisierung und akademische Leistung

PDF: http://bit.ly/23jxw7D
"Many researchers know how to code, but few understand the wider set of skills that are needed to develop reliable, reproducible and reusable software. [...] software engineering should be incorporated [...] at the very start of a research career" [S.14]
"We must raise awareness of the fundamental role of software in research [...] All stakeholders, from researchers to policymakers, must be included in this awareness raising campaign" [S.11]
"Research software should be recognised as a valuable research object in line with the investment it receives and the research it makes possible [...] Research software should become a citable scientific deliverable of equivalent value to researchers as that of a publication" [S.11]

03

Naming things

Domain Driven Design als Modellierungsmethode in der geschichtswissenschaftlichen Softwareentwicklung

There are only two hard things in Computer Science: cache invalidation and naming things.

-- (wahrscheinlich) Phil Karlton (Netscape)

Research Software Engineering

Vom historischen Objekt her gedacht am Beispiel einiger Akademieprojekte

Methodenbeispiel

Softwaremodellierung mittels Domain Driven Design (DDD)

  • Domain-Driven Design (DDD) ist eine konzeptionelle Herangehens- und Denkweise für die Modellierung von Software. Der Ansatz wurde 2003 von Eric Evans in seinem gleichnamigen Buch geprägt. Das Hauptaugenmerk in DDD fällt dabei auf die Einführung einer ubiquitären (allgemein verständlichen) Sprache, die auf allen Stufen der Softwareentwicklung - von den Konzeptionsgesprächen bis hin auf die Code-Ebene - verwendet werden sollte.
  • DDD legt besonders großen Wert auf die Fachlichkeit einer Anwendungsdomäne, die mittels der ubiquitären Sprache abgebildet werden soll. Daher steht die Kommunikation zwischen SoftwareentwicklerInnen und DomänenexpertInnen im Zentrum der Methode. Ein Domänenmodell basiert auf Objekten, die für die einzelnen Bestandteile der zu modellierenden Fachdomäne stehen und unterschiedliche Eigenschaften haben.
  • Durch regelmäßige Iterationen nach dem DDD-Prinzip kann sich die Software kontinuierlich mit der sich stetig wandelnden Projektrealität verändern. Die Codebasis bleibt dabei im Einklang mit der Konzeptions- bzw. Modellierungsebene.

Eric J. Evans, Domain Driven Design. Tackling Complexity in the Heart of Software. Boston 2003.

Domain Driven Design

Am Beispiel des Cultural Heritage Frameworks (CHF)

Domain Driven Design

Am Beispiel des Cultural Heritage Frameworks (CHF)

Domain Driven Design

Am Beispiel des Cultural Heritage Frameworks (CHF)

Domain Driven Design

Am Beispiel des Cultural Heritage Frameworks (CHF)

Domain Driven Design

Am Beispiel des Cultural Heritage Frameworks (CHF)

Domain Driven Design

Implementierungsbeispiele

04

Fazit

Geschichtswissenschaften im Spannungsfeld zwischen Software Engineering und digitaler Quellenkritik

Programming Historians

Kompetenzfelder jenseits von Programmierkenntnissen

Fazit

Programming Historians im Spannungsfeld von Software Engineering und digitaler Quellenkritik

Programming Historians

Unverzichtbare Kompetenz, methodisches Plus oder nicht zwingende Eigenschaft künftiger HistorikerInnen?

F I N I S

Vielen Dank für die Aufmerksamkeit!

Links & Software

Links

Software

Download