====== Einführung in die Programmierung (Wintersemester 2020/21) ====== === Exportvorlesung Einführung in die Programmierung (für ET/IT, IKT, Physik, WiMa) === * Veranstalter: [[https://ls11-www.cs.tu-dortmund.de/staff/kalkreuth|M.Sc. Roman Kalkreuth]] * Vorlesung (4 SWS) + [[:teaching:ep2021uebung|Übung (2 SWS)]] + [[teaching/ep2021sopra|Praktikum (4 SWS)]] * Aufgrund der Corona-Pandemie wird diese Lehrveranstaltung in größeren Teilen online stattfinden. * Die Vorlesungen werden im [[https://www.youtube.com/channel/UCCUnZpv71GlsvPGJn1Ghh2w?view_as=subscriber|YouTube-Kanal des Dozenten]] bereitgestellt. === Klausur 24.03.2021 === * Die Anwesenheitkontrolle fängt um 8:15 Uhr an * Der offizielle Klausurbeginn ist um 9:10 Uhr * Die Klausur wird am Vorabend hier zum Download bereitgestellt * Raumzuteilung und Handreichung werden morgen auf der Webseite eingestellt. **Dokumente** * {{ :teaching:eidp_ws2021:eidesstattliche_versicherung.pdf |Eidesstattliche Versicherung}} * {{ :teaching:eidp_ws2021:mitschrift_unter_vorbehalt.pdf |Mitschrift unter Vorbehalt}} === Klausur 17.02.2021 === **__Ergebnisse und Klausureinsicht__** **Die Ergebnisse sind in BOSS eingetragen! (Stand 14.03.2021)** Die Klausureinsicht wird am Mittwoch und Donnerstag (17.3 und 18.3.) in digitaler Form stattfinden. Am Mittwoch werden die Lösungsbogen nach vorheriger Anmeldung per E-Mail versendet. Am Donnerstag können über Zoom Fragen geklärt werden. Die Anmeldung zur Klausureinsicht läuft über das System [[https://ess.cs.tu-dortmund.de/ASSESS/ |AsSESS]] und wird am Montag (15.03.) um 12:00 Uhr freigeschaltet. Bitte registrieren sie sich in [[https://ess.cs.tu-dortmund.de/ASSESS/?do=exerciselist&lectureid=412 |AsSESS]], wenn Sie an der Klausureinsicht teilnehmen wollen! Melden Sie sich in AsSESS für die Veranstaltung **Klausureinsichtnahme 18.03.2021** an. Die Anmeldefrist endet am Mittwoch (17.03.) um 09:00 Uhr. {{ :teaching:eidp_ws2021:vorlesung:notenschluessel-eidp-20200205.pdf | Notenschlüssel}} **Dokumente** * {{ :teaching:eidp_ws2021:eidesstattliche_versicherung.pdf |Eidesstattliche Versicherung}} * {{ :teaching:eidp_ws2021:mitschrift_unter_vorbehalt.pdf |Mitschrift unter Vorbehalt}} * {{ :teaching:eidp_ws2021:vorlesung:handreichung.pdf |Handreichung}} (**Update 16.02.**) * {{ :teaching:eidp_ws2021:raumliste.ods |Raumtzuteilung.ods}} * {{ :teaching:raumliste.xlsx |Raumtzuteilung.xlsx}} === Help-Desk === ^ Tag ^ Uhrzeit ^ Link zum Matrix Chat | Mittwoch| 14-16 Uhr| [[https://lehros.cs.tu-dortmund.de/b/aar-zhy-apm]] | | Freitag| 12-14 **14-16** Uhr | ::: | === Klausur === **Die Klausuren werden in digitaler Form stattfinden.** **Termine:** * **17.02.2021 13:00-16:00 Uhr * **24.03.2021 09:00-12:00 Uhr **Zulassungsvoraussetzungen:** * Erfolgreiche Teilnahme an den Übungen (1 Jahr Gültigkeit) * Erfolgreiche Teilnahme am Praktikum (unbegrenzte Gültigkeit) **Hinweis:** Manche Prüfungsordnungen lassen eine Zulassung zur Klausur ohne Teilnahme am Praktikum zu. Allerdings werden dann beim Bestehen der Klausur **weniger** Leistungspunkte erreicht. Prüfen Sie dazu bitte die genauen Voraussetzungen bzw. Gegebenheiten in Ihrer Prüfungsordnung. === Termine === **Die Vorlesung wird aufgrund der Home-Office Situation vorerst live über Zoom stattfinden. Die Vorlesungseinheiten werden aufgezeichnet und danach auf dem YouTube Kanal bereitgestellt.** * **Meeting-ID: 934 5242 5931 Kenncode: 368320** ^ Tag ^ Uhrzeit ^ Platform ^ | Dienstag| 12:15 - 13:45 | [[https://tu-dortmund.zoom.us/j/93452425931?pwd=Z3NnVDc3OUZEY01DVGt4Q0M0L2FVZz09|Zoom]] | | Donnerstag|14:15 - 15:45| ::: | === Vorlesungsfolien === Die Folien werden regelmäßig hier zum Download bereitgestellt, damit sie ausgedruckt und während der Vorlesung mit Notizen versehen werden können. ^ Nr. ^ Thema ^ Download ^ Aktualisierungen ^ Code ^ | 0. | Organisatorisches | {{:teaching:eidp_ws2021:vorlesung:kap00.pdf |PDF}} | | | | 1. | Einleitung | {{:teaching:eidp_ws2021:vorlesung:kap01.pdf |PDF}} {{ :teaching:eidp_ws2021:vorlesung:kap01_2x2.pdf |PDF-2x2}} | | {{ :teaching:eidp_ws2021:vorlesung:altersangaben.c |altersangaben.c}} | | 2. | Darstellung von Information | {{ :teaching:eidp_ws2021:vorlesung:kap02.pdf |PDF}} {{ :teaching:eidp_ws2021:vorlesung:kap02_2x2.pdf |PDF-2x2}} | | {{ :teaching:eidp_ws2021:vorlesung:42-helloworld.cc |helloworld.cc}} {{ :teaching:eidp_ws2021:vorlesung:44-limits.cc |limits.cc}} {{ :teaching:eidp_ws2021:vorlesung:cast_char.cpp |cast_char.cpp}} {{ :teaching:eidp_ws2021:vorlesung:cast_short.cpp |cast_short.cpp}} | | | Codierung von floats |{{ :teaching:eidp_ws2021:vorlesung:kap02-floats.pdf |PDF}} | | | | 3. | Kontrollstrukturen | {{ :teaching:eidp_ws2021:vorlesung:kap03.pdf |PDF}} {{ :teaching:eidp_ws2021:vorlesung:kap03_2x2.pdf |PDF-2x2}} | | {{ :teaching:eidp_ws2021:vorlesung:ascii.cc |asci.cc}} {{ :teaching:eidp_ws2021:vorlesung:while.cc |while.cc}}{{ :teaching:eidp_ws2021:vorlesung:break.cc | break.cc}} {{ :teaching:eidp_ws2021:vorlesung:dowhile-cin.cc |dowhile-cin.cc}} {{ :teaching:eidp_ws2021:vorlesung:janein.cc |janein.cc}} {{ :teaching:eidp_ws2021:vorlesung:increment.cpp |increment.cpp}} {{ :teaching:eidp_ws2021:vorlesung:loop_array.cpp |loop_array.cpp}} | | 4. | Zeiger | {{ :teaching:eidp_ws2021:vorlesung:kap04.pdf |PDF}} {{ :teaching:eidp_ws2021:vorlesung:kap04_2x2.pdf |PDF-2x2}} | | {{ :teaching:eidp_ws2021:vorlesung:pointer.cpp |pointer.cpp}} {{ :teaching:eidp_ws2021:vorlesung:skalarprodukt-static.cpp |skalarprodukt-static.cpp}} {{ :teaching:eidp_ws2021:vorlesung:skalarprodukt-dynamic.cpp |skalarprodukt-dynamic.cpp}} {{ :teaching:eidp_ws2021:vorlesung:matrix.cpp |matrix.cpp}} | | 5. | Funktionen | {{ :teaching:eidp_ws2021:vorlesung:kap05.pdf |PDF}} {{ :teaching:eidp_ws2021:vorlesung:kap05_2x2.pdf |PDF-2x2}} | | {{ :teaching:eidp_ws2021:vorlesung:kap05.zip |kap05.zip}} | | 6. | Gültigkeitsbereiche | {{ :teaching:eidp_ws2021:vorlesung:kap06.pdf |PDF}} {{ :teaching:eidp_ws2021:vorlesung:kap06_2x2.pdf |PDF-2x2}} | | {{ :teaching:eidp_ws2021:vorlesung:kap06.zip |kap06.zip}} | | 7. | Rekursion | {{ :teaching:eidp_ws2021:vorlesung:kap07.pdf |PDF}} {{ :teaching:eidp_ws2021:vorlesung:kap07_2x2.pdf |PDF-2x2}} | | {{ :teaching:eidp_ws2021:vorlesung:kap07.zip |kap07.zip}} | | 8. | Klassen | {{ :teaching:eidp_ws2021:vorlesung:kap08.pdf |PDF}} {{ :teaching:eidp_ws2021:vorlesung:kap08_2x2.pdf |PDF-2x2}} | | {{ :teaching:eidp_ws2021:vorlesung:kap08.zip |kap08.zip}} | | 9. | Elementare Datenstrukturen | {{ :teaching:eidp_ws2021:vorlesung:kap09.pdf |PDF}} {{ :teaching:eidp_ws2021:vorlesung:kap09_2x2.pdf |PDF-2x2}} | | {{ :teaching:eidp_ws2021:vorlesung:kap09.zip |kap09.zip}} | | 10. | Vererbung | {{ :teaching:eidp_ws2021:vorlesung:kap010.pdf |PDF}} {{ :teaching:eidp_ws2021:vorlesung:kap10_2x2.pdf |PDF-2x2}} | | {{ :teaching:eidp_ws2021:vorlesung:kap10.zip |kap10.zip}} | | 11. | Virtuelle Funktionen |{{ :teaching:eidp_ws2021:vorlesung:kap011.pdf | PDF}} {{ :teaching:eidp_ws2021:vorlesung:kap11_2x2.pdf |PDF-2x2}} | | {{ :teaching:eidp_ws2021:vorlesung:kap11.zip |kap11.zip}} | | 12. | Ausnahmebehandlung | {{ :teaching:eidp_ws2021:vorlesung:kap012.pdf |PDF}} {{ :teaching:eidp_ws2021:vorlesung:kap12_2x2.pdf |PDF-2x2}} | | {{ :teaching:eidp_ws2021:vorlesung:kap12.zip |kap12.zip}} | | 13. | Datenstrukturen und Algorithmen | {{ :teaching:eidp_ws2021:vorlesung:kap13.pdf |PDF}} | |{{ :teaching:eidp_ws2021:vorlesung:kap13.zip |kap13.zip}} | | 14. | Standard Template Library | {{ :teaching:eidp_ws2021:vorlesung:kap14.pdf |PDF}}| | {{ :teaching:eidp_ws2021:vorlesung:kap14.zip |kap14.zip}} | | 15. | Klausurvorbereitung | {{ :teaching:eidp_ws2021:vorlesung:klausurvorbereitung.pdf |PDF}} | | === Anmeldung === Alle Studierenden werden gebeten, sich im [[https://www.lsf.tu-dortmund.de/qisserver/rds?state=user&type=0|LSF]] anzumelden. Die Veranstaltungsnummer ist 048001. === Zielgruppen === * BSc Elektro- und Informationstechnik (ET/IT): [[http://www.e-technik.tu-dortmund.de/cms1/de/Lehre_Studium/Studienangebot/Bachelor_ETIT/Studienplan_Bachelor_ETIT_neu/index.html|Pflichtfach (Modul IF-001)]] * BSc Informations- und Kommunikationstechnik (IKT): [[http://www.e-technik.tu-dortmund.de/cms1/de/Lehre_Studium/Studienangebot/Bachelor_IKT/Studienplan_Bachelor_IKT_neu/index.html|Pflichtfach (Modul IF-001)]] * BSc Physik: [[http://physik.tu-dortmund.de/cms/Medienpool/Studiengaenge/Bachelor-of-Science-and-Master-of-Science-Physik/modulhandbuch_physik.pdf#page=17|Wahlpflichtfach]] * BSc Wirtschaftsmathematik BPO 2015: [[http://www.mathematik.tu-dortmund.de/modulhandbuch/index.php/MAT-107b|Wahlpflicht (Modul MAT 107 b)]] === Inhalt === Die Veranstaltung führt in die Programmierung in C++ sowie in wesentliche Datenstrukturen und Algorithmen ein. * Begriffsklärungen: Informatik allgemein, Teilgebiete der Informatik, Algorithmus; Abgrenzung zu anderen Wissenschaften * Überblick: Rechnerarchitektur und Programmiersprachen; Darstellung von Information * Programmierung in C++: grundlegende Datentypen und -strukturen, Kontrollstrukturen, Zeiger, Funktionen, Klassenkonzept, Vererbung, Polymorphie, Ausnahmebehandlung, Schablonen, Überblick STL * Abstrakte Datentypen: Keller, Schlange, Listen, Binärbaum, Graphen, Komplexe Zahlen * Algorithmen: Suchen, Sortieren, Hashing, Rekursionsprinzip, einfache Graphalgorithmen * Formale Konzepte: Endliche Automaten, Grammatiken * Einführung in die GUI-Programmierung (mit Qt) Zudem werden einige Konzepte der neueren C++-Standards (C++11 et al.) eingeführt. Nach erfolgreichem Abschluss des Moduls sind die Studierenden in der Lage, Algorithmen aus unterschiedlichen Bereichen strukturiert zu entwerfen und in der objektorientierten Programmiersprache C++ umzusetzen. Dabei wählen sie jeweils geeignete Datentypen aus. Sie kennen die Sprachkonstrukte von C++ und beherrschen die Grundkonzepte von objektorientierten Programmiersprachen. Sie können verschiedene Softwarewerkzeuge zur Unterstützung der Programmierung und der Fehlersuche einsetzen. === Literatur === * U. Breymann: C++ - Einführung und professionelle Programmierung, 9. Auflage, Hanser Fachbuchverlag 2007. * U. Kaiser und C. Kecher: C++ - Von den Grundlagen zur professionellen Programmierung, 4. Auflage, Galileo Press 2008. * U. Kirch-Prinz, Peter Prinz: C++ lernen und professionell anwenden, 4. Auflage, Vmi Buch 2007. * D. May: Grundkurs Software-Entwicklung mit C++, Vieweg, Wiesbaden, 2003. * A. Willemer: Einstieg in C++, 4. Auflage, Galileo Press 2009. * J. Wolf: C++ von A bis Z - Das umfassende Handbuch, 2. Auflage, Galileo Press 2009. * S.B. Lippmann, J. Lajoie und B.E. Moo: C++ Primer, 4. Auflage (dt. Ausgabe), Addison-Wesley, München, 2006. **Anmerkung: Für den ambitionierten Leser.** * B. Stroustrup: Die C++ Programmiersprache, 4. Auflage, Addison-Wesley, München, 2000. **Anmerkung: Die Referenz. Für Anfänger nicht leicht zu lesen.** * R. Grimm: C++11 > Der Leitfaden für Programmierer zum neuen Standard, Addison-Wesley, München, 2012. **Anmerkung: Enthält alle Neuerungen des neuen Standards. Wir verwenden nur einen winzigen Bruchteil aus diesem Buch.**