Software Engineering
SoSe 2025 Dr. Julian Huber
Organisatorisches

Dr. Julian Huber

- 2016-2021 FZI Forschungszentrum Informatik
- Wissenschaftlicher Mitarbeiter, Senior Expert, Abteilungsleiter der Abteilung Information Management & Analytics
- 2020 Promotion
- Engineering User-Centric Smart Charging Systems
-
2009-2016 Wirtschaftsingenieurwesen
- TU Berlin und KIT
-
Forschungs-Interessen
- Nachhaltigkeit im Energiesektor
- Schnittstelle zwischen Daten und Menschen
Motivation
🎯 Lernziele
Nach dieser Einheit sind Sie in der Lage dazu * die Relevanz von Software und Digitalisierung anhand von Bespielen aus der Sport-, Medizin- und Gesundheitstechnik zum Ausdruck bringen * die Prüfungsanforderungen zu beschreiben
Tourenplanung

Trainingsplanung

Digitale Zertifikate

Genanalysen

Telemedizin

Bilderkennung und Diagnose

Digitalisierung in der Medizin

- Keine Datenverarbeitung ohne Hardware und Software
🧠 Was ist Software?

- Computerprogramme und Dokumentation
- für bestimmten Kunden oder allgemeinen Markt
- Bindeglied zwischen User und Hardware
- gewünschte Funktionalität und Leistung
- wartbar, verlässlich, sicher, benutzbar
🧠 Was ist Software-Engineering?
- technische Disziplin mit Fokus Softwareerstellung
- praktische Aspekte der Entwicklung & Auslieferung
- nicht Informatik
- Theorie & Grundlagen

Ziel der Vorlesung
- Sprache, Tools und Techniken des Software-Engineerings
- um eigene Projekte anzugehen
- Wissen wonach man suchen muss und Suchergebnisse beurteilen


Is this helpful?
import abc
from datetime import datetime
class ErgometerSensor(metaclass=abc.ABCMeta):
@abc.abstractmethod
def get_value(self):
pass
class HeartRateSensor(ErgometerSensor):
def __init__(self, bpm):
self.bpm = bpm
def get_value(self):
return (datetime.now(), self.bpm)
class CadenceSensor(ErgometerSensor):
def __init__(self, rpm):
self.rpm = rpm
def get_value(self):
return (datetime.now(), self.rpm)
class PowerSensor(ErgometerSensor):
def __init__(self, watts):
self.watts = watts
def get_value(self):
return (datetime.now(), self.watts)
Inhalte der Lehrveranstaltung
- Studierende erhalten Überblick über die Herausforderungen der Softwareentwicklung und kennen Methoden und Werkzeuge, um diese Herausforderungen zu meistern
- Studierende sind in der Lage objekt-orientierte Programmierung in Python umzusetzen
- Studierende sind in der Lage kleinere Softwareprojekte selbstständig zu managen und durchzuführen
- Studierende kennen die Kerntechnologien von mobilen und Webanwendungen
- Neben der technischen Perspektive, kennen Studierende auch die Grundlagen einer nutzer-zentrierten Entwicklung und deren wichtigsten Grundprinzipien und Methoden
- Studierende beherrschen einfache SQL-Abfragen zur Interaktion mit Datenbanken und können mit Datei-Basierten Speichersystemen umgehen
Philosophie der Lehrveranstaltung
- Praktische Anwendung - vor allem in der Programmierübung
- Hier Fokus auf die vielfältigen Themen der IT
- Wissensgrundlage, um sich in der Welt der Softwareentwicklung zurechtzufinden
- Es gibt ein Quiz in Sakai-Kurs, das Ihnen dabei helfen wird ihr Verständnis zu überprüfen und Sie auf die Klausur vorzubereiten
- Praktische Vertiefung in der Programmierübung

Leistungsbewertung
- Leistungsbewertung basiert auf der Klausur
- Programmierübung wird unabhängig bewertet
- Inhalt der Klausur
- Verständnis der praktischen Anwendung aus der Programmierung
- Theoretisches Grundwissen vergleichbar den Lernfragen
- 🤓 nicht klausurrelevant
- 🧠 sehr wichtig
Aufwände und Leistungsüberprüfung

- Benotung durch Klausur
- Wer \(\frac{8}{10}\) Sakai-Aufgaben fristgerecht abgibt erhält einen \(0.3\) Notenschritt-Bonus in der Klausur (z.B.
2.0\(\rightarrow\)1.7) - Hierbei zählt der Best-Effort, d.h. auch für falsche Antworten gibt es Punkte, solange die Aufgabe ernsthaft bearbeitet wurde
- offensichtlich kopierte oder falsche Antworten werden abgezogen
- Bewertung der Programmierübung 2 ist unabhängig
Fragen
________
_jgN########Ngg_
_N##N@@"" ""9NN##Np_
d###P N####p
"^^" T####
d###P
_g###@F
_gN##@P
gN###F"
d###F
0###F
0###F
0###F
"NN@'
___
q###r
""