====== 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. 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 || [[http://maps.google.com/maps?q=DKRZ,+Bundesstra%C3%9Fe+45a,+20146+Hamburg&hl=de&cd=2&ei=BUxYS-GvKIuLOKaotbgJ&sig2=Kv8CBjHeXm8lAVC3XxRrIQ&ie=UTF8&view=map&cid=262423906154203330&ved=0CBsQpQY&hq=DKRZ,+Bundesstra%C3%9Fe+45a,+20146+Hamburg&hnear=&z=16&iwloc=A|DKRZ]], Raum 023 || || Zeit || Montag 16:15 - 17:45 || || Vorbesprechung || Montag 7.4.2014 16:15 || || Mailingliste || [[http://wr.informatik.uni-hamburg.de/listinfo/siw-14|SIW-14]] || ===== Dozenten ===== * [[People:Thomas Ludwig]] * [[People:Hermann Lenhart]] * [[People:Alumni:Julian Kunkel]] * [[http://swt-www.informatik.uni-hamburg.de/mitarbeiter/christian-hovy.html|Christian Hovy]] ===== Themenliste ===== ==== 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 und Materialien ===== hier die erste **Zuordnung der Termine**: * 12.5. *Best practices for scientific computing (Marc Grimpo) ((Hermann Lenhart)){{:teaching:sommersemester_2014:siw14-presentation_best_practices.pdf| Vortrag - Best Practice}} *SWE in CSE : Where's the real bottleneck in scientific computing? (Dominik Mellenthin)((Julian Kunkel)) * 19.5. * Model driven architecture (Theorie I) (Florian Stegen)((Julian Kunkel)) * Model driven architecture (Theorie II) (Wilhelm Stephan)((Julian Kunkel)) {{:teaching:sommersemester_2014:siw14-mda-praesentation.pdf| Vortrag - MDA II}} -- {{:teaching:sommersemester_2014:siw14-mda-ausarbeitung.pdf| Ausarbeitung - MDA II}} * 26.5. * ausgefallen * 02.06. * Personality types in software engineering (Peter Herner)((Hermann Lenhart)){{teaching:sommersemester_2014:siw14-personality_types_folien.pdf| Vortrag}} {{teaching:sommersemester_2014:siw14-herner-pt-handout.pdf| Handout zum Vortrag}}{{teaching:sommersemester_2014:siw14_pt-herner-arbeit.pdf| Ausarbeitung}} * Computer-aided software engineering (Theorie + Tools) (Wolfgang Schreiner)((Julian Kunkel)) * 16.06. * Wissenschaftlichen Anwendungen vs. CS Anwendungen (Hamad Mostafa)((Julian Kunkel))- ausgefallen !! * 23.06. * Agile Programmierung - Theorie I(Arne Brenneisen)((Christian Hovy))-- {{teaching:sommersemester_2014:siw2014_brenneisen_scrum_folien.pdf| Vortrag}} -- {{teaching:sommersemester_2014:siw2014_brenneisen_scrum_arbeit.pdf| Ausarbeitung}} * Thema:Agile Programmierung - Theorie II (Benjamin Pöpel)((Christian Hovy))-- {{teaching:sommersemester_2014:siw2014_poepel_agile_folien.pdf| Vortrag}} -- {{teaching:sommersemester_2014:siw2014_poepel_agile_arbeit.pdf| Ausarbeitung}} * 30.06. ** !!!! findet im Informatikum in Raum D-129 statt!!!** * Agile Programmierung in der Praxis (Tatyana Yotsova)((Christian Hovy)) -- {{teaching:sommersemester_2014:siw2014-tatyana_agile_praxix_vortrag.pdf| Vortrag}} -- {{:teaching:sommersemester_2014:siw2014_tatyana_agile_seminararbeit.pdf| Ausarbeitung}} * Verifikation und Validierung (Andreas Metzler)((Christian Hovy)) * 07.07 * Softwareplanung bzw. Entwicklung in der Praxis (Masi Aziz)((Hermann Lenhart))-- {{teaching:sommersemester_2014:siw14-aziz-siw_praxis-folien.pdf| Vortrag}} -- {{teaching:sommersemester_2014:siw14-aziz-siw_praxis-arbeit.pdf| Ausarbeitung}} * Wissenschaftlicher Programmierer in der Praxis (mit Interview) (Ralf Engelke)((Hermann Lenhart)) hier eine **Übersicht zum Material und der Zuordnung** zu dem Themen: * Thema: Wissenschaftlicher Programmierer * Aufgabenbereiche, * Ausbildung (mal gucken wo es das gibt), * Erfolge / wo finden die sich * Thema: Wissenschaftlicher Programmierer in der Praxis (Möglichkeit für Interview) **(Ralf Engelke)** * Thema:Personality types in software engineering (gibt da noch ein paar Folgeartikel dazu)**(Peter Herner)** * [[http://www.sciencedirect.com/science/article/pii/S1071581902001374|Personality Types]] * [[http://www.wiete.com.au/journals/GJEE/Publish/vol13no2/02J-Capretz-L-F.pdf|Personality Types of cuban software developers]] * Thema:Agile Programmierung (Theorie)**(Arne Brenneisen & Benjamin Pöpel)** * Übersicht über die Verfahren * SCRUM * Extreme programming * Thema: Agile Programmierung in der Praxis. **(Tatyana Yotsova)** * [[http://www.sciencedirect.com/science/article/pii/S0950584908000256|Empirical studies of agile software development:]] * [[http://dl.acm.org/citation.cfm?id=1985784|A literature review of agile practices and their effects in scientific software development]] * [[http://rsta.royalsocietypublishing.org/content/366/1878/3111.short|using agile programming techniques to develop computational biology software]] * Thema: Interdisziplinäre Kommunikation * [[http://link.springer.com/article/10.1007/s10664-005-3865-y|When Software Engineers Met Research Scientists: A Case Study]] * Thema: Wissenschaftlichen Anwendungen vs. CS Anwendungen **(Hamad Mostafa)** * Was sind die unterschiedlichen Anforderungen? * [[http://ceur-ws.org/Vol-922/paper6.pdf|Alternative Ansichten, was ist programmieren]] * Thema:Workflows der Wissenschaftler * [[http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=4721191&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D4721191|Software Design for Empowering Scientists]] * Thema: Best practices for scientific computing **(Marc Grimpo)** * [[http://dx.plos.org/ambra-doi-resolver/10.1371/journal.pbio.1001745|Best practices for scientific computing]] * Thema: Verifikation und Validierung** (Andreas Metzler)** * [[http://www.tandfonline.com/doi/abs/10.1080/0952813X.2012.695443#.UxHVzx9CgZU|A theory-driven testing methodology for developingscientific software]] * Thema: SWE in CSE **(Dominik Mellenthin)** * [[http://www.americanscientist.org/libraries/documents/200512511610_307.pdf|Where's the real bottleneck in scientific computing?]] * [[http://http://software.eng.ua.edu/reports/SERG-2012-05.pdf|The Relationship between Development Problems and Use of Software Engineering Practices in Computational Science & Engineering: A Survey]] * [[http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=4222616&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D4222616|Software Development Environments for Scientific and Engineering Software: A Series of Case Studies]] * Thema: Model driven architecture (Theorie) **(Florian Stegen & Wilhelm Stephan)** * [[http://crpit.com/confpapers/CRPITV148Schmidt.pdf|Teaching MDA:]] * Thema: Computer-aided software engineering (Theorie + Tools) **(Wolfgang Schreiner)** * [[http://www.sciencedirect.com/science/article/pii/S0167642311001869|CASE tools]] ===== Literaturhinweise ===== * [[http://de.wikipedia.org/wiki/Softwaretechnik|Softwaretechnik in der Wikipedia]] * Scientific Software Engineering in a Nutshell [[http://arxiv.org/abs/0905.1628|Online Dokument]] * Scientific Software Engineering - Basic techniques of creating practical scientific software [[http://www.ita.uni-heidelberg.de/~pmelchior/talks/software_engineering_150410.pdf|PDF Präsentation]] * gitworkflows (Man page) * Versionsmanagement Quellen: [[http://www.nyetwork.org/wiki/SRM.pdf|PDF]] [[http://www.doc.ic.ac.uk/~alw/doc/papers/spe0103.pdf|Paper]] * Release Management in Free Software Projects: Practices and Problems (Springer) * [[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.91.4861&rep=rep1&type=pdf|Quality Practices and Problems in Free Software Projects]] * [[http://cs.ua.edu/~SECSE08/Papers/Segal.pdf|Models of scientific software development]] * Lustige Anekdote [[http://www.kirit.com/Blog:/2007-12-15/Pseudo%20scientific%20Software%20Engineering|Pseudo scientific Software Engineering]] * Software Entwicklung - Kampf der Altlasten [[http://www.heise.de/newsticker/meldung/Software-Entwicklung-Kampf-den-Altlasten-28106.html|HTML]] * [[http://www.amazon.de/Accuracy-Reliability-Scientific-Computing-Environments/dp/0898715849/|Accuracy and Reliability in Scientific Computing]] * Report from the Second International Workshop on Software Engineering for Computational Science and Engineering (SE-CSE 09) * [[http://www.cse.msstate.edu/~carver/Papers/SEN_32_5.pdf|Post-Workshop report for the Third International Workshop on Software Engineering for High Performance Computing Applications (SE-HPC 07)]] * [[http://www.citeulike.org/user/pipitone/article/1926401|A Software Chasm: Software Engineering and Scientific Computing]] * [[http://ls11-www.cs.uni-dortmund.de/lehre/AE/AlgEng_Intro.pdf|Algorithm Engineering]] * [[http://www.youtube.com/watch?v=_gZK0tW8EhQ|Debugging Code from 60 Million Miles Away]]