KIF455:Git repos für Uni-Projekte

Aus KIF

Git, aka die Lösung all eurer Probleme
Git Repositories für Uni Projekte
(auch: Feedback zu Moodle usw)

Donnerstag, 23. Nov 2017

  • Was ist git?
    • Quellcode unter Versionskontrolle stellen
  • Wozu das?
    • Code von Projekten verwalten


  • Introduction
    • Erfahrungen mit Git?
    • Welche Institutionen providen Repositories?
    • Vorstellungsrunde
      • Heidelberg
        • Keine freien Zugriffe auf Git Repos für Studis
        • Fallback auf Github oder Gitlab (oder selbst hosten)
          • Github hat kostenlose Studentenprogramme
        • Lediglich Fachschaftsintern
      • Frankfurt
        • Keine Git Infrastruktur
          • Programmierprojekte werden durch Moodle abgegeben
          • Soll auf olat abgeändert werden
        • Dropbox zum Teil genutzt
        • offtopic: Nichtprogrammierabgaben teils per Mail, teils per moodle oder Papier (da teilweise verpflichtend handschriftlich wegen "Plagiatsunterdrückung" ;))
      • Saarbrücken
        • in den ersten Programmiervorlesungen: erstes Übungsblatt ist git Lernen mit Textdateien, branches, mergen
        • Fachschaft bietet über redmine oder gitlab kostenlos repos an für Studis
      • .Ilmenau
        • Jede Fachrichtung hat eigenes Gitlab
          • leider dezentral
            • Viele accounts,
            • nicht auf einen blick
          • gelegentlich in-depth Git usage mit Zettelabgabe und Bewertungen
      • Lübeck
        • Redmine für Projekte
        • Gelegentlich öffentliche Github Repos von Professoren freigegeben
      • Bremen
        • Fachbereichinternes Gitlab was ein Mitarbeiter aufgesetzt hat
          • Studenten max 20 Repositories (no hard limit)
        • Abgaben 
      • Gießen
        • Nutzen Moodle für Abgaben
        • Rechenzentrum provided Gitlab für alle Studis
          • No limits for studis
          • "Projektefarm"
            • Gitlab Enterprise
            • Redmine
            • Jenkins
            • Maven
            • Statische Codeanalyse
            • Wiki
        • diverse Veranstaltungen enforceten Nutzung von Git
          • Prüfungsrelevant, Studenten junger Semester wurden ins kalte Wasser geworfen
            • Studenten fühlten sich in freier Entfaltung hinterfragt
              • Man hätte sollen Git motivieren und langsam anlernen
            • "lest euch selbst ein" als Negativbeispiel
        • Man kann git als Möglichkeit nutzen, Plagiarismus vorzubeugen
          • commits sind PGP signed, verpflichtung zur nicht Plagiatur
        • Fehlnutzung von Git
          • Nur Lernerfolgstracking durch Issues, keine erweiterte Collaboration

      • Marburg
        • Ilias vor Git und moodle
          • Wie moodle nur schöner, FOSS
        • Papierlose Abgabe aller nicht-mathematischer Aufgaben
        • Studis haben Dropbox etc. genutzt, um zusammenzuarbeiten
      • Göttingen
        • Universität provided gitlab, welches FSR (mathe und info) für Fachschaftsarbeit nutzen
        • Informatik Fachgruppe betreibt Gitlab auf eigenem Server
          • Potentiell auch offen für Studis, wird aber nicht verwendet
        • Verwendet im Programmierpraktikum Fusion-Forge und SVN
        • Testate werden mit Checksums abgegeben
        • Dateieuploads von Vorlesungen ohne Version control
      • TU Dortmund
        • erste Programmiervorlesung hat eLab arbeit
        • zweite Programmiervorlesung hat Präsentationen
        • Softwarepraktikum lehrt SVN
        • Masterveranstaltung überlässt es Studierenden, sich zu entscheiden (meist Git via Redmine)
        • Dinge, die keiner nutzt:
          • Fachschaften.org provided git repos
          • RBG bietet SVN Repositories (Nur für Studis untereinander nutzbar)
        • Redmine wird von IT Heads provided, jedoch nur für Lehrstühle
      • Karlsruhe (KIT)
        • Zentrales Rechenzentrum provided Gitlab
          • unterstützt Studi Logins
        • Informatikfakultät bietet SVN
        • Nicht primär in Veranstaltungen genutzt
      • Bielefeld
        • Eine Veranstaltung introducet vieles bei der alles auf einmal eingeführt wird
          • git
          • Jenkins
          • Redmine
          • maven
        • Lehrstühle providen gelegentlich gits und Redmines
      • Münster
        • Softwarepraktikum im 3. Semester
          • Git wird benutzt und von Fachbereich angeboten
        • Rechenzentrum bietet Gitlab (noch beta)
        • Nur interne Nutzer möglich, keine Externen
        • Abgaben meist via Moodle
        • Buildbots und CIs bei manchen Lehrstühlen
        • OwnCloud (in grün) in Kollaboration mit anderen Unis angeboten, Dropbox hat jedoch noch Oberhand
        • Projektseminar mit Gitlab und variierender Struktur je nach Veranstalter
      • Bonn
        • Bunte Dienstelandschaft
          • Skeebo als Cloud
          • ECampus, ähnlich Ilias
          • FSR nutzt Git
          • Studis geben Abgaben analog ab
        • Erste Semester advertisen digitale Abgabe (u.A. git)
        • Viele Tutoren wollen/können kein Git nutzen
          • Google Cloud wurde benutzt
        • Drittsemester Vorlesung introducet git
        • Projektgruppen werden Lehrstuhlintern aufgesetzt
      • FH Dortmund
        • Nutzen Ilias spärlich
          • in einer Veranstaltung
        • Jeder Prof hat seine eigene Website und eigenes System
          • teilweise jahrzehnte veraltet
        • Abgaben persönlich, nicht digital
          • immerhin sind Fax appreciated!
        • Git nicht weit verbreitet
      • Hamburg
        • Früher Olat, heute Moodle für Abgaben
        • Viele Eigenkreationen von Profs
        • Studiinterne Git Nutzung
          • Gogs für Git repos
          • Redmine
          • Von Studis für Studis
        • Freiwillige Seminare "How to git", "How to git advanced"
          • Uni: "Wenn ihr wollt, bringst euch selbst bei"
      • Bielefeld #2( merge pls)
        • Skeebo für Mitarbeiter
        • Mathe fak bietet Gitlab(?)
          • admins lesen repositories und prohibiten große binaries
          • Hauptsächlich von mitarbeitern genutzt (studis programmieren in mathe wenig)
      • Darmstadt
        • Fachbereich betreibt transitiven Fork von Redmine
          • wird "rumvererbt" über generationen aber lebendig
        • Auch für andere Fachbereiche bereitgestellt
          • jedoch nur in Collab genutzt
        • Programmierabgaben hauptsächlich in moodle
        • Hat within vergangenen 3 Jahren alte Technik aussortiert und vereinheitlicht
          • Moodle
          • aber gut, dass vereinheitlicht
        • Vorkurs von Fachschaft über Git
        • ab 3(?) Semester in Veranstaltungen zum Thema Softwareengineering / Projektplanung
      • Kaiserslautern
        • Rechenzentrum macht nichts
        • Informatik hat eigenes RZ aufgebaut,
          • provided Gitlab für Studis
            • Eigentlich nur für Uni projekte, aber weiteres gerne tollereiert
            • speicherplatz liberal gehandelt
          • Wird viel genutzt, vorallem von Master Studenten
        • in ersten drei semestern viele papierabgaben
          • Auch ausgedruckter code
        • Git wird introducet in veranstaltung über veweise auf Literatur
        • Lehrstühle haben bereits bestehende Infrastrukturen sind zäh im Umzu
    • Großes Thema:
      • Lehrstühle bestehen auf ihr System (sei es moodle, olat usw) und wollen für Gründe nicht wechseln
        • alt title: "unser system ist blöd und wir wollen wechseln"
        • Zentralität selten gegeben/schwer zu establishen


    • Folgefragen:
      • Wie, wann und wer bringt den Studenten git bei?
        • Durch die erste Vorlesung, die sinnvolle Arbeit mit Git verlangt
        • Studis lehren Studis (z.B. Vorkurs)
          • Vorkurs ist zu früh und überfordernd
            • commandline überfordert
            • clicky-bunty-gui vernachlässigt kernaspekte
          • Vorkurse sollten andere Ziele haben
            • dennoch wird versioning gebraucht und gefordert
        • Orientierungswoche, die git introducet
          • kleinere Gruppen, die Fragen erlaubt
        • Kontroversitäten von Gui vs Commandline
        • Großteil der Unis hat ein Softwarepraktikum
          • braucht git nutzung
          • gruppen mit ~6 leuten
          • ist jedoch häufig erst in einem zu hohen semester
        • Das Hauptproblem schein zu sein, git nicht zu früh, aber auch nicht zu spät zu introducen
          • schwer zu timen
          • Studenten merken manchmal, dass sie git bräuchten, aber wissen nicht, dass es existiert
            • zu früh: studis sehen keinen sinn darin, git zu nutzen
          • Eigenes Git modul scheint vielen zu spezialisiert
            • ECTS sollen sinnvoll verwendet werden, aber ein Kurs nur über git sprengt oft den Rahmen
        • Sinnvolle Commitmessages sind häufig rar
          • How to Write a Git Commit Message: <a href="https://chris.beams.io/posts/git-commit/">https://chris.beams.io/posts/git-commit/</a>
            • persoenliche Abwandlung: <a href="https://gitlab.com/frissdiegurke/oddlog/blob/master/CONTRIBUTING.md#git-commits">https://gitlab.com/frissdiegurke/oddlog/blob/master/CONTRIBUTING.md#git-commits</a>
    • Konzepte der Informatik lehren
      • Veranstaltung, die Basic tools erklärt
      • Nicht nur git lernen, sondern konzepte, wie Versionsverwaltung anhand eines Beispiels zeigen
      • O-Woche könnte git präsentieren und motivieren
    • Meinungsbild:
      • in o-woche introducen: 10
      • pflichtvorlesung "versionsverwaltung": 0
      • in erster programmiervorlesung, optionale weiterführung: 10
        • verpflichtend in großes programmiermodul: 8
        • grundkenntnisse in erster vorlesung, wahlpflicht später mehr: 6
    • Gitlab free vs Enterprise
      • enterprise ist extrem teuer (40 usd/user/year)
        • 200usd/usr/year für 24/7 emergency support, vielleicht aushandelbar
        • korrektur: educational licenses => Studenten zaehlen nicht in user-count
      • gitlab free benötigt einen dedizierten sytsemadministrator



  • Potentielle Folgefragen:
    • Kommandozeile oder git Client
    • wie bekommt man Dozenten dazu, git zu verwenden?
    • Lizenzen