💻

Einführung in objektorientierte Programmierung mit Kotlin

Apr 11, 2025

Notizen zur Einführung in die objektorientierte Programmierung mit Kotlin

Einführung

  • Ziel der Vorlesung: Spaß am Programmieren und Entwicklung robuster Software.
  • Programme als Ausdrucksmittel zur Überführung von Ideen in Software.
  • Bedeutung der Software: Veränderung der Welt (Beispiel: WhatsApp, Facebook).
  • Verantwortung beim Entwickeln von Software.

Herausforderungen beim Programmieren

  • Programmieren kann frustrierend sein, benötigt Durchhaltevermögen.
  • Fehler sind Teil des Lernprozesses, wichtig ist das Lösen von Problemen.
  • Ziel: Spaß an der Programmierung und robuste Softwareentwicklung.

Bedeutung der objektorientierten Programmierung (OOP)

  • OOP ermöglicht Entwicklung innovativer Anwendungen (Killer-Apps).
  • Anregung an die Zuhörer: Ideen für eigene Apps entwickeln.
  • OOP als Grundlage für viele andere Studienfächer.

Analytisches und ganzheitliches Denken

  • Lernen, Sachverhalte differenziert zu betrachten.
  • Abstraktes vs. spezifisches Denken verstehen.
  • Probleme in kleinere Teile zerlegen (Prinzip: Teile und herrsche).
  • Kreativität und Problemlösungsfähigkeiten sind entscheidend.

Einführung in Kotlin

  • Kotlin als moderne Programmiersprache.
  • Interoperabilität mit Java und Unterstützung durch Google.
  • Vorteile von Kotlin: weniger Boilerplate-Code, robustere Entwicklung.

Motivationsfaktoren für Kotlin

  • Relevanz und Unterstützung durch JetBrains.
  • Etablierte Konzepte aus anderen Programmiersprachen übernehmen.
  • Fokus auf Sicherheit und Robustheit.

Lernfaktoren

  • Einfacher Einstieg, weniger überflüssige Sprachelemente.
  • Effiziente Entwicklung und lesbarer Code.
  • Vermeidung von häufigen Fehlern durch explizite Variablenüberprüfung.

Themen der Vorlesung

  1. Daten und Kontrollstrukturen

    • Objekte und Klassen.
    • Datenherkunft.
    • Kapselung und Sichtbarkeit von Werten.
  2. Vererbung

    • Ober- und Unterklassen.
    • Beispiel: Klasse "Person" und abgeleitete Klassen (Student, Dozent).
  3. Polymorphismus und Typkompatibilität

    • Differente Verhaltensweisen von Objekten (z.B. „Losfahren“ für Auto vs. Fahrrad).
  4. Komposition

    • Funktionalität durch Zusammensetzung von Objekten erweitern.
  5. Datenstrukturen und Algorithmen

    • Behandlung von Ausnahmesituationen.
    • Einführung in Listen und Sets.
  6. Funktionale Programmierung

    • Funktionen als Werte verwenden.
  7. Entwicklung einer Android-App

    • Oberflächendesign und Architekturen.

Ausblick

  • Erlernen der Grundlagen der objektorientierten Programmierung.
  • Einblick in Algorithmen und Datenstrukturen.
  • Entwicklung von Anwendungen für Android.