Digicampus
Vorlesung: Einführung in Data Science und Data Engineering - Details
Sie sind nicht in Stud.IP angemeldet.
Lehrveranstaltung wird in Präsenz abgehalten.

Allgemeine Informationen

Veranstaltungsname Vorlesung: Einführung in Data Science und Data Engineering
Veranstaltungsnummer INF-0413
Semester WS 2023/24
Aktuelle Anzahl der Teilnehmenden 74
Heimat-Einrichtung Biomedizinische Informatik, Data Mining und Data Analytics
Veranstaltungstyp Vorlesung in der Kategorie Lehre
Erster Termin Montag, 16.10.2023 10:00 - 11:30, Ort: (1001 T)
Online/Digitale Veranstaltung Veranstaltung wird in Präsenz abgehalten.
Hauptunterrichtssprache deutsch
Weitere Unterrichtssprache(n) Englisch

Räume und Zeiten

(1001 T)
Montag: 10:00 - 11:30, wöchentlich (15x)
Mittwoch: 12:15 - 13:45, wöchentlich (14x)

Modulzuordnungen

Kommentar/Beschreibung

# Inhaltsübersicht

* Allgemein
* Ziele der Vorlesung und Voraussetzungen
* Zum Ablauf der Vorlesung
* Zum Ablauf der Übungen
* Zur Klausur
* Allgemeine Tipps an die Studentinnen und Studenten

# Allgemein

In dieser Vorlesung wird als Einstieg in die Datenwissenschaften vermittelt, wie man datenwissenschaftliche Probleme mit dem Rechner löst. Die Vorlesung bietet eine Einführung in folgende Themenbereiche:

1. Grundlagen der Programmierung in C
2. Programmierparadigmen und Konzepte der imperativen Programmierung
3. Datenstrukturen (statische / dynamische / mehrdimensionale)
4. Informationsdarstellung (Zahlensysteme, Komplementdarstellungen ganzer Zahlen, Fließkommadarstellungen von Dezimalzahlen, ASCII-Zeichen)
5. Algorithmen (Entwurf, Rekursion, Korrektheit, Zeitkomplexität / O-Notation)
6. Vektoren und Matrizen als Werkzeug zur Interpretation von Daten
7. Clustering-Verfahren
8. Programmieren in Python
9. Python Programmbibliotheken für die Datenwissenschaften
10. Lineare Regression, Auswahl von Modellen, Einführung in die neuronalen Netze und Deep Learning
Diese Vorlesung ist Voraussetzung für alle weiteren Veranstaltungen.

# Ziele der Vorlesung und Voraussetzungen

* Grundlage:
* Programmierkenntnisse aus Vorkurs Informatik (oder gleichwertige Vorerfahrung).
* Vorkurs kann jetzt noch digital nachgeholt werden!

* Lernziele
* Allgemein: " ... die wesentlichen Konzepte aus Informatik und Mathematik, die die Basis der Datenwissenschaft darstellen"
* bzgl. Mathematik: "Informationsdarstellung, Algorithmen, Matrizen als Werkzeug zur Interpretation von Daten, Regression und Modellauswahl, Einführung in neuronale Netze"
* bzgl. Informatik: grundlegende Konzepte der Programmierung in C und Python.
* Warum C und Python?
* C und Python sind portabel und weit verbreitet.
* C ist eine Low-Level-Sprache und bietet eine hohe Leistungsfähigkeit.
* Python ist weit verbreitet im Bereich Data Science (s.u.)
* Erlernen der Unterschiede zw. einer kompilierten (C) vs. interpretierten Sprache (Python)
* Hauptanwendungsgebiete von C: Systemprogrammierung, Embedded Systems (eingebettete Systeme), Spielentwicklung, Compiler und Interpreter, Netzwerkanwendungen. Mikrocontroller-Programmierung Telemetrie und Embedded-Steuerungen
* Hauptanwendungsgebiete von Python: Webentwicklung, Datenanalyse und Data Science, Künstliche Intelligenz (KI) und maschinelles Lernen (ML), Automatisierung und Skripting, Wissenschaftliche Berechnungen und Forschung

# Zum Ablauf der Vorlesung

* Montags, 10:00 - 11:30 (1001 T) **und** Mittwochs, 12:15 - 13:45 (1001 T)
* Regelmäßige Teilnahme ist wichtig, damit man nicht den Anschluss verliert
* Kommunikationsplattform: Digicampus
* Fragen und Kommentare gerne ins Forum (sichtbar für alle)
* direkte Email nur in Ausnahmefällen
* Mathematikteil: Vorlesungsmaterialien werden vor Vorlesung im Bereich "Dateien" zur Verfügung gestellt
* Allgemein: dran bleiben und nicht zwischendurch pausieren
* kontinuierlich Vor- und Nachbereiten

# Zum Ablauf der Übungen

* Wo und wann: Dienstags, 12:15 - 13:45 (1057 N) **oder** Mittwochs, 15:45 - 17:15 (1058 N) (der Donnerstagstermin ist als Backup gedacht, aber wird wahrscheinlich nicht benötigt)
* Wie: Bis zum 19.10 (18 Uhr) nur für einen (!) Übungstermins im Übungssystem eintragen (automatische Gruppenverteilung soll stattfinden, um Überlappungen zu vermeiden)
* Erste Übung in Woche vom 23. Oktober
* AUSGABE der Übungsblätter: Wöchentlich und zwar am Montag auf Digicampus (entweder kurz vor oder nach der Vorlesung)
* ABGABE der Übungsblätter: Sie haben für die Bearbeitung des Blattes eines Woche Zeit und sollten es SPÄTESTENS bis zum jeweils nächsten Montag um 9 Uhr auf Digicampus hochgeladen haben unter der Veranstaltung "Übung zu Einführung in Data Science und Data Engineering" (Link: https://digicampus.uni-augsburg.de/dispatch.php/course/details?sem_id=f30d38b7dbc20e2766c32e0787c90a4d&again=yes ) und zwar in der Rubrik "Dateien" -> "Abgabe der Übungsblätter" -> "Abgabe-Übungsblatt-xyz"
* Bewertung der Übungsblätter: Die Tutoren/Tutorinnen werden Ihre Abgabe prüfen und die Anzahl der korrekt beantworteten Aufgaben dokumentieren. Wenn Sie in einem Übungsblatt mindestens 50% der Aufgaben korrekt beantwortet haben, bekommen Sie 1 Bonuspunkt gutgeschrieben, der später in der Klausur angerechnet wird. Es können über alle Übungsblätter so maximal 8 Bonuspunkte erlangt werden und zwar max. 4 Bonuspunkte für den Informatikteil der Vorlesung (Programmieren in C und Python) und max. 4 Bonuspunkte für den Mathematikteil
* Die Bearbeitung und Abgabe kann alleine oder in Zweiergruppen erfolgen. Letzteres ist allerdings empfohlen.
* Regelmäßige Teilnahme ist auch hier wichtig, um nicht den Anschluss zu verlieren
* In der in Präsenz abgehaltenen Übung: Besprechung der Lösung und ggf. eine unterstützende Programmieraufgabe. Raum für allgemeine Fragen ist hier auch gegeben.
* Regelmäßiges Programmieren ist notwendig (zum Bestehen der Klausur und weil Sie es später brauchen werden)

## Wie und wo programmiere ich?
* Im Jupyther-Hub:
* URL: https://bioinf-jupyter.informatik.uni-augsburg.de/hub
* Für den Zugriff muss man sich im Uni-Netz befinden bzw. per VPN mit der Uni verbunden sein.
* Kurzanleitung für Studierende: https://bioinf-nextcloud.informatik.uni-augsburg.de/s/howToJupyter
* Sie müssen im Jupyther-Hub mit Ihrer RZ-Kennung registriert sein. Das haben wir für die bisher für die Übungsgruppen angemeldeten Studentinnen und Studenten bereits erledigt. Etwaige Nachzügler müssen wir noch freischalten.
* Falls der Jupyther-Hub mal aus technischen Gründen mal nicht gehen sollte, kompilieren Sie Ihre Programme lokal auf Ihrem Rechner (s. Einführungsveranstaltung). Es steht Ihnen frei wie Sie es machen.
* Alternativen zm Jupyther-Hub: lokale Jupyther-Instanz auf eigenem Notebook oder lokale IDE (z.B. IDE CODE:BLOCKS, CLION von Jetbrains oder klassisch d.h. Texteditor+Terminal)
* bitte niemals Programmcode in MS Office bearbeiten, sondern nur in Texteditoren

# Zur Klausur

* Die Klausur findet VORAUSSICHTLICH in der ersten Woche der vorlesungsfreien Zeit statt. Nach derzeitigem Stand der Dinge ist der Termin der 15.2.24. Siehe auch die Klausurterminseite:

https://www.uni-augsburg.de/de/fakultaet/fai/informatik/studium/klausurtermine-informatik/

!!! WICHTIG: Zur Teilnahme an der Klausur ist eine Anmeldung über STUDIS nötig !!!

# Allgemeine Tipps an die Studentinnen und Studenten

* Interaktion
* Tipp: untereinander Lerngruppen bilden
* Tipp: mit den Dozenten interagieren (die Vorlesung sollte kein Monolog sein)

## Bzgl. des Informatikteils
* Optional: Überlegen Sie sich abseits der Übungen ein kleines, aber konkretes Programmierprojekt und entwickeln Sie es eigenständig. Durch die Entwicklung eines eigenen Programms erlernt man Konzepte meist deutlich schneller als wenn wenn man nur ausschließlich die (wichtigen) Übungen löst. Wenn Sie dabei sogar arbeitsteilig arbeiten--d.h. mehrere Studenten/Studentinnen entwickeln einzelne Teile wie z.B. Funktionen eines Programms und fügen es später zusammen--erlangen Sie dabei auch wichtige koordinative Fähigkeiten, die Ihnen später in größeren Softwareentwicklungsprojekten zu Gute kommen werden.
* Programmkonzept überlegen: um etwaige Programmierhemmungen zu überwinden, empfiehlt es sich erstmal ein Konzept des Programms d.h. einen groben Ablauf festzulegen ("Was soll mein Programm können?") und aufzuschreiben. Sie können diesen groben Ablauf z.B. in Form von Kommentaren in ihre Quellcodedatei einfügen und sich daran orientieren und schrittweise ausprogrammieren.
* Eigenständigkeit: Sie sollten unabhängig vom Jupyther-Hub in der Lage sein ihre eigene Entwicklungsumgebung (IDE) aufzusetzen und Code kompilieren zu können (z.B. mit gcc).
* Code-Kommentierung: Orientieren Sie sich an dem Leitspruch: "The closer a comment is to spoken language and the further a comment is from C code, the better the comment is"
* Verwenden Sie gute Code-Konventionen, d.h. Strukturieren Sie Ihren Code gut.
* Gute Code-Konventionen für C: https://users.ece.cmu.edu/~eno/coding/CCodingStandard.html
* Gute Code-Konventionen für Python: https://docs.python-guide.org/writing/style/
* Bücherempfehlungen:
* Wenn die Zeit es zulässt, empfiehlt es sich zusätzlich zur Vorlesung noch ein gut strukturiertes Buch oder Webresource zum Thema zu lesen.
* Für den Programmierteil "C" ist u.a. folgendes Buch empfehlenswert:
* "C Programming Absolute Beginner's Guide", (English Edition), 3. Auflage, Autoren: Greg Perry und Dean Miller
* Für den Pythonteil kann man folgende Quelle konsultieren:
* https://realpython.com/learning-paths/

Anmelderegeln

Diese Veranstaltung gehört zum Anmeldeset "Zeitgesteuerte Anmeldung: Einführung in Data Science und Data Engineering".
Folgende Regeln gelten für die Anmeldung:
  • Die Anmeldung ist möglich bis 30.11.2023, 23:59.