====== Proseminar „Effiziente Programmierung“ ======
===== Beschreibung =====
In diesem Proseminar geht es um die effiziente Programmierung im weiteren Sinne.
Dazu gehören sowohl die eigentliche Entwicklung und das Debugging aber auch der Energieverbrauch und die Laufzeit des Programms.
Dabei sollen Informationen zu den verschiedenen Themen recherchiert werden und anhand von konkreten Beispielen dargestellt werden.
Es können auch die Ergebnisse kleiner vergleichender Untersuchungen zur Auswirkung verschiedener Konstrukte und Methoden gezeigt werden.
Beachten Sie auch unsere allgemeinen organisatorischen [[:teaching:organisatorische_hinweise:seminar_proseminar#proseminare|Hinweise zu Proseminaren]].
===== Zielgruppe =====
Das Projekt eignet sich für Studierende der Informatik in den Diplom- und Bachelorstudiengängen.
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 =====
|| Zeit || Donnerstag, 10--12 Uhr ||
|| Ort || [[https://www.uni-hamburg.de/onTEAM/campus/index.html?loc=i12340438|DKRZ]], Raum 034 ||
|| Mailingliste || [[https://wr.informatik.uni-hamburg.de/listinfo/ep-18|EP-18]] ||
===== Dozenten =====
* [[People:Alumni:Michael Kuhn]] (Ansprechpartner)
* [[People:Jannek Squar]]
* [[People:Alumni:Nabeeh Jumah]]
* [[People:Externals:Anastasiia Novikova]]
===== Themen =====
* Build-Systeme ((Michael Kuhn))
* Vektorisierung ((Michael Kuhn))
* Impact of volatile variables on performance ((Nabeeh Jumah))
* Ein-/Ausgabe ((Michael Kuhn))
===== 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.
* 05.04. Einführung
* 12.04. **(Raum 023)** Rechnerraumführung
* 19.04. Fällt aus
* 26.04.
* Compiler ((Anastasiia Novikova))
* Typisierung -- Thomas Schnieders {{:teaching:sommersemester_2018:ep-18-schnieders-typisierung-praesentation.pdf|Folien}} {{:teaching:sommersemester_2018:ep-18-schnieders-typisierung-ausarbeitung.pdf|Ausarbeitung}} ((Michael Kuhn))
* 03.05.
* Speicherverwaltung ((Nabeeh Jumah))
* Debugging ((Nabeeh Jumah))
* 17.05.
* Valgrind -- Niclas Schroeter {{:teaching:sommersemester_2018:ep-18-schroeter-valgrind-praesentation.pdf|Folien}} ((Michael Kuhn))
* Statische Analyse ((Jannek Squar))
* 31.05.
* Compiler-Optimierungen -- Leon Ahmadi-Moghaddam {{:teaching:sommersemester_2018:ep-18-ahmadileon-compileroptimierung-präsentation.pdf|Folien}} ((Jannek Squar))
* Tests -- Harald Mechelke ((Nabeeh Jumah))
* 07.06.
* Kompression -- Marvin Ahmadi-Moghaddam {{ :teaching:sommersemester_2018:ep-18_-_ahmadi-moghaddam_-_kompression_-_praesentation.pdf |Folien}}((Anastasiia Novikova))
* 14.06.
* Scripting -- Tom Schmolzi ((Michael Kuhn))
* Mixed-Language-Programming -- Polina Rajko {{:teaching:sommersemester_2018:ep18-raiko_mixed-language-programming.pdf|Folien}} ((Jannek Squar))
* Datenreduktion ((Anastasiia Novikova))
* 21.06. **(Raum 023)**
* Modularität -- Levi Bautz {{:teaching:sommersemester_2018:ep-18-bautz-modularitaet.pdf|Folien}} ((Jannek Squar))
* Energieeffizienz ((Michael Kuhn))
* 28.06. (**fällt aus**)
* Visualisierung ((Anastasiia Novikova))
* 05.07. (**fällt aus**)
* Performance counters and profiling tools ((Nabeeh Jumah))
* 12.07.
* Cache usage/blocking -- Kevin Friedrich ((Nabeeh Jumah))
* Performance-Analyse mit dem Roofline Model ((Jannek Squar))
===== Literaturhinweise =====
* [[https://www.osti.gov/servlets/purl/963540|Roofline-Model-Paper]]
* Ein-/Ausgabe
* https://medium.com/hungys-blog/unix-programming-standard-io-librar-f59f46a1b364
* http://www.nersc.gov/users/training/online-tutorials/introduction-to-scientific-i-o/