====== 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.
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.
===== Materialien =====
* Einführung wissenschaftliches Arbeiten {{teaching:sommersemester_2021:siw21-intro-wiss-arbeiten.pdf|Einführungs wiss. Arbeiten}}
* Übersicht zum Pro-Seminar {{teaching:sommersemester_2021:siw21-intro.pdf|Einführungs-Vortrag}}
* OBS
* Tutorial-Video zur Verwendung von OBS: [[https://cloud.wr.informatik.uni-hamburg.de/s/YsrifsxF4RpbA79|Video]]
* UHH-Anleitungen zur Verwendung von OBS: [[https://www.uni-hamburg.de/elearning/werkzeuge/autorenwerkzeuge/obs-studio.html|Deutsch]] [[https://www.uni-hamburg.de/elearning/werkzeuge/autorenwerkzeuge/obs-studio/bilder/obs-fiona.pdf|English]]
===== Daten der Veranstaltung =====
|| Zeit || Montag 14:15 - 15:45 ||
|| Ort || Zoom 982 3837 5129 ||
|| Vorbesprechung || 12.04.2021 ||
|| Mailingliste || [[https://wr.informatik.uni-hamburg.de/listinfo/siw-21|SIW-21]] ||
===== Dozenten =====
* [[People:Hermann Lenhart]]
* [[People:Jannek Squar]]
* [[People:Georgiana Mania]]
* [[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
* ...
===== 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.
{{teaching:sommersemester_2021:siw21-intro.pdf|SiW Einführungs-Vortrag}}
* Mo, 12. Apr. 2021 Vorbesprechung und Themenverteilung
* Mo, 19. Apr. 2021 Besprechung
* Mo, 26. Apr. 2021 fällt aus
* Mo, 3. Mai 2021 fällt aus
* Mo, 10. Mai 2021
* LaTeX + BibTex ([[https://latex.tugraz.at/latex/tutorial|Quelle1]],[[https://www.economics.utoronto.ca/osborne/latex/BIBTEX.HTM|Quelle2]]) ((Hermann Lenhart)) -- Yannik Stahl {{teaching:sommersemester_2021:siw-2021-latex_bib_tex_stahl.pdf|Vortrag}},{{teaching:sommersemester_2021:siw-21latex_und_bibtex_stahl_ausarbeitung-neu.pdf|Ausarbeitung}}
* Eclipse ([[https://www.tutorialspoint.com/eclipse/index.htm|Quelle1]],[[https://javatutorial.net/java-eclipse-tutorial|Quelle2]]) ((Hermann Lenhart)) -- Wjatcheslaw Sander {{teaching:sommersemester_2021:siw-2021-proseminar_eclipse_wjatcheslaw_sander_final.pdf|Vortrag}},{{teaching:sommersemester_2021:siw-21_eclipse_sander_ausarbeitung_final.pdf|Ausarbeitung}}
* Atom ([[https://flight-manual.atom.io/getting-started/sections/why-atom/|Quelle]]) ((Jannek Squar)) -- Kai Metzing
* Mo, 17. Mai 2021
* Cloud Computing (//English//) ([[https://www.zdnet.com/article/what-is-cloud-computing-everything-you-need-to-know-from-public-and-private-cloud-to-software-as-a/|Quelle1]],[[https://docs.microsoft.com/en-us/learn/modules/cmu-analytics-engines-mapreduce|Quelle2]],[[https://hadoop.apache.org/docs/r1.2.1/mapred_tutorial.html|Quelle3]]) ((Georgiana Mania)) -- Ole Methler {{teaching:sommersemester_2021:siw-21-cloud_computing-methler.pdf|Vortrag}},{{teaching:sommersemester_2021:siw-cloud_computing_ole_methler.pdf|Ausarbeitung}}
* Sphinx ((Jakob Lüttgau)) -- Melissa Dincer
* VM ([[https://www.thomas-krenn.com/de/wiki/Virsh_-_Kommandozeilenwerkzeug_zur_Verwaltung_virtueller_Maschinen|virsh]]) ((Jannek Squar)) -- Jonah Schneider
* Mo, 31. Mai 2021
* Python ((Jakob Lüttgau)) -- Leon Zander {{teaching:sommersemester_2021:siw-21-python-zander.pdf|Vortrag}}
* Python Visualisierungen (//English//) ([[https://towardsdatascience.com/matplotlib-tutorial-learn-basics-of-pythons-powerful-plotting-library-b5d1b8f67596|Quelle1]],[[https://matplotlib.org/stable/tutorials/index.html|Quelle2]]) ((Georgiana Mania))((Jakob Lüttgau)) -- Milad Asgarzand
* Mo, 7. Jun. 2021
* FORTRAN ([[https://de.wikibooks.org/wiki/Fortran|Quelle1]],[[http://gcc.gnu.org/onlinedocs/gfortran/|Quelle2]]) ((Hermann Lenhart)) -- Carlotta Williams Lopez {{teaching:sommersemester_2021:siw-21-fortran-addition.pdf|Vortrag}}, {{teaching:sommersemester_2021:siw-21-fortran-lopez-final.pdf|Ausarbeitung}}
* MPI Datentypen ([[http://wgropp.cs.illinois.edu/courses/cs598-s16/lectures/lecture27a.pdf|Quelle1]],[[https://pages.tacc.utexas.edu/~eijkhout/pcse/html/mpi-data.html|Quelle2]]) ((Hermann Lenhart)) -- Antonina Braun {{teaching:sommersemester_2021:siw-21-mpi-datentypen-braun.pdf|Vortrag}}, {{teaching:sommersemester_2021:siw-21-bericht_braun_mpi-datentypen_final.pdf|Ausarbeitung}}
* Buildserver – Continuous Integration ([[https://www.infoworld.com/article/3271126/what-is-cicd-continuous-integration-and-continuous-delivery-explained.html|Quelle]]) ((Jannek Squar)) -- Moritz Junge
* Mo, 14. Jun. 2021
* Git ([[https://guides.github.com/introduction/git-handbook/|Quelle1]],[[https://product.hubspot.com/blog/git-and-github-tutorial-for-beginners|Quelle2]]) ((Hermann Lenhart)) -- Rana Mostafa - {{teaching:sommersemester_2021:siw-21_git_rana_mostafa.pdf|Vortrag}},{{teaching:sommersemester_2021:siw-21-mostafa-git-final.pdf|Ausarbeitung}}
* Github ((Hermann Lenhart))((Jannek Squar)) -- Niklas Tyrakowski {{ :teaching:sommersemester_2021:siw-21_github_tyrakowski.pdf |Folien}},{{teaching:sommersemester_2021:siw-21-githubhausarbeit_tyra.pdf|Ausarbeitung}}
* Spack ([[https://spack.io/|Quelle]]) ((Jannek Squar)) -- Julia Gießmann
* Mo, 21. Jun. 2021
* ML: Unsupervised/self-supervised Deep-Learning ([[https://www.forbes.com/sites/robtoews/2020/10/12/the-next-generation-of-artificial-intelligence/?sh=2ceabb7b59eb|Quelle1]],[[https://de.wikipedia.org/wiki/Selbst%C3%BCberwachtes_Lernen|Quelle2]]) ((Tobias Finn))((Jakob Lüttgau)) -- Jennifer Heizenreider - {{teaching:sommersemester_2021:siw-21-deep_learning-heizenreider.pdf|Vortrag}},{{teaching:sommersemester_2021:siw-21_jennifer-ml.pdf|Ausarbeitung}}
* ML: Deep Learning in Wissenschaft ([[https://www.nature.com/articles/s41586-018-0438-y|Quelle1]],[[https://www.nature.com/articles/s41586-019-1582-8|Quelle2]]) ((Tobias Finn))((Jakob Lüttgau)) -- Jona Zantz - {{teaching:sommersemester_2021:siw-21-zantz_deep_learning_in_wissenschaft.pdf|Vortrag}},{{teaching:sommersemester_2021:siw-21-zantz_deep-learning-wissenschaft_ausarbeitung.pdf|Ausarbeitung}}
* Mo, 28. Jun. 2021
* ML: Natural Language Processing ([[https://en.wikipedia.org/wiki/GPT-3|Quelle1]],[[https://arxiv.org/abs/1706.03762|Quelle2]]) ((Tobias Finn))((Jakob Lüttgau)) -- Anton Caesar - {{teaching:sommersemester_2021:siw-21-nlp_anton_caesar.pdf|Vortrag}},{{teaching:sommersemester_2021:siw-21-caesar-natural-language-processing.pdf|Ausarbeitung}}
* ML: Einführung GAN ([[https://arxiv.org/abs/1406.2661|Quelle]]) ((Tobias Finn))((Jakob Lüttgau)) -- Lena Jacobs
* ML: GAN in der Wissenschaft ([[https://arxiv.org/abs/2002.07579|Quelle1]],[[https://arxiv.org/abs/1702.00403|Quelle2]]) ((Tobias Finn))((Jakob Lüttgau)) -- Ralf Wedemann - {{teaching:sommersemester_2021:siw-21-gan_in_der_wissenschaft_wedemann.pdf|Vortrag}},{{teaching:sommersemester_2021:siw-21_ralf-ml.pdf|Ausarbeitung}}
* Mo, 5. Jul. 2021
* ML: Probabilistic Programming ([[https://jmlr.csail.mit.edu/papers/v20/18-403.html|Quelle]]) ((Tobias Finn))((Jakob Lüttgau)) -- Aya Mahmoud
* ML: Variational Autoencoder ([[https://arxiv.org/abs/1312.6114|Quelle1]],[[https://arxiv.org/abs/1606.05908|Quelle2]]) ((Tobias Finn))((Jakob Lüttgau)) -- Cindy Phung - {{teaching:sommersemester_2021:siw-21-variationalautoencoder_cindyphung.pdf|Vortrag}},{{teaching:sommersemester_2021:siw-21-variational_autoencoder-cindy.pdf|Ausarbeitung}}
* Jupyter Notebook ([[https://www.ionos.de/digitalguide/websites/web-entwicklung/jupyter-notebook/|Quelle1]],[[https://www.codecademy.com/articles/how-to-use-jupyter-notebooks|Quelle2]]) ((Jakob Lüttgau)) -- Louis Rucks
===== Noch offene Themen =====
* Progammübersicht und Doku mit Doxygen ([[https://en.wikipedia.org/wiki/Doxygen|Quelle1]]) ([[https://www2.informatik.hu-berlin.de/swt/projekt98/werkzeuge/doxygen/Doxygen.html|Quelle2]])((Hermann Lenhart))
* OpenMP Tasks ([[https://www.openmp.org//wp-content/uploads/sc13.tasking.ruud.pdf|Quelle]]) ((Jannek Squar))
* Einseitige MPI-Kommunikation ([[http://htor.inf.ethz.ch/publications/img/mpi3-rma-overview-and-model.pdf|Paper]]) ((Hermann Lenhart)) ((Jannek Squar))
* OpenMP Offloading (//English//) ([[https://www.openmp.org//wp-content/uploads/openmp-examples-4.5.0.pdf|Quelle1]]), ([[https://mitpress.mit.edu/books/using-openmp-next-step|Quelle2]], [[http://www.math.umassd.edu/~anarayan/eas520/pdfs/openmp-intro.pdf|Quelle3]], [[http://www.math.umassd.edu/~anarayan/eas520/pdfs/openmp-2.pdf|Quelle4]]) ((Georgiana Mania))
* DSL (//English//) ([[https://martinfowler.com/books/dsl.html|Quelle]]) ((Georgiana Mania))
* Tracing-Toolchain ([[https://www.cs.uoregon.edu/research/tau/home.php|Tau]]/[[https://www.vi-hps.org/projects/score-p/|Scorep]]/) ((Jannek Squar))
* Tracing-Toolchain ([[https://vampir.eu/|Vampir]]/[[https://apps.fz-juelich.de/scalasca/releases/scalasca/2.3/docs/UserGuide.pdf|Scalasca]]) ((Jannek Squar))
* Containers (Singularity) (//English//) ([[https://sylabs.io/guides/3.0/user-guide/quick_start.html|Quelle]]) ((Georgiana Mania))
* ML: JAX ([[https://github.com/google/jax|Quelle]]) ((Tobias Finn))((Jakob Lüttgau))