====== Seminar „Softwareentwicklung in der Wissenschaft“ ======
===== Beschreibung =====
Im Seminar werden wir die Softwareentwicklung in der Wissenschaft diskutieren. Im Detail der Prozess von der wissenschaftlichen Fragestellung über die Modellierung und Programmierung bis hin zur Analyse der Ergebnisse. Hierzu werden Softwareentwicklungs-werkzeuge und Mechanismen vorgestellt und deren Umsetzung in der bestehenden Praxis analysiert.
Die Lehrmaterialien sind typischerweise in englischer Sprache.
Beachten Sie auch unsere allgemeinen organisatorischen [[:teaching:organisatorische_hinweise:seminar_proseminar#seminare|Hinweise zu Seminaren]].
===== Zielgruppe =====
Das Seminar eignet sich für Studierende im Bachelortudiengängen mit Bezug zur Informatik sowie Masterstudiengang in den Geowissenschaften.
Wir fordern explizit Studierende der angewandten Informatik zur Teilnahme auf beispielsweise Bioinformatik, Wirtschaftsinformatik sowie Geowissenschaftler.
Für Studierende der Informatik und Geowissenschaften wird die Anrechnung innerhalb des Studiums problemlos möglich, Studierende anderer Studiengänge müssen die Anrechnung mit dem jeweiligen Prüfungsausschuss klären.
Interessierte Zuhörer sind auch herzlich willkommen.
===== Daten der Veranstaltung =====
|| Ort || [[https://www.uni-hamburg.de/onTEAM/campus/index.html?loc=i12340438|DKRZ]], Raum 023 ||
|| Zeit || Dienstag 16:15 - 17:45 ||
|| Vorbesprechung || Dienstag 12.4.2016 16:15 ||
|| Mailingliste || [[https://wr.informatik.uni-hamburg.de/listinfo/siw-16|SIW-16]] ||
===== Dozenten =====
* [[People:Alumni:Christian Hovy]] (Ansprechpartner)
* [[People:Hermann Lenhart]]
* [[People:Alumni:Julian Kunkel]]
===== Inhalt =====
==== Theorie ====
Hier werden vertiefende Vorträge zu Einzelaspekten der Softwareentwicklung in der Wissenschaft angeboten, z.B:
* Modellierung und Simulation
* Leistungsanalyse und Effizienz
* Auswahl der Numerik und Algorithmen
* Algorithm Engineering (and Software-reliability engineering)
* Verifikation, und Validierung:
* Assesment of Accuracy and Reliability
* Qualität von berechneten Lösungen (floating point Repräsentation), Conditionierung
* Computer-assisted Proofs and Self-Validating Methods
* General Methods for Implementing Reliable and Correct Software
* Design and execution of validation experiments (IV, Roy)
* Solution Verification & Fehlerquellen (I, III, Roy)
Weitere ausgewählte Artikel zum Thema können auch bearbeitet werden.
==== Wissenschaftliche Praxis ====
Praxis in diversen Projekten: An Hand von Interviews soll die Praxis der Softwareentwicklung beispielhaft evaluiert werden. Im Mittelpunkt der Interviews stehen konkrete Fragen warum eine bestimmte Software entwickelt wird, von wem und wie diese entwickelt. Aufbauend auf den persönlichen Kenntnissen und Fähigkeiten im Bereich der Informatik kann als Ausgangspunkt die Einführungspräsentation, die angebene Literatur und eigene Literaturrecherche dienen. Die von uns ausgewählten Interviewpartner werden über eines (oder mehrere) ihrer Projekte mit euch sprechen, euch evtl. Hintergrundinformation in Form von Papern, Dokumentationen oder Links zur Fragestellung geben. Hieraus sind konkrete und gezielte Fragen zum Projekt und der Softwareentwicklung für das Interview zu erarbeiten.
In euren Präsentationen im Seminar stellt ihr die Fragestellung(en) der Interviewpartner, die behandelte Software, den Projektkontext und die hieraus evaluierte SWE in der Praxis vor. Daneben sind projektabhängige und von euren Interessen abhängige Schwerpunkte und Fragestellungen von euch zu erstellen. Als Leitfaden kann das Muster des Fragenkataloges dienen:
{{:teaching:siw-fragebogen.pdf|Einführungsfragebogen Softwareentwicklung in der Wissenschaft}}
Die Interviewpartner sind von uns ausgesucht und werden euch von uns genannt.
Abschließend soll aus den Ausarbeitungen ein Bericht generiert werden.
Das LaTeX-Template hierzu wird von uns vorgegeben.
===== Zeitplan =====
* **12.04.2016: 1. Termin** (Einführung und Themenvergabe)
Verlegt in Raum 023!!!
* **14.06.2016: Klimamodellierung** – Aleksej Logacjov //(Betreuer: Hermann Lenhart)// {{teaching:sommersemester_2016:siw16-long_logacjov_aleksej_seminar_klimamodellierung.pdf| Vortrag}}, {{teaching:sommersemester_2016:siw-16-seminararbeit.pdf| Seminararbeit}}
* **21.06.2016: Kosten/Nutzen High-Performance Computing** – Marc Strothmann //(Betreuer: Julian Kunkel)//
* **28.06.2016: Testen** – Hauke Reddmann //(Betreuer: Christian Hovy)// {{teaching:sommersemester_2016:siw16-reddmann_testen_folien.pdf| Vortrag}}, {{teaching:sommersemester_2016:siw16-reddmann_testen.pdf| Seminararbeit}}
* **05.07.2016: Aspekt-Orientierte Programmierung** – Tim-Lennart Welge //(Betreuer: Christian Hovy/Julian Kunkel)//
* **31.08.2016: Abgabe-Deadline für Seminararbeit** :!:
===== Themen und Materialien =====
Hinweise:
* Die angegebenen Artikel dienen nur als Orientierungshilfe. Die Studierenden sind angehalten durch eigenständige Recherche weitere Literatur zu finden.
* Einige der verlinkten Artikel sind nur über das Uni- bzw. FBI-Netz, vor Ort oder per [[https://www.inf.uni-hamburg.de/inst/irz/it-services/private-devices/vpn-clients.html|VPN]], abrufbar.
**Wissenschaftliche Softwareentwicklung -- Einführung**
* [[http://arxiv.org/abs/0905.1628|Scientific Software Engineering in a nutshell]]
* [[http://www.software.ac.uk/blog/2015-02-06-scientific-coding-and-software-engineering-whats-difference|Scientific coding and software engineering: what's the difference?]]
* [[http://www.ppig.org/papers/20th-segal.pdf|Scientists and software engineers: a tale of two cultures]]
* [[https://smartbear.com/resources/ebooks/state-of-code-quality-2016/?sr=blog&md=post#_ga=1.193627757.1589825246.1461515633|State of Code Quality 2016: Trends & Insights into Dev Collaboration]]
**Kosten/Nutzen High-Performance Computing** -- Marc
* [[http://www.ctwatch.org/quarterly/articles/2006/11/making-the-business-case-for-high-performance-computing-a-benefit-cost-analysis-methodology/|Making the Business Case for High Performance Computing: A Benefit-Cost Analysis Methodology]]
* [[http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=6496140|The costs of HPC-based science in the exascale era]]
* [[http://arxiv.org/abs/1506.06256|Towards Performance- and Cost-Aware Software Engineering as a Natural Science]]
* [[http://link.springer.com/chapter/10.1007/978-3-319-20119-1_26|http://link.springer.com/chapter/10.1007/978-3-319-20119-1_26]]
* [[http://link.springer.com/article/10.1007%2Fs00450-011-0198-5|Brainware for Green HPC]]
**Klimamodellierung** -- Aleksej
* [[http://onlinelibrary.wiley.com/doi/10.1002/wcc.60/abstract|Constructing climate knowledge with computer models]]
* [[http://www.sciencedirect.com/science/article/pii/S1355219810000407|The development of general circulation models of climate]]
* [[http://dl.acm.org/citation.cfm?doid=1882362.1882383|Climate change: a grand software challenge]]
* [[http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=5337646|Engineering the Software for Understanding Climate Change]]
**Aspekt-Orientierte Programmierung** -- Tim
* [[http://portal.ou.nl/documents/114964/2986739/T07351_01.pdf|Kapitel 21 aus Ian Sommerville - Software Engineering]]
* [[http://www.matusiak.eu/media/uploads/aop_strategies.pdf|Strategies for aspect oriented programming in Python]]
**Testen**
* [[http://proquest.techbus.safaribooksonline.de/9781457178917|Kapitel 2+3 aus Spillner/Linz - Basiswissen Softwaretest]]
* [[http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=819971|What is software testing? And why is it so hard?]]
* [[http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=5467013|Scientific Software Testing: Analysis with Four Dimensions]]
* [[http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=5999647|Software Testing and Verification in Climate Model Development]]
* [[http://digital-library.theiet.org/content/conferences/10.1049/ic_20040413|Verification strategies for high performance computing software]]
**Testen ohne Testorakel** -- Hauke
* [[http://dl.acm.org/citation.cfm?doid=800175.809889|Pseudo-oracles for non-testable programs]]
* [[http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=6615099|Techniques for testing scientific programs without an oracle]]
* [[https://www.cse.ust.hk/~scc/publ/CS98-01-metamorphictesting.pdf|Metamorphic testing: a new approach for generating next test cases]]
* [[http://dl.acm.org/citation.cfm?id=645984.675903|Metamorphic Testing of Programs on Partial Differential Equations: A Case Study]]