Vorlesung Programmieren 3

Zurück zur Übersicht ...

Titel
Programmieren 3
Title (in english)
Programming 3
Kürzel (Prüfungsamt)
PGR3
Art der Lehrveranstaltung
Vorlesung (Pflichtfach)
Lehrende(r)
Fakultät
Wird gehalten
im Wintersemester
empfohlenes Semester
IN3
Credits
8 CP
Semesterwochenstunden
4 SWS
zugehöriges Praktikum
Leistungsnachweis(e)
SoSe 2012 (IN3, freigegeben am 28.03.2012)
WiSe 2011 (IN3, freigegeben am 18.10.2011)
SoSe 2011 (IN3, freigegeben am 01.04.2011)

Zusammenfassung

Kunden erwarten performante, leicht zu bedienende Lösungen für immer komplexer werdende Aufgaben, wobei die Beschleunigung der Marktzyklen zu einem enormen Zeit- und Erfolgsdruck für viele Software-Projekte führt.

Moderne Konzepte der Softwaretechnik versprechen Abhilfe, führen aber nur dann zum Erfolg, wenn grundlegende, seit Jahrzehnten bekannte Methoden des Software-Baus zum Einsatz kommen. Das zu lösende Problem muss grundsätzlich zuerst verstanden und systematisch analysiert werden, bevor alternative Lösungansätze erarbeitet und deren Machbarkeit ggf. durch Prototypen gezeigt werden kann. In der Regel wird ein Ansatz weiter verfolgt, der schließlich in das endgültige Produkt mündet.
Eine wichtige Aufgabe in diesem Prozess ist die Wahl geeigneter Programmiersprachen, wobei in den einzelnen Phasen des Projekts verschiedene Sprachen zum Einsatz kommen können. Damit ein Entwickler oder Projektleite die "richtige" Sprache für ein Teilproblem wählen kann, sollte er Erfahrungen mit mehreren Sprachen gesammelt haben und einen Überblick über deren Vor- und Nachteile besitzen.

Die Lehrveranstaltung führt Python als Vertreter der objektorientierten Skriptsprachen ein. Die Syntax dieser Sprache ist so einfach und die Erweiterungs-Bibliotheken sind so mächtig, dass sich Entwickler bei der Umsetzung fortgeschrittener Konzepte auf die Aufgabenstellung konzentrieren können, ohne von Inkonsistenzen oder verzwickten Sprach-Konstrukten abgelenkt zu werden.

Im Rahmen der Übungen werden Aufgabenstellungen aus den Bereichen Mathematik und Simulation behandelt, um zentrale Techniken des Software-Baus zu erarbeiten und praktisch anzuwenden.

Ziele

Inhalte

  1. "Efficient Development" -- Ideen und Konzepte
  2. Python - Grundlagen
  3. Python und Mathematik
  4. Software testen mit Python
  5. Parallele Programmierung mit Python
  6. Entwurfsmuster - Umsetzung mit Python
  7. Grafische Benutzerschnittstellen
  8. Python und Qt
  9. Python als "glue language"
  10. Verteilte Anwendungen in heterogenen Systemen

Voraussetzungen

Empfohlene Literatur

  1. A. Downey, J. Elkner, C. Meyers: How to think like a Computer Scientist: Learning with Python
  2. Eric Freeman, Elisabeth Freeman: Entwurfsmuster von Kopf bis Fuß, O'Reilly
  3. Bruce Eckel: Why I love Python
  4. A.M. Kuchling: Python Advocacy HOWTO
  5. Peter Kaiser, Johannes Ernesti: Python - Das umfassende Handbuch, Galileo Computing, Online-Version
  6. Ken Schwaber: Agiles Projektmanagement mit Scrum, Microsoft Press
  7. Steve McConnell: Rapid Development - Taming Wild Software Schedules, Microsoft Press
  8. Steve McConnell: Code Complete - Deutsche Ausgabe der Second Edition, Microsoft Press
  9. Johannes Plötner, Steffen Wendzel: Linux, Galileo Computing, Online-Version
  10. Python-Homepage
  11. Chris Rupp, Stefan Queins, Barbara Zengler: UML 2 Glasklar, Hanser
  12. Mark Summerfield: Rapid GUI Programming with Python and Qt - The definitive Guide to PyQt Programming, Prentice Hall
  13. Michael Weigend: Objektorientierte Programmierung mit Python, mitp
  14. Michael Weigend: Python GE-PACKT, mitp
Die aufgeführten Bücher sind im Labor M3.03 vorhanden.