Einführung in die Programmierung für Studierende der Naturwissenschaften
Semester: | Sommersemester 2018 |
Zeit/Ort: | Mo 16-18 Uhr, HS Weismann-Haus, Albertstraße 21a |
Dozent: | Prof. Dr. S. Bartels |
Sprechstunde Dozent: | Mi 12-13 Uhr, Zi. 209, Hermann-Herder-Str. 10 |
Tutorium: | M.Sc. Christian Palus |
Sprechstunde Assistent: | Mi 14-15 Uhr und n. V., Zi. 204, Hermann-Herder-Str. 10 |
Aktuelles
- Die Anmeldung für die Übungsgruppen erfolgt über HiSinONE in der Zeit von
Mo, 16.4., 19:00 Uhr bis Di, 17.4., 13:00 Uhr
- Der Übungsbetrieb beginnt in der ersten Vorlesungswoche
- Verspätete Anmeldungen bitte per E-Mail an Frau Fimmen vom ZfS: Katja.Fimmen@zfs.uni-freiburg.de
- Zusätzliche Übungsgruppe mittwochs, 16-18 Uhr (Anmeldung bis 24.4., 13 Uhr) - bereits
getätigte Anmeldungen können in HisInOne geändert werden
- Freiwilliger Ersatztermin für den Übungsgruppentermin am Di, den 1. Mai, 16-18 Uhr:
Do, 3. Mai, 16-18 Uhr im CIP-Pool
- Die Evaluierung der Veranstaltung können Sie in den Übungsgruppen in den zwei Wochen vom 2.7. bis zum 15.7. durchführen.
- In der letzten Vorlesungswoche finden keine regulären Übungsgruppen mehr statt. Stattdessen können Sie bei Interesse einen einfachen Roboter aufbauen und programmieren (Infos auf Blatt 12). Termine dazu werden noch bekannt gegeben.
- Die Roboterübung findet aufgrund zu geringer Teilnehmeranzahl nicht statt.
- Die Vorlesungsnotizen wurden um ein neuntes Kapitel zum Thema IT-Kommunikation sowie einen Zusatz zu Kapitel I ergänzt.
Inhalte
Die Veranstaltung bietet eine Einführung in die wissenschaftliche Programmierung mit
theoretischen und praktischen Einheiten. Schwerpunkte der Veranstaltung sind:
- Programmstruktur und Kontrollfluss
- Ausdrücke, Operatoren und Anweisungen
- Datentypen, Typumwandlung und Typinferenz
- Container: Tupel, Felder, Listen, etc.
- Funktionen und Rekursion
- Zeichenketten, Dateien, Ein- und Ausgabe
- Einführung in die objektorientierte Programmierung
- Grafische Darstellungsmöglichkeiten
Die Inhalte werden anhand von Beispielen aus den Naturwissenschaften in der Programmiersprache
C++ sowie in MATLAB erarbeitet. Die erworbenen Kenntnisse werden mittels Übungen und
Hausaufgaben praktisch erprobt und vertieft.
Studienleistung
- Es gelten die Bedingungen des ZfS. Bei den Übungen ist eine Anwesenheit von mindestens
80% notwendig. Bei den Übungsblättern müssen mindestens 65% der zu vergebenden
Punkte erreicht werden.
- Aktive Teilnahme an den Übungsgruppen und mindestens einmaliges Vorstellen einer
Lösung; jeder Aufforderung dazu seitens des Tutors ist nachzukommen.
Vorlesungsnotizen
Handout
Übungsblätter
Die Abgabe Ihrer Lösungen zu den Übungsblättern erfolgt in die Briefkästen
vor Raum 201 (CIP-Pool) im 2. Stock des RZ (Hermann-Herder-Str. 10) beziehungsweise per E-Mail
an den zugewiesenen Tutor.
Blatt | Ausgabe | Abgabe |
Blatt 1 | 16.4. | 23.4., 16 Uhr |
Blatt 2 | 23.4. | 30.4., 16 Uhr |
Blatt 3 | 30.4. | 7.5., 16 Uhr |
Blatt 4 | 7.5. | 14.5., 16 Uhr |
Blatt 5 | 14.5. | 28.5., 16 Uhr |
Blatt 6 | 28.5. | 4.6., 16 Uhr |
Blatt 7 | 4.6. | 11.6., 16 Uhr |
Blatt 8 | 11.6. | 18.6., 16 Uhr |
Blatt 9 | 18.6. | 25.6., 16 Uhr |
Blatt 10 | 25.6. | 2.7., 16 Uhr |
Blatt 11 (Bonusblatt) | 2.7. | 9.7., 16 Uhr |
Blatt 12 (keine Abgabe) | 9.7. | --- |
Dateien zu Blatt 9: sudoku.cc, sudoku.hh
Datei zu Blatt 11: tictactoe.m
Korrekturen
- Blatt 6: In Aufgabe 2 gilt nach dem Abstellen der Eingangssignale jeweils S=R=0. Das Übungsblatt wurde aktualisiert.
- Blatt 7: Damit der Algorithmus Bubblesort in Aufgabe 2 nicht zu früh abbricht, muss nach der Wiederholung noch eine dritte Anweisung ergänzt werden: (3) Falls i < n, so erhöhe i um 1 und gehe zu (2).
- Ergänzender Hinweis zu Blatt 9: In Aufgabe 2 geht es um die Änderung der maximalen Problemgröße bei einer Verdopplung der Rechenleistung.
- Blatt 11: In Aufgabe 1(ii) muss im Ausdruck x ein "|" anstelle des Kommas stehen: x = ( (7|8|9) (♠|♥) ).
Beispielprogramme und -dateien
Kapitel 2
Kapitel 4
Kapitel 6
Kapitel 8
Software
- C++-Programme können Sie in der Online-Shell http://cpp.sh entwickeln
und testen oder alternativ einen C++-Compiler auf Ihrem Rechner installieren.
- Eine Alternative zu der Online-Shell stellt der Online Compiler and Debugger https://www.onlinegdb.com dar,
der sich allerdings noch im Betastadium befindet.
- Für das Arbeiten mit MATLAB empfehlen wir, dass Sie sich eine kostenlose Studentenlizenz
besorgen
(siehe Informationen des RZ zur MATLAB-Lizenz)
und damit MATLAB auf Ihrem Rechner installieren oder die
Online-Version im Browser benutzen
- Eine kostenlose, weitestgehend kompatible Alternative zu MATLAB ist
GNU Octave
Literatur
- R. Drechsler, A. Fink, J. Stopper: Computer, Springer 2017
- T. Häberlein: Technische Informatik, Springer 2011
- R. Klima, S. Selberherr: Programmieren in C, Springer 2010
- G. Küveler, D. Schwoch: C/C++ für Studium und Beruf, Springer 2017
- D. Logofatu: Einführung in C, Springer 2016
- H. Müller, F. Weichert: Vorkurs Informatik, Springer 2017
- M. von Rimscha, Algorithmen kompakt und verständlich, Springer 2014
- R. Schneeweiß: Moderne C++ Programmierung, Springer 2012
- G. Vossen, K.-U. Witt: Grundkurs Theoretische Informatik, Springer 2016
Online Tutorials
Termine
Angelegenheit |
Termin |
Ort |
Anmeldung Übungsgruppen |
16.4.-17.4. |
HiSinONE |
Erfassung Studienleistung |
Juli 2018 |
--- |
Übungsgruppen
Sämtliche Übungsgruppen finden im CIP-Pool statt, der sich in Raum 201
im zweiten Stock des Rechenzentrums in der Hermann-Herder-Straße 10 befindet.
Die Zeiten der Übungsgruppen sind voraussichtlich folgendermaßen:
Gruppe |
Tutor/in |
Zeit |
Ort |
1 | J. Hoffmann | Di, 16-18 | CIP-Pool |
2 | J. Keck | Mi, 14-16 | CIP-Pool |
3 | N.-J. Akpinar | Fr, 12-14 | CIP-Pool |
4 | C. Palus | Mi, 16-18 | CIP-Pool |
E-Mail-Adressen der Tutoren: