====== Proseminar „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 Softwareentwicklungswerkzeuge 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 Proseminar eignet sich für Studierende im Bachelortudiengängen mit Bezug zur Informatik sowie als Seminar im 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 034 || || Zeit || Montag 14:15 - 15:45 || || Vorbesprechung || Montag 01.04.2019 14:15 || || Mailingliste || [[https://wr.informatik.uni-hamburg.de/listinfo/siw-19|SIW-19]] || ===== Dozenten ===== * [[People:Alumni:Christian Hovy]] (Ansprechpartner) * [[People:Hermann Lenhart]] * [[People:Jannek Squar]] * [[People:Externals:Jakob Lüttgau]] * [[https://www.mi.uni-hamburg.de/arbeitsgruppen/atmosphaerenmessungen/personen/tobias-finn.html|Tobias Sebastian Finn (MI)]] ==== Theorie ==== Vertiefende Vorträge zu Einzelaspekten der Softwareentwicklung in der Wissenschaft, z.B: * Modellierung und Simulation * Leistungsanalyse und Effizienz * Auswahl der Numerik und Algorithmen * Algorithm 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 * Solution Verification & Fehlerquellen * Software Engineering * ... ==== 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 ===== Bei einem allgemeinen Einführungstermin werden Grundlagen vermittelt und die Themen zugewiesen. Nach der Festlegung der Themen soll der Inhalt mit dem jeweiligen Betreuer diskutiert werden. * 01.04. Einführung {{teaching:sommersemester_2019:ss19_siw19-intro.pdf|Intro Softwareentwicklung in der Wissenschaft}} * 08.04. * 15.04. * 29.04. * 06.05. * 13.05. "Latex" Finn Roggatz ((Hermann Lenhart)), "BibTex" Luka Neumann ((Hermann Lenhart)) * 20.05. "Python" Luka Zdravkovic ((Christian Hovy)) ;"Jupyter Notebook" Thorwin Vogt ((Jakob Lüttgau)); * 27.05. "GIT" Tom Albrecht ((Hermann Lenhart)); "Fortran" Oweiss Momenzada ((Christian Hovy)) * 03.06. "Cloud Computing Block" Nils Heinsohn ((Jannek Squar)); Leon Meyer ((Jannek Squar)); * 17.06. "MPI" Ellis Steinbiss ((Jannek Squar)); "OpenMP" Pascal Höse ((Christian Hovy)) * 24.06. **(Raum 023)** "Machine Learning Block I" , Emre Armagan ((Jakob Lüttgau)) * 01.07. "Doxygen/Sphinx" Jessica Panten ((Tobias Finn)) * 08.07. "Machine Learning Block II" , Anja Steusloff ((Jakob Lüttgau)) ===== Themen und Materialien ===== Themen zu einzelnen Werkzeugen der SiW: * Arbeit mit Editoren (z.B. Eclipse) * Programmiersprachen (z.B. FORTRAN, Python) * Parallelisierung MPI oder Open MP * Progammübersicht und Doku (z.B. Doxygen, Sphinx) * Versionsverwaltung mit GIT * LaTex und Bibtex für wissenschaftliche Paper * Jupyter Notebook * ... Weitere Themenbereiche: * Versionskontrolle – Continuous Integration * Testing * Buildserver * DSL * Cloud Computing (in Bezug auf Portabilität) * Machine Learning (einmal Grundlagen und Anwendungen in Geowissenschaften)