Das Programmierpraktikum
1. Was ist das?
Das Programmierpraktikum ("ProPra") ist ein Pflichtmodul (5 ECTS) im Studiengang Bachelor Informatik an der Freien Universität Berlin, sowie ein Wahlpflichtmodul in den diversen Informatik-Nebenfach und -Lehramt-Ordnungen (6 oder 9 ECTS).
Im Programmierpraktikum lösen Sie zahlreiche kleine und praktische Lernaufgaben.
Ziel ist es, praktische Kenntnisse und erste Fertigkeiten bei einer Vielzahl von Themen aufzubauen, die im überwiegend theoretischen Universitätsstudium sonst zu kurz kommen, für praktische Softwareentwicklung aber hochwichtig sind.
Eine Besonderheit des ProPra ist ein im Vergleich zu anderen Lehrveranstaltungen hoher Grad an Freiheit:
- Zeiteinteilung in der Arbeitswoche: Sie können ProPra-Aufgaben bearbeiten, wann immer Sie möchten und Zeit haben. Es gibt keine Anwesenheitspflicht.
- Zeiteinteilung im Semester: Es gibt keinen vorgeschriebenen Wochentakt; Sie können in Monaten mit wenig Zeit oder Lust wenig tun und in anderen Monaten viel mehr. Insbesondere können Sie einen großen Teil der Arbeitslast in die vorlesungsfreie Zeit schieben und damit die Vorlesungszeit beim Arbeitsdruck entlasten. (Wenn Sie das sehr ausgeprägt tun, bringt das Kosten im Sinne der Gamification mit sich, siehe unten, weil echte Teamarbeit freie Zeiteinteilung nur in Grenzen erlaubt. Die Kosten sind aber nicht groß.)
- Inhalte-Auswahl: Die können aus einer breiten Palette Themen und Aufgaben auswählen, die Sie am meisten interessieren. Es gibt weit mehr Aufgaben im ProPra als zum Absolvieren nötig sind.
Für besten Lernerfolg sollten Sie so viel wie möglich eng mit einer Partner_in zusammenarbeiten (d.h. zu zweit am selben Rechner oder direkt nebeneinandersitzend). Das ist sehr, sehr wünschenswert; fest vorgeschrieben ist es aber nicht.
2. Was muss ich zur Teilnahme tun?
- Anmeldung im CampusManagement.
Dabei merken, wie viele Leistungspunkte (LP, ECTS) das Modul hat, über das sie das ProPra buchen. Es gibt je nach Studiengang Module mit 5, 6 oder 9 LP. Der Stundenumfang Ihres ProPra ist das 30-fache davon, also 150, 180 oder 270 Stunden.
- Anmeldung im Whiteboard
Beachten der Ankündigungen die dort ggf. gemacht werden.
- Zum Einführungstermin kommen und sich dort auf die Unterschriftenliste eintragen.
Der Einführungstermin ist verbindlich. Wer nicht dort war, kann nicht am ProPra teilnehmen (sondern muss in einem späteren Semester kommen).
Raum und Zeit siehe im Whiteboard.
- Die ProPra-Homepage sorgfältig lesen und verstehen.
Die Adresse der ProPra-Website steht (spätestens kurz nach dem Einführungstermin) im Whiteboard.
- Die Zusatzregeln (siehe unten) lesen und verstehen.
- Loslegen!
3. Regeln und Aufgaben
Die Aufgaben des ProPra und die Verfahrensweisen zur Teilnahme sind auf der Homepage des konkreten ProPra-Exemplars beschrieben, an dem man teilnimmt. Und deren Adresse steht im Whiteboard.
4. Zusatzregeln (Gamification)
Das ProPra selbst ist ein wiederverwendbarer Kurs, deshalb stehen nicht alle relevanten Regelungen direkt auf der ProPra-Website, sondern Einzelheiten der Durchführung werden lokal unterschiedlich festgelegt. Diese Festlegungen finden Sie hier.
Das ProPra soll praktische technische Fertigkeiten vermitteln, wie man sie bei der Softwareentwicklung braucht.
Größere Softwareentwicklung passiert im Team.
Deshalb sind die Zusatzregeln so gefasst, dass das ProPra nebenbei metaphorisch noch einige DOs and DON'ts der Teamarbeit vermittelt, auch wenn Sie die zugehörigen Konzepte erst im Modul "Softwaretechnik" genau kennenlernen und einige der erwähnten technischen Konzepte erst im ProPra selbst.
Für Verhalten, das in einem Softwareteam erwünscht und hilfreich ist, bekommen Sie Zeitgutschriften auf Ihr Zeitkonto.
Für Verhalten, das in einem Softwareteam störend ist, bekommen Sie Zeitabzüge von Ihrem Zeitkonto.
Wenn das Zeitkonto am Ende mindestens so viele Stunden aufweist, wie dem Stundenumfang Ihres ProPra-Moduls entspricht, bekommen Sie dessen Leistungspunkte gutgeschrieben.
4.1 Gutschriften
Normale Aufgaben erledigen
Was? Sie bearbeiten eine Aufgabe X des ProPra, checken die Ergebnisse in Ihr git-Repo ein und geben sie (zusammen mit anderen) bei Ihrer Tutor_in ab.
Wieviel? Die Tutor_in schreibt ihnen den Zeitwert gut, der auf der ProPra-Website für die Aufgabe angegeben ist.
Metapher: Dies ist der Normalmodus der Arbeit im Softwareteam: Sie übernehmen Aufgaben und lösen Sie in brauchbarer Qualität wie vereinbart.
Ist die Qualität nicht genügend, müssen Sie nachbessern. Klappt das mehrmals nicht, übernimmt jemand anderes die Aufgabe [im ProPra: die Aufgabe wird Ihnen endgültig nicht angerechnet].
Gleichmäßige Produktivität
Was? Sie bearbeiten pro Monat mindestens ein Zehntel des Gesamtumfangs Ihres ProPra erfolgreich.
Wieviel? Jedes Mal, wenn das geklappt hat (d.h. dieser Umfang innerhalb des Monats angerechnet wurde), bekommen Sie automatisch 1% des Gesamtumfangs als Bonus angerechnet.
Metapher: Ein Team ist dankbar, wenn die Mitglieder Ihre Leistung verlässlich und gleichmäßig erbringen, statt dass sich Phasen enormer Produktivität mit solchen abwechseln, in denen kaum etwas herauskommt.
4.2 Abzüge
BASIS-LANGSAM
Was? Sie sollen das Basiskapitel des ProPra (Umfang etwa 11 Stunden) binnen 3 Wochen ab dem Starttermin fertig bearbeitet haben.
Das Ereignis BASIS-LANGSAM tritt ein, wenn die Fertigstellung erst später erfolgt.
Wieviel? 1 Stunde Abzug.
Metapher: Ein Team-Neuling sollte seine oder ihre Arbeitsfähigkeit zügig herstellen (darum geht es im Basiskapitel).
Dafür wird eine genügend lange Zeit vereinbart.
Wenn der Neuling diese nicht einhält, wird der Arbeitsfortschritt des Teams gestört, das sich auf steigende Arbeitskapazität eingestellt hatte.
HISTORIE-GESCHROTTET
Was? Das Ereignis HISTORIE-GESCHROTTET tritt jedesmal dann ein, wenn eine Tutor_in (oder der Dozent) nicht erfolgreich 'git pull' machen kann, weil Sie die Historie
Ihres git-Repos (genauer: des 'main'-Zweigs darin) vernichtet (neues Repo angelegt) oder modifiziert haben (z.B. mit 'git push --force').
(Beachten Sie, dass das bei jedem Beteiligten separat und eventuell lange Zeit nach Ihrem Handeln passieren kann; insbesondere im Moment der Schluss-Abgabe.)
Wieviel? 4 Stunden Abzug.
Metapher: In einer echten Teamarbeit ist dieses Ereignis eine mittelschwere Katastrophe: Jedes Teammitglied muss sich auf die neue Historie umstellen
und dabei ggf. mühsam eigene Arbeit retten, die in der eigentlich gültigen Historie enthalten ist, in der neuen jedoch fehlt.
(4 Stunden Abzug sind angesichts dessen eine milde Sanktion.)
VERTRAUEN-VERLETZT
Was? Sie können eine Rückfrage einer Tutor_in zu einer Aufgabe nicht richtig beantworten, die Sie gerade abgeben.
Wieviel? Das 1- bis 5-fache des Zeitwerts der betreffenden Aufgabe wird abgezogen.
In der ersten solchen Abgaberunde das 1-fache, bei nachfolgenden Runden in der Regel das 2-, dann 3-, dann 4- , dann 5-fache.
(Handhabung: Angenommen, sie geben 12 Aufgaben ab. Bei einer davon stellt die Tutor_in eine Rückfrage. Sie können Sie auch mit Nachdenken nicht korrekt beantworten. Eine solche Aufgabe wird natürlich abgelehnt. Dann wird die Tutor_in auch zu anderen abgegebenen Aufgaben eine solche Rückfrage stellen und ggf. meist nach 1-2 weiteren nicht richtig beantworteten die Korrektur abbrechen und die zuvor in dieser Abgaberunde schon akzeptierten Aufgaben auf "nicht kontrolliert" zurückstellen.)
Metapher: Das Team verlässt sich darauf, dass Sie wissen, was Sie tun. Nur so kann man hoffen, die Entwicklung längerfristig stabil zu halten anstatt z.B. eine degenerierende Softwarearchitektur zu bekommen oder eine Vielzahl von Sicherheitslücken oder andere Probleme.
Wenn das Team entdeckt, dass Sie Lösungen benutzen, die Sie selbst nicht richtig verstehen, sinkt sein Vertrauen in Ihre Arbeit.
Gegenseitiges Vertrauen ist in einem modernen Softwareteam aber eine wichtige Ressource für flüssige Zusammenarbeit.
Einmal darf einem neuen Mitglied ein solcher Fall passieren -- nicht super schlimm.
Aber in Folgefällen erodiert das Vertrauen in dieses Teammitglied rapide.
FALSCH-BEHAUPTET
Was? Sie stellen im Zusammenhang mit einer Abgabe eine unzutreffende Faktenbehauptung auf, egal ob ausdrücklich oder implizit.
Wieviel? 2 Stunden Abzug
Metapher: Unzutreffende Aussagen, die eigentlich verlässlich sein müssten, stiften in einem Softwareteam Verwirrung und ziehen Reibungsverluste nach sich.
ZU-GROB
Was? Ihre Tutor_in wird eine Vorgabe formulieren, wie groß das Paket jeweils gleichzeitig einzureichender Aufgaben sein soll
(Beispiel: "mindestens ein Zwanzigstel Ihres Kursumfangs, höchstens ein Fünftel").
Sie machen eine Abgabe, die umfangreicher ist als das Maximum dieser Vorgabe.
(Abgaben, die nur das Basiskapitel betreffen, sind von der Regel ausgenommen.)
Wieviel? ca. 10% des akzeptierten Aufgabenumfangs wird abgezogen.
Metapher: Moderne Softwareentwicklung ist agil. Das bedeutet insbesondere, Arbeit iterativ in genügend kleinen Happen ("Inkremente") immer wieder zu konsolidieren, damit man aus den Ergebnissen lernen kann, um künftige Entwicklungsschritte zu verbessern. Zu große Entwicklungsschritte ohne solche Rückmeldung verschlechtern die Wertschöpfung.
ZU-FEIN
Was? Sie machen eine Abgabe, die weniger umfangreich ist als das Minimum der oben genannten Vorgabe.
Wieviel? 1 Stunde Abzug.
Metapher: Zu feinkörniges Arbeiten erschwert den Überblick und erhöht den Verwaltungsaufwand.
SONSTIGES
Was? Sie tun etwas, das nicht von obiger Liste erfasst ist, aber erkennbar dem Zweck des ProPra heftig zuwiderläuft, sei es für Sie, für die Tutor_in, andere Teilnehmende, den Dozenten, das Institut oder die Universität.
Wieviel? 1 bis 10 Stunden Abzug nach Ermessen der Tutor_in in Absprache mit dem Dozenten.
5. Das zweite Semester
Wenn Sie Ihre Teilnahme nicht im ersten Semester abschließen, darf sie sich auch bis (exakt maximal) zum Ende des nachfolgenden Semesters erstrecken.
Aber Achtung: Sie bleiben in dem Exemplar, das nach Ihrem Startmonat benannt ist, und bleiben insbesondere weiter in der zugehörigen Whiteboard-Site.
Bitte tragen Sie sich
nicht in die Whiteboard-Site des nachfolgenden Kurses ein, denn dort könnten andere Regeln gelten und die dortigen Ankündigungen könnten Sie verwirren.
6. Das Ende: Abschluss des ProPra
Wenn Ihr Zeitkonto genügend gefüllt ist, rufen Sie
sedrila student finish auf und folgen den Anweisungen.
Der Dozent des ProPra ist Lutz Prechelt.
Viel Spaß!
7. Erneute Teilnahme
Wenn Sie aus irgendwelchen Gründen das ProPra nach einem Jahr nicht erfolgreich abgeschlossen haben und an einem neuen
ProPra frisch teilnehmen, gilt folgendes:
- Bitte neu im CM und im Whiteboard anmelden und erneut zum Einführungstermin kommen.
- Falls Sie keine Partner_in mehr haben, aber gern eine hätten, ist der Einführungstermin dafür eine Gelegenheit. Empfohlen ist es zwar nicht, aber: Nötigenfalls dürfen Sie auch allein antreten.
- Neues Repo anlegen, wie in der entsprechenden Aufgabe beschrieben.
- Sie müssen Aufgaben, für die sie schon einmal Lösungen erarbeitet hatten (egal ob eingereicht oder nicht und akzeptiert oder nicht), nicht wieder bei Null anfangen, sondern:
Gleichen Sie die aktuelle Aufgabe X (die sich geändert haben könnte) mit Ihrer vorhandenen Lösung zur früheren Aufgabe X ab und reichen Sie die alte oder eine ggf. entsprechend angepasste modifizierte Lösung neu bei Ihrer Tutor_in im neuen ProPra ein.
- Achtung: Auch bei unveränderter Aufgabe kann es passieren, dass eine damals akzeptierte Lösung nun nicht akzeptiert wird.