====== Praktikum „C-Programmierung“ ====== ===== Beschreibung ===== In diesem Praktikum werden wir grundlegende und weiterführende Themen der C-Programmierung behandeln. So werden unter anderem die generelle Struktur von C-Programmen, die Speicherverwaltung, Zeiger und weitere Konzepte erlernt. Wir beschäftigen uns außerdem mit der Leistungsanalyse und dem Debugging von C-Anwendungen. Die Veranstaltung ist sehr praktisch angelegt und es wird ausreichend Gelegenheit geben, die erworbenen Kenntnisse selbst umzusetzen. Beachten Sie auch unsere allgemeinen organisatorischen [[:teaching:organisatorische_hinweise:praktikum|Hinweise zu Praktika]]. ===== Zielgruppe ===== Das Praktikum 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. Die Veranstaltung kann parallel zur [[hochleistungsrechnen]] belegt werden, um weiterführende C-Kenntnisse zu erwerben oder diese aufzufrischen. ===== Daten der Veranstaltung ===== || Zeit || Montag, 12--14 Uhr || || Ort || [[https://www.uni-hamburg.de/onTEAM/campus/index.html?loc=i12340438|DKRZ]], Raum 034 || || Mailingliste || [[https://wr.informatik.uni-hamburg.de/listinfo/cp-1920|CP-1920]] || ===== Dozenten ===== * [[People:Alumni:Michael Kuhn]] (Ansprechpartner) * [[People:Alumni:Eugen Betke]] * [[People:Jannek Squar]] * [[people:alumni:nathanael_huebbe]] ===== Zeitplan ===== * 14.10. **Fällt aus** * 21.10. Einführung ((Michael Kuhn)) {{:teaching:wintersemester_2019_2020:cp-1920-einfuehrung.pdf|Folien}}{{:teaching:wintersemester_2019_2020:cp-1920_exercise-01_einfuehrung.pdf|Übungsblatt 01}} * 28.10. Syntax und Kontrollstrukturen ((Jannek Squar)) {{:teaching:wintersemester_2019_2020:cp-1920_slides-02_syntax-and-control-flow.pdf|Folien}} {{:teaching:wintersemester_2019_2020:cp-1920_exercise-02_syntax-and-control-flow.pdf|Übungsblatt 02}} {{:teaching:wintersemester_2019_2020:cp-1920_uebungsmaterial-02_syntax-and-control-flow.tar.gz|Übungsmaterial 02}} * 04.11. Arrays und Datenstrukturen ((Michael Kuhn)) {{:teaching:wintersemester_2019_2020:cp-1920-arraystruct.pdf|Folien}} {{:teaching:wintersemester_2019_2020:cp-1920-exercise-03-arraystruct.pdf|Übungsblatt 3}} {{:teaching:wintersemester_2019_2020:cp-1920-exercise-03-materialien.tar.gz|Materialien}} * 11.11. Speicher (Stack und Heap) ((Eugen Betke)) {{ :teaching:wintersemester_2019_2020:cp-1920-memory.pdf |Folien}} {{ :teaching:wintersemester_2019_2020:cp-1920-exercise-04-memory.pdf |Übungsblatt 4}} * 18.11. Zeiger, Zeigerarithmetik ((Nathanael Hübbe)) {{ :teaching:wintersemester_2019_2020:cp-1920-pointer-slides.pdf | Folien}} {{ :teaching:wintersemester_2019_2020:cp-1920-pointer-examplecode.tgz | Beispielcode}} {{ :teaching:wintersemester_2019_2020:cp-1920-pointer-exercise.pdf | Übungsblatt 5}} {{ :teaching:wintersemester_2019_2020:cp-1920-pointer-materialien.tgz | Materialien}} * 25.11. Debugging und Valgrind ((Jannek Squar)) {{ teaching:wintersemester_2019_2020:cp-1920_06_debugging_and_valgrind_slides.pdf |Folien}} {{ teaching:wintersemester_2019_2020:cp-1920_06_debugging_and_valgrind_exercise.pdf | Übungsblatt 6}} {{ teaching:wintersemester_2019_2020:cp-1920_06_debugging_and_valgrind_uebungsmaterial.tar.gz | Materialien}} * 02.12. Zeigerarithmetik, Funktionszeiger ((Nathanael Hübbe)) {{ :teaching:wintersemester_2019_2020:cp-1920-pointer-advanced.pdf | Folien}} {{ :teaching:wintersemester_2019_2020:cp-1920-poinder-advanced-examplecode.tgz | Beispielcode}} {{ :teaching:wintersemester_2019_2020:cp-1920-pointer-advanced-exercise.pdf | Übungsblatt 7}} {{ :teaching:wintersemester_2019_2020:cp-1920-pointer-advanced-materialien.tgz | Materialien}} * 09.12. Undefiniertes Verhalten ((Nathanael Hübbe)) {{ :teaching:wintersemester_2019_2020:cp-1920-undefined_behavior.pdf | Folien}} {{ :teaching:wintersemester_2019_2020:cp-1920-undefined_behavior-exercise.pdf | Übungsblatt 8}} {{ :teaching:wintersemester_2019_2020:cp-1920-undefined_behavior-materialien.tgz | Materialien}} * 16.12. Kompilieren, Linken, Präprozessor ((Jakob Lüttgau)) {{ :teaching:wintersemester_2019_2020:cp-1920-compiling-and-linking.pdf | Folien}} {{ :teaching:wintersemester_2019_2020:cp-1920-exercise-09-compiler.pdf | Übungsblatt 9}} * 06.01. Bibliotheken, Header, Modularität (rpath) ((Jannek Squar)) {{ :teaching:wintersemester_2019_2020:cp-1920-modularitaet.pdf |Folien}} {{ :teaching:wintersemester_2019_2020:cp-1920-modularitaet-exercise.pdf | Übungsblatt 10}} {{ :teaching:wintersemester_2019_2020:cp-1920-modularitaet-uebungsmaterial.tar.gz |Übungsmaterial}} * 13.01. Ein-/Ausgabe ((Michael Kuhn)) {{:teaching:wintersemester_2019_2020:cp-1920-ea.pdf|Folien}} {{:teaching:wintersemester_2019_2020:cp-1920-uebungsblatt-11.pdf|Übungsblatt 11}} {{:teaching:wintersemester_2019_2020:cp-1920-uebungsblatt-11-materialien.tar.gz|Materialien}} * 20.01. Modernes C ((Michael Kuhn)) {{:teaching:wintersemester_2019_2020:cp-1920-modernes-c.pdf|Folien}} {{:teaching:wintersemester_2019_2020:cp-1920-uebungsblatt-12.pdf|Übungsblatt 12}} {{:teaching:wintersemester_2019_2020:cp-1920-uebungsblatt-12-materialien.tar.gz|Materialien}} * 27.01. Linux-Konzepte ((Michael Kuhn)) ===== Literaturhinweise ===== * http://icube-icps.unistra.fr/img_auth.php/d/db/ModernC.pdf * https://wiki.sei.cmu.edu/confluence/display/c/SEI+CERT+C+Coding+Standard * https://en.cppreference.com/w/c * http://www.cplusplus.com/reference/clibrary/ (auf den Unterschied C/C++ achten)