Info1BM

Aus Progwiki
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Vorlesungsziel

Das Ziel der Lehrveranstaltung ist die Vermittlung der Grundlagen der Programmierung als auch der Grundkenntnisse der Informatik. Dazu gehört neben dem Kennenlernen einer Programmiersprache auch ein Überblick über die Geschichte der Informatik. Im Rahmen der Übung ist es das Ziel allen Teilnehmer_Innen die Kenntnisse zu vermitteln, sodass diese in der Lage sind, kleine Programme sinnvoll und kompakt zu implementieren. Besonderer Fokus liegt hier auf dem Verständnis der grundliegenden Konzepte und dem Umgang mit Daten.

Die in Übung und Vorlesung eingesetzte Programmiersprache ist Python (In Version ≥3.5)

Was wird erwartet?

Wie auch sonst fast überall gilt hier "learning by doing". Programmieren lernt man in der Praxis und nicht bei Frontalvorträgen. Dementsprechend ist die Übung sehr auf den Dialog ausgelegt. Die Tutoriumseinheiten dienen neben Festigung des Vorlesungsstoffs als Praxis- und Fragestunden. Dies ist vor allem für jene interessant, die wenig bis gar keine Programmiererfahrung mit sich bringen oder noch nie mit Python gearbeitet haben.

Für Anfänger ist es zu Beachten, dass die Lehrveranstaltung mit großem Zeitaufwand verbunden sein kann. Kommen Sie daher in die Tutoriumseinheiten und probieren Sie möglichst viel selbst aus. Ein Verständis der Grundkonzepte ist essentiell für Erfolg und absolute Grundlage für die nachfolgende Lehrveranstaltung!

Team und Kontakt

LV Leitung

(Sprechstunden jeweils nach Vereinbarung)

Vorlesung: DI. Florian Klien - klien@tugraz.at
Übung: DI. Patrick Kasper - patrick.kasper@tugraz.at

Tutoren

Omar Saracevic - o.saracevic@student.tugraz.at
Florian Hofer - f.hofer@student.tugraz.at
Maximilian Riedel - riedel@student.tugraz.at
Yasmine Heyer - yasmine.heyer@student.tugraz.at

Vorzeitiges LV ausscheiden

Abmeldung nach der Frist

Während der Anmeldeperiode können sich alle Studierende frei wieder von der Vorlesung abmelden. Zusätzlich gibt es eine weitere Möglichkeiten von der Vorlesung vorzeitig auszuscheiden. Ein Nichterbringen der Übung 0 hat eine automatische Abmeldung zur Folge (Keine Note). Danach erhalten alle Studierende ausnahmslos eine Note!

Negatives Ausscheiden

Studierende bei denen ein Plagiat im Rahmen der Übung vermutet wird werden zu einem Gespräch mit dem entsprechenden Tutor eingeladen um den Verdacht zu entkräften. Sollte sich jedoch das Plagiat bestätigen scheidet der Student vorzeitig mit einer negativen Note von der Lehrveranstaltung aus.

Selbiges gilt für Studierende die Schadcode ihren Abgaben beifügen!

Benotung

Bei Informatik 1 für Biomedical Engineering handelt es sich um eine VU-Lehrveranstaltung (Vorlesung mit immanentem Prüfungscharakter). Grundlage für die Benotung sind die abgelieferten Leistungen (Übungs Assignments) sowie die Abschlussklausur.

Insgesamt gibt es 100 Punkte zu erreichen. Dabei entfallen 50 Punkte auf die Klausur und 50 auf die Übung. Um die LV positiv zu absolvieren müssen beide Teile der Lehrveranstaltung ebenfalls positiv absolviert werden. (>25 Punkte auf jeweils Übung und Klausur). Der Notenschlüssel ergibt sich daraus wie folgt:

Leistung (%) Note
95.5 - 100% 1
82.5 - 95% 2
65.5 - 82% 3
51 - 65% 4
0 - 50.5% 5

Alle Einzelleistungen (Übungs-Assignments und Klausur) sind obligatorisch, müssen also absolviert werden um eine positive Beurteilung auf die Lehrveranstaltung zu erreichen.

Klausurwiederholung

Im Rahmen der Lehrveranstaltung haben alle Studierenden die Möglichkeit die Abschlussklausur im Rahmen einer Nachklausur zu wiederholen. Sie dient dazu, nicht zufriendenstellende Ergebnisse auszubessern und gilt NICHT als eigenständiger Prüfungsantritt. Alle Teilnehmer_Innen der Nachklausur verwerfen das Ergebnis der normalen Abschlussklausur. Dadurch ist es allerdings auch möglich eine schlechtere Note zu erreichen. (< 25 Punkte bei der Nachklausur haben eine negative Note zur folge egal wie viel bei der Hauptklausur erreicht wurde!)

Tutorium und Übung

Bei dem Übungsteil der Lehrveranstaltung geht es primär darum, praktische Erfahrung zu sammeln und ein Gefühl für die Programmiersprache zu erlangen. Von Seiten der LV-Leitung wird stets versucht eine thematische Nähe zum Biomedical Engineering einzuhalten. Die Übungsaufgaben orientieren sich an alltäglichen Aufgaben im Bereich der Datenaufbereitung und Analyse. Hierbei wird mit Realdaten gearbeitet.

Tutoriumseinheiten

Diese Einheiten dienen zur Wiederholung und Festigung des Stoffes und um offene Fragen insbesondere im Bezug zu den Übungs Assignments zu klären. Die Teilname an diesen Übungseinheiten ist freiwillig und nicht Verpflichtend. Sowohl die Folien als auch die präsentierten Notebooks werden hier zum Download angeboten. Die Termine für die jeweiligen Einheiten der einzelnen Gruppen lauten wie folgt:

Gruppe 1 (HS i2) Gruppe 2 (LS II) Gruppe 3 (LS I) Gruppe 4 (HS i8) Gruppe 5* (LS I)
KW Maximilian Riedel

(riedel@student.tugraz.at)

Omar Saracevic

(o.saracevic@student.tugraz.at)

Florian Hofer

(f.hofer@student.tugraz.at)

Yasmine Heyer

(yasmine.heyer@student.tugraz.at)

Omar Saracevic

(o.saracevic@student.tugraz.at)

41 MI 10.10 08:00 - 10:00 MI 10.10 10:00 - 12:00 FR 12.10 08:00 - 10:00 FR 12.10 08:00 - 10:00 FR 12.10 10:00 - 12:00
42 MI 17.10 08:00 - 10:00 MI 17.10 10:00 - 12:00 FR 19.10 08:00 - 10:00 FR 19.10 08:00 - 10:00 FR 19.10 10:00 - 12:00
43 KEINE EINHEIT
44 KEINE EINHEIT
45 MI 07.11 08:00 - 10:00 MI 07.11 10:00 - 12:00 FR 09.11 08:00 - 10:00 FR 09.11 08:00 - 10:00 FR 09.11 10:00 - 12:00
46 MI 14.11 08:00 - 10:00 MI 14.11 10:00 - 12:00 FR 16.11 08:00 - 10:00 FR 16.11 08:00 - 10:00 FR 16.11 10:00 - 12:00
47 MI 21.11 08:00 - 10:00 MI 21.11 10:00 - 12:00 FR 23.11 08:00 - 10:00 FR 23.11 08:00 - 10:00 FR 23.11 10:00 - 12:00
48 MI 28.11 08:00 - 10:00 MI 28.11 10:00 - 12:00 FR 28.11 08:00 - 10:00 FR 30.11 08:00 - 10:00 FR 30.11 10:00 - 12:00
49 MI 05.12 08:00 - 10:00 MI 05.12 10:00 - 12:00 FR 07.12 08:00 - 10:00 FR 07.12 08:00 - 10:00 FR 07.12 10:00 - 12:00
50 MI 12.12 08:00 - 10:00 MI 12.12 10:00 - 12:00 FR 14.12 08:00 - 10:00 FR 14.12 08:00 - 10:00 FR 14.12 10:00 - 12:00
WEIHNACHTSFERIEN
02 MI 09.01 08:00 - 10:00 MI 09.01 10:00 - 12:00 FR 11.01 08:00 - 10:00 FR 11.01 08:00 - 10:00 FR 11.01 10:00 - 12:00
03 MI 16.01 08:00 - 10:00 MI 16.01 10:00 - 12:00 FR 18.01 08:00 - 10:00 FR 18.01 08:00 - 10:00 FR 18.01 10:00 - 12:00
* Gruppe 5 findet nur bei Erschöpfung der anderen Kapazitäten statt!

Übung

Die Übung in Informatik 1 besteht aus 4 Einzelabgaben. Die ersten beiden Assignments dienen als Einführung. Sie sind alle verpflichend für ein positives absolvieren der Vorlesung. Bei den Deadlines handelt es sich jeweils um harte Deadlines. Dies bedeutet dass eine verspätete Abgabe nur in extremen Ausnahmefällen möglich ist. Hierfür müssen die zuständigen Tutoren kontaktiert werden welche über die Abgabeberechtigung einzeln entscheiden. Die Ausgabe der Assignments erfolgt jeweils am Ende der Vorlesungseinheit des entsprechenden Tages. Die Termine für die Übung lauten:

Assignment Ausgabe Präsentation Deadline Punkte
Assignment 0 10.10.2018 10.10.2018 16.10.2018 23:59 0
Assignment 1 17.10.2018 17.10.2018 13.11.2018 23:59 5
Assignment 2 07.11.2018 07.11.2018 04.12.2018 23:59 20
Assignment 3 14.11.2018 05.12.2018 15.01.2019 23:59 25
* Bei den Assignment 2 & 3 besteht die Möglichkeit Bonuspunkte zu erhalten. Zum Bestehen der Übung ist es aber notwendig, dass Sie >25 Punkte exklusive der Bonuspunkte erreichen. (Z.B., 21 Punkte +5 Bonus resultiert in einer negativen Note!)

Abgabegespräche

Für die den Assignment 2 & 3 wird es im Rahmen der Übung Abgabegespräche geben. Dort Abgabegespräche erklären die Studierenden jeweils ihren Code. Sie dienen vor allem dazu um zu verifizieren, dass der Student die Übung tatsächlich selbst programmiert hat und zum Beantworten offener Fragen. Bei dieser Übung gibt es zwei Abgabegespräche wobei jeweils teilnahmepflicht herrscht!

Zuweisung zu den einzelnen Terminslots erfolgt über die Palme.

Termine

To Be Announced

Tutoriumseinheiten

Diese Einheiten dienen zur Wiederholung und Festigung des Stoffes und um offene Fragen insbesondere im Bezug zu den Übungs Assignments zu klären. Die Teilname an diesen Übungseinheiten ist freiwillig und nicht Verpflichtend. Sowohl die Folien als auch die präsentierten Notebooks werden hier zum Download angeboten. Die Termine für die jeweiligen Einheiten der einzelnen Gruppen lauten wie folgt:

Kommentar Header

Hier der Beispiels-Header für ALLE python Code Dateien der Übung. Bitte kopieren Sie diese Zeilen und passen Sie sie an. Achten Sie dabei darauf, das Limit von 72 Zeichen pro Zeile nicht zu überschreiten (PEP8 Standard [[1]]).

######################################################################
# Author:      [VORNAME] [NACHNAME]
# MatNr:       [MATRIKELNUMMER]
# Description: [KURZBESCHREIBUNG DER DATEI]
# Comments:    [KOMMENTARE ZUR ABGABE.
#              KANN MEHRZEILIG SEIN]
######################################################################

Newsgroup

Die offizielle Newsgroup für die Lehrveranstaltung ist tu-graz.lv.info-bm
Das einrichten der Newsgroup ist für Lehrveranstaltungsteilnehmer verpflichtend!

Sie ist die primäre Anlaufstelle für alle fachlichen und organisatorischen Fragen. Da es meist mehrere Studierende gibt, die die selben oder ähnliche Fragen haben können über die Newsgroup Fragen leichter beantwortet werden. Offiziellen Antworten zu Fragen oder Informationen sind stets als solche markiert ('[TUTOR]' - Prefix im Titel).

Es darf (und soll) über Lösungsansätze diskutiert werden, das Posten Ihres Codes ist nicht gestattet.

Ressourcen

Die Unterlagen werden zeitnah oder zum Zeitpunkt ihrer Präsentation veröffentlicht und hier zum Download angeboten

Anaconda

Es wird empfohlen, für die Übungung die anaconda Suite für Python zu verwenden. Vor allem unter Windows Systemen wird dadurch einiges an Handarbeit vom Installer übernommen. Zusätzlich liefert der mitgelieferte Navigator eine gute Lernplattform und liefert standardmäßig auch den jupyter notebook Server mit.
Anmerkung: Das Verwenden von anaconda ist keinesfalls vorausgesetzt. Jede Python Installation in zumindest Version 3.5 ist zugelassen!

Download: https://www.anaconda.com/download/
Detaillierte Installationsanleitung für die unterschiedlichen Plattformen (Windows, Unix, mac): https://docs.anaconda.com/anaconda/install/
Video zur Installation auf Ubuntu: https://www.youtube.com/watch?v=-Cfvy3-e2mY

Vorlesungsfolien

können auf Gitlab oder Github gefunden werden. Git Repositories sind hier und hier zu finden. Im Unterordener pdf finden Sie PDF Exporte.

Tutoriumsfolien und jupyter Notebooks

Github Verzeichnis zu den Tutoriumsunterlagen: https://github.com/pkasper/info1-bm/tree/master/2018/tutor_sessions


Einzelne Einheiten: (Notebooks Rechtsclick -> Speichern)

 Unit 01: [IPYNB]  
 Unit 02: [IPYNB] 
 Unit 03: [IPYNB]
 Unit 04: [IPYNB]
 Unit 05: [IPYNB]

Übungs Assignments

Assignment 0:

 Angabe:   [DE] [EN]

Assignment 1:

 Angabe:   [DE] [EN]
 Files:    [ZIP]
 Solution: [IPYNB]
 Feedback: [IPYNB]

Assignment 2:

 Angabe:   [DE] [EN]
 Files:    [ZIP]
 Solution: [IPYNB]


Assignment 3:

 Angabe:   [DE] [EN] 
 Files:    [Input CSV]


Beispieloutputs

Assignment 2:

Ihre Resultate können diverse leichte Änderungen aufweisen. Die langfristigen Verläufe sollten jedoch wie auf den Beispielbildern erkennbar sein.
Je nachdem wie Sie Ihr Smoothing berechnet sollte eine der beiden Varianten zu Ihren Resultaten passen. "Online" bedeutet hier, dass Sie Ihre Ergebnisse von Zeitpunkt X für die Berechnung von Zeitpunkt X+1 verwenden.
Wichtig: Beides ist korrekt für dieses Assignment!

 Input / Command Line Params:
 sys.argv = ["assignment_2.py", 
             "--input=sensors_graz.csv", 
             "--output=assignment_2.csv",
             "--sensors", "1503", "1693",
             "--resampling_delta", "600",
             "--window_smoothing", "2592000"]
 
 Outputs: (Smoothing online.)
 Assignment 2.csv 1503.png Assignment 2.csv 1693.png
 
 
 Outputs: (Alternativ, wenn Sie Smoothing nicht online berechnen)
 Assignment 2.csv 1503 alt.png Assignment 2.csv 1693 alt.png


Assignment 3:

Fertige Map: [HTML]
Popout Sensor 1747: [HTML]

Alte Ressourcen

2016 Github Verzeichnis
2017 Github Verzeichnis

Meine Werkzeuge