====== 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-1819|CP-1819]] || ===== Dozenten ===== * [[People:Alumni:Michael Kuhn]] (Ansprechpartner) * [[People:Alumni:Eugen Betke]] * [[People:Alumni:Nathanael Hübbe]] * [[People:Jannek Squar]] * [[People:Externals:Jakob Lüttgau]] ===== Zeitplan ===== * 15.10. **Fällt aus** * 22.10. Einführung ((Michael Kuhn)) {{:teaching:wintersemester_2018_2019:cp-1819-einfuehrung.pdf|Folien}} * 29.10. Syntax und Kontrollstrukturen ((Jakob Lüttgau)) {{ :teaching:wintersemester_2018_2019:cp-1819-syntax-control.pdf | Folien}} {{ :teaching:wintersemester_2018_2019:cp-1819-uebungsblatt-01.pdf | Übungsblatt}} * 05.11. Debugging ((Jannek Squar)) {{teaching:wintersemester_2018_2019:cp-1819-03_Debugging.pdf|Folien}} {{teaching:wintersemester_2018_2019:cp-1819-03_Debugging_exercise.pdf|Übungsblatt}} {{teaching:wintersemester_2018_2019:cp-1819-Material_Blatt02.tar.gz|Übungsmaterial}} * 12.11. Arrays und Datenstrukturen ((Michael Kuhn)) {{:teaching:wintersemester_2018_2019:cp-1819-array-struct.pdf|Folien}} {{:teaching:wintersemester_2018_2019:cp-1819-uebungsblatt-03.pdf|Übungsblatt}} * 19.11. Zeiger, Zeigerarithmetik ((Eugen Betke)) * 26.11. Zeigerarithmetik, Funktionszeiger ((Nathanael Hübbe)) {{ :teaching:wintersemester_2018_2019:cp-1819-06_pointer_advanced.pdf | Folien}} {{ :teaching:wintersemester_2018_2019:cp-1819-06_pointer_advanced_examples.tgz | Beispielcode}} {{ :teaching:wintersemester_2018_2019:cp-1819-06_pointer_advanced_exercise.pdf | Übungsblatt}} {{ :teaching:wintersemester_2018_2019:cp-1819-06_pointer_advanced_material.tgz | Übungsmaterial}} * 03.12. **(Raum 023)** Speicher (Stack und Heap) ((Eugen Betke)) * 10.12. Valgrind ((Jannek Squar)) {{:teaching:wintersemester_2018_2019:cp-1819-08_valgrind.pdf|Folien}} {{ :teaching:wintersemester_2018_2019:cp-1819-uebungsblatt_08_valgrind.pdf | Übungsblatt}} {{ :teaching:wintersemester_2018_2019:cp-1819-uebungen_valgrind.tar.gz| Übungsmaterial}} * 17.12. Undefiniertes Verhalten ((Nathanael Hübbe)) {{ :teaching:wintersemester_2018_2019:cp-1819-09_undefined_behavior.pdf | Folien }} {{ :teaching:wintersemester_2018_2019:cp-1819-09_undefined_behavior_examples.tgz | Beispielcode }} {{ :teaching:wintersemester_2018_2019:cp-1819-09_undefined_behavior_exercise.pdf.pdf | Übungsblatt }} {{ :teaching:wintersemester_2018_2019:cp-1819-03_undefined_behavior_material.tgz | Übungsmaterial }} * 07.01. Kompilieren, Linken, Präprozessor ((Jakob Lüttgau)) {{ :teaching:wintersemester_2018_2019:cp-1819-compiling-and-linking.pdf | Folien }} {{ :teaching:wintersemester_2018_2019:cp-1819-compiling-and-linking-exercise.pdf | Übungsblatt}} * 14.01. Bibliotheken, Header, Modularität (rpath) ((Jannek Squar)) {{ :teaching:wintersemester_2018_2019:cp-1819-modularitaet.pdf | Folien }} {{ :teaching:wintersemester_2018_2019:cp-1819-modularitaet-exercise.pdf | Übungsblatt}} {{teaching:wintersemester_2018_2019:cp-1819-modularitaet-material.tar.gz|Übungsmaterial}} * 21.01. Objektorientierung ((Eugen Betke)) * 28.01. Modernes C ((Michael Kuhn)) {{:teaching:wintersemester_2018_2019:cp-1819-modernc.pdf|Folien}} {{:teaching:wintersemester_2018_2019:cp-1819-uebungsblatt-12.pdf|Übungsblatt}} {{:teaching:wintersemester_2018_2019:cp-1819-uebungsblatt-12-material.tar.gz|Übungsmaterial}} * Abgabe: 03.03., 23:59 ===== 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)