====== 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.**