Hausarbeitsvorschläge -- PTT13

Hintergrund

Die Prüfungsordnung gestattet uns für dieses Fach die Verwendung einer alternativen Prüfungsform: Hausarbeit mit Vortrag. (Bei der Wahl dieser Option muss die reguläre Prüfung nicht wahrgenommen werden und die Hausaufgaben als Bestandteil der Zulassungsbedingungen werden nicht verlangt.) Diese Option macht für Studierende Sinn, welche die eher praktischen Inhalte der Veranstaltung (Programmiertechniken und -technologien) im größeren Umfang schon beherrschen und dies belegen können, indem sie semesterbegleitend eine Hausarbeit bearbeiten können. Die Hausarbeiten werden am Anfang des Semesters vereinbart, über das Semester durch R. Lämmel betreut und im Scrum besprochen und nach der Vorlesungszeit mit einem Vortrag abgeschlossen.

Termine

  • 30.04.13: Vereinbarung für Hausarbeit mit R. Lämmel am Ende der Vorlesung.
  • Über das Semester, montags 17.30: Scrum (gelegentliche Teilnahme zur Betreuung).
  • 22.7.-10.08.13: Vortrag der Hausarbeit.

Form

Das verbindende Element ist, Ressourcen und Infrastruktur zum Kurs zu ergänzen, zu warten, und zu erweitern.

Deswegen beschäftigen sich die Projekte mit "101" (http://101companies.org).

Die Hausarbeiten betreffen die Komponenten 101repo, 101worker, oder 101wiki von "101".

Vorkenntnisse zu "101" werden nicht vorausgesetzt.

Jeder Hausarbeit beinhaltete Zielstellungen zur Programmierung sowie zur Dokumentation.

Die Dokumentation hat eine Form, dass sie im wesentlich das Ergebnis der Hausarbeit beschreibt am Ende.

Themenskizzen

Dies ist eine Auswahl.

Weitere Themen können zum Vereinbarungstermin besprochen werden.

Die Themenzuordnung erfolgt auch auf der Basis der Kenntnisse und Interessen der Studierenden.

  • Domain documentation engineering: The systematic discussion of programming techniques and technologies requires code samples, structured documentation, and additional semantic information (metadata). The scope for any effort is typically some domain of programming, design, or technology such as design patterns, XML programming, generic programming, and generative programming. Efforts need be started or continued indeed for several domains to advance "101".
  • Quality assurance for Java projects: There exist various tools which can be used to find "issues" (bugs, smells, anti-patterns, problematic metrics) with software. We would like to set up some of these tools to be applied automatically during nightly build. In fact, this should also be interesting for other languages and platforms (other than Java).
  • Incrementalization of software analysis: When non-trivial software analysis are applied to huge, evolving repositories, then an incremental scheme must be enforced so that all analyses on deltas rather than on the new state of the repository. 101worker is an advanced architecture that uses software analysis on 101repo. 101worker should be revised to become incremental.
  • Guided tours on the web: When navigating web-enabled resources, then such navigation can be captured for the purpose of reproducing all such navigation. Capturing needs to go strictly beyond "screencasts" in that the web browser is actually remote controlled so that all pages and paragraphs are revisited. This idea should be applied to 101wiki.
  • Regression testing for a web-based application: Testing GUI / web applications requires additional methods, when compared to just testing basic functional requirements. We would like to improve regression testing specifically for 101wiki with its non-trivial architecture in terms of distributed services, web servers, custom markup, etc.
  • Minimalistic illustration of an open-source data warehousing technology: Data warehousing goes beyond "basic database programming" in that, for example, data integration across distributed databases is required, data with timestamps is processed, and multi-dimensional aggregation of data is described by queries. Suitable features are to be proposed for the 101companies:System and a showcase implementation is developed.