Skip to content

SimonGrad/hsro-inf-fpk.github.io

 
 

Repository files navigation

Fortgeschrittene Programmierkonzepte (aka Programmieren 3)

Pflichtmodul im Bachelorstudiengang Informatik an der Hochschule Rosenheim.

Literatur

ausserdem hilfreich

Vorlesungen

  • Einführung und Organisatorisches (Slides, Pdf,Übungen)

    Nach einer kurzen Einführung werden wir uns an Hand einiger Beispiele die notwendigen Tools im Java Umfeld ansehen, damit wir für das Semester das Rüstzeug eines Softwareingenieur zur Hand haben: Git, IntelliJ, Google, SO und Java docs. Fehlt noch was?.

  • Klassen und Interfaces (als Wiederholung!) (Slides, Pdf, Skript, Übungen)

    In dieser Session sehen wir uns verschiedene Typen von Klassen an: inner, anonymous, local, und static Klassen. Wann wird was benutzt und welche Sichtbarkeit haben sie? Ausserdem: @FunctionalInterface und Lambda-Expressions.

  • Vererbung (Wiederholung!) (Slides, Skript, Pdf, Übungen)

    Eine weitere Session, die sich mit Klassen beschäftigt. Allerdings mehr aus Sicht der Vererbung (ein wichtiges Konzept der OOP!). Hierzu sehen wir uns final und abstract Classes an, sowie virtuelle Funktionen und defaults. Mit einem ersten Design-Pattern (Decorator) sollte das Thema dann abgerundet sein.

  • Mixins (Teil 1) und Generics (Teil 1) (Slides, Skript, Pdf, Übungen)

    Nach einem kurzen Ausflug zu Mixins, stürzen wir uns natürlich voller Freude in das Thema "Generics". Wie werden diese in Datastrukturen und Algorithmen angewendet.

  • Mixins (Teil 2) und Generics (Teil 2) (Slides, Pdf, Skript, Übungen)

    Mixins zum zweiten und ein paar Sonderfälle bei Generics (Bounds und Wildcards) bestimmen diese Session.

  • Reflection und Annotations (Slides, Pdf, Skript, Übungen)

    Mit dem Reflection API und Annotationen werden wir uns in dieser Session beschäftigen. Das gelingt am Besten an Hand von einigen Beispielen: Unit Tests mit (JUnit5), Serialization mit (gson) und Networking mit (retrofit).

  • Design Pattern (Teil 1) (Slides, Pdf, Skript, Übungen: JavaFX (recommended) or Android (advanced))

    Fun with Pattern! In dieser Session starten wir endlich mit Design-Pattern im Software Engeneering: Composite-, Iterator- und Observer-Pattern (ach ja, und wie kann man damit ein UI implementieren auf Android). Was ist eigentlich MVC/MVVC?

  • Design Pattern, pt. 2 (Slides, Pdf, Skript, Übungen: JavaFX or Android)

    Mehr Pattern: Singleton-, Factory-, Strategy- und Command-Pattern.

  • Design Pattern, pt. 3 (Slides, Pdf, Skript, Übungen: JavaFX, Android)

    Last but not least! Zum Abschluß der Pattern-Reihe: Proxy-, Adapter- und Flyweight-Pattern.

  • Parallel Processing (Teil 1) (Slides, Pdf, Skript, Übungen: JavaFX or Android)

    Parallele Ausführung von Programcode ist ein wichtiges Konzept. In dieser Session steigen wir ein in Threads und parallele Verarbeitung.

  • Parallel Processing (Teil 2) (Slides, Skript, Übungen: Terminal or Android)

    Threads are clunky--- erweiterte Konzepte, wie Future oder Promises werden in dieser Session behandelt.

  • Einführung in die funktionale Programmierung (Slides, Pdf, Skript, Übungen)

    Nachdem wir uns nun fast 3 Semester mit der imperativen und objektorientierten Programmierung beschäftigt haben, verlassen wir nun unsere Komfortzone und schauen uns Konzepte der funktionalen Programmierung an. Natürlich haben wir zunächst ein wenig Spaß mit der Theorie bevor wir uns so tollen Dingen wie filter, map und forEach zu wenden.

  • Functional programming in Java (Slides, Pdf, Skript, Übungen)

    Eine weitere Session zu funktionaler Programmierung. Was ist besonders und wo sind die Grenzen? Warum ist es gerade gar so populär? Ein nette Besonderheit, wie funktionale Programmierung in OO-Sprachen integriert wird, sind natürlich Klassen und Interfaces. Das schauen wir uns an Hand von ´streams´ und wie reduce und collect darauf angewendet wird.

  • Zusammenfassung und Klausurvorbereitung

    Diese Session nutzen wir, um das Semester noch mal grob zu überfliegen und das als Klausurvorbereitung zu nutzen. Sicher eine gute Chance Fragen loszuwerden.

About

Materialien zum Pflichtmodul "Fortgeschrittene Programmierkonzepte" (Programmieren 3)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 52.1%
  • CSS 27.6%
  • C# 10.1%
  • Python 8.0%
  • TeX 1.4%
  • Shell 0.6%
  • Ruby 0.2%