KIF440:Programmiervorkurs

Aus KIF

Link zum Pad: [1]

Wie ist so der aktuelle Stand, wie macht ihr das, habt ihr etwas derartiges? Beispiele aus den anwesenden Unis:

TU Darmstadt[Bearbeiten]

  • Fand immer eine Woche vor der Ophase (Einführungswoche) statt.
  • Wir bringen den Erstsemestern Java näher, da dieses im ersten Semester eine wichtige Rolle spielt.
  • Aufbau ist grob eine Vorlesung pro Tag und anschließend eine Gruppenübung
  • Zielgruppe: Keine Erfahrung bis wenig Erfahrung in Programmieren
  • Zeitraum war 4 Tage
  • Es steht kein Professor dahinter, komplett Fachschaft
  • Es wird in der Vorlesung bei 0 mit Racket angefangen
  • Danach Java, mit recht schnellem Tempo, viele verpassen Anschluss


TU Dresden[Bearbeiten]

  • seit 5 Jahren von den Studis veranstaltete Programmierkurse
  • freiwilliges Angebot
  • Lehrauftrag liegt bei den Lehrstühlen, wurde aber nicht wahrgenommen -> Jetzt machen wir es
  • über das Semester, jede Woche eine Einheit
  • Kurse mit 1 oder 2 Tutoren und entsprechend 15 oder 30 Teilnehmern
  • werden immer weniger Leute
  • 30 Leute fangen an, 10 sind es am Ende
  • Bieten verschiedene Kurse an (C Anfänger und Fortgeschrittene, Java, C#, Python)
  • Wenn Tutoren selbst Materialien bereitstellen auch andere Kurse (Momentan Fortran und Blender mit Python)
  • Ist ziemlich überlaufen (anfangs)
  • Materialien sind öffentlich über GitHub

Uni Bonn[Bearbeiten]

  • Tutoren werden von der Uni bezahlt
  • Wird von der Uni gemacht (Dozent verantwortlich)
  • War in der letzten Zeit sehr schwer, da die Professur, die sowas machen könnte, fehlt
  • Zielgruppe: wenig bis kein Vorwissen
  • Ist eher eine Nachbereitung/Vorbereitung der ersten Vorlesungswochen -> Hilft später nicht mehr wirklich
  • Planung/Organisation war eher schlecht
  • Ist von der Fachschaft unabhängig

RWTH[Bearbeiten]

  • Es wird im Sommersemester auf jeden Fall angeboten, Wintersemester möglicherweise
  • Vorm SS Pflichtveranstaltung
  • Java
  • Es gibt einen Mathe-Vorkurs (freiwillig) WS wie SS
  • Dieser dient als Vorbereitung auf die Vorlesungen im Sommer (die ohne Wintersemesterstart schwer zu verstehen sind)
  • Präsenzübung als Klausurzulassungsvorraussetzung

Uni Ulm[Bearbeiten]

  • Werden von Studierenden betreut
  • Skript + Übungsblätter und freiwilligen Kurztests
  • direkt im Pool an Rechnern, praxisnah

Uni Regensburg[Bearbeiten]

  • Es ist notwendig Python und C im zweiten Semester zu können
  • Um dieses Wissen zu schaffen bietet die Uni Kurse im WS und Vorkurse in C in der Pause zw. Winter und Sommer an

Uni Frankfurt[Bearbeiten]

  • 3 Tage Aufgaben (Vorlesung + Übung)
  • Vorlesungen stellen die Theorie und Live Coding vor
  • Übungen dienen zur Vertiefung

HPI Potsdam[Bearbeiten]

  • Bieten nicht direkt einen Vorkurs
  • Bieten eine Möglichkeit, dass Studierende bei freiwilligen, von Tutoren betreuten Terminen, an Programmiertutorials arbeiten können
  • erst einmal durchgeführt
  • wurde auf Grund der Einsteigerfrendlichkeit der Vorlesung Programmiertechnik I ins Leben gerufen

Uni Jena[Bearbeiten]

  • Vorkurs in Mathematik
  • Logik, Mengen, etc
  • Vorlesung fängt tief genug an
  • Übungen übers Semester sind Klausurzulassung

HsKA (Hochschule Karlsruhe)[Bearbeiten]

  • viertägiger Programmiervorkurs (kurze Vorlesung anschließend Programmierübungen)
  • Basics in Java, sehr langsam, allerdings auch nur das nötigste
  • Professor mit schlechter Didaktik
  • deswegen Anbieten des Kurses
  • gezahlt von Fakultät, durchgeführt durch Studenten, meist Fachschaftlern
    • super Möglichkeit für Erstiakquise
  • am letzten Abend wird tatsächlich mittlerweile immer eine kleine "Abschlussfeier" gemacht
  • Materialien auf GitHub (siehe Linksammlung unten)

FH Dortmund[Bearbeiten]

  • einwöchiger Vorkurs
  • Zielgruppe Leute ohne Programmiererfahrung
  • Hamstersimulator oder Turtle-Grafik
  • Hamstersimulator basiert auf Java, sehr einfach
  • greift nicht aus der Vorlesung vor
  • Evaluation findet auch statt, mit positiven Ergebnissen
  • viele wissen nicht von den Kursen oder halten sich für zu gut
  • Brückenkurs zwischen WS und SS
  • Von Fachbereich veranstaltet.

Uni Magdeburg[Bearbeiten]

  • von der FS organisiert
  • zweiwöchiger Kurs, Mathe am Morgen, Programmieren am Nachmittag
  • Kleingruppen à 15 Leute
  • Tutorencasting: wer will das überhaupt machen?
  • Grundlagen: „Was ist Eclipse, wie installier ich das, Hello World“
  • Kursteilnehmer machen an den PCs die Übungen
  • wird wohl recht gut angenommen
  • einige bekommen es leider nicht so gut hin

Hochschule Emden Leer[Bearbeiten]

  • zwei Wochen sog. „Mathe 0“ für Inf, ET, …
  • nochmal „Progra 0“ von der HS selbst nicht gern gesehen
  • vormittags Mathe-Vorkurs, nachmittag Freizeit oder Patenprogramm
  • es gab mal „Progra 0“ zwei Nachmittage, war aber eher für ETis
  • war eher Rahmenprogramm, anwesend eher sowieso programmierinteressierte Leute
  • Vorlesung üblich steile Lernkurve

TU Braunschweig[Bearbeiten]

  • Informatik allgemein Vorkurs
  • geht 2 Wochen
  • eher Algorithmik, weniger Programmierung
  • Viel mit Abreitsblättern, aber eher theoretisch
  • Interesse groß, wenige die durchhalten
  • zusätzlich wärend des Semesters eine Art Hilfeangebot für Studenten

LMU:

  • wird gerade ein Vorkurs eingeführt
  • Eher HTML, Python und Linux
  • nicht aus dem ersten Semester vorgreifen
  • komplett von nichts etwas eigenstndiges
  • Soll eher Angst vor Informatik nehmen

Uni Bielefeld[Bearbeiten]

  • 1 Woche Informatikvorkurs & 2 Wochen Mathevorkurs
  • Einführung in die Unisysteme
  • Kleine Einführung in Java
  • kurze Einführung in Latex

Uni Heidelberg[Bearbeiten]

  • 1 Wöchig Programmiervorkurs
  • Grundlagen in C++
  • Lernen mittels Skript + Aufgaben im Skript
  • Tutoren helfen bei Fragen, eher eigenständiges lernen
  • Sollen Studenten auf die Vorlesung vorbereiten

Arbeitet ihr mit einer IDE?[Bearbeiten]

  • Direkt mit Eclipse (mit Einführung), alternativ NetBeans oder IntelliJ
    • Dabei wird viel vorgegeben und erstmal als Gegeben angenommen
    • Komplexe Funktionen ignorieren
    • lernen direkt Debugger und beheben von Fehlern
  • Texteditor
    • weniger Sonderfeatures
    • allerdings fehlt der Debuggeraspekt, der einen wichtigen Schritt bildet beim Programmieren
    • lernen nicht die richtige Verwendung einer IDE
    • Insgesamt eher schlecht
  • Ihr solltet das System verwenden, das ihr am besten versteht, weil ihr so das beste Ergebnis erzielt
  • Ist den Studenten freigestellt
    • Aber woher sollen Studenten wissen welche Vorteile IDEs bieten und welche Nachteile
    • man sollte die Optionen vorstellen
  • Klausuren sind auch Handschriftlich -> keine Einrückung,... sollten auch ohne Features programmieren können
  • Man sollte lernen ohne diese Features programmieren können, aber für den Einstieg eignet sich eine einfache IDE
  • Sollte sich an der Vorlesung orientieren, was nutzt der Prof.
  • Handschriftliches Prog. sollte geübt werden ob mit Hand oder einfachem Texteditor
    • Debuggen kann man auch von Hand (übt nachzuvollziehen, was der Computer macht)
  • Hängt von der Sprache ab, ist Einrückung wichtig? -> ohne IDE vielleicht sinnvoller
  • Alt-F (Automatische Code-Formatieren)
  • Seltsame Einrückung durch IDE stößt darauf, dass der Code Fehler enthält und man nicht da ist, wo man denkt
  • Wichtiger als die Wahl der IDE ist es, zunächst die Denkweise beim Programmieren zu vermitteln
  • Stimme zu, finde halt, dass das Nutzen einer IDE das Reinfinden in die Denkweise durch das automatische formatieren unterstützt

Wie werbt ihr für eure Angebote?[Bearbeiten]

  • zu Beginn in Einführungsveranstaltungen und dessen Übungen
  • an der PC-Pool-Tür
  • Mit der Einschreibung an der Uni, bekommt man eine Hinweismail auf Vorkurs und Ophase
  • Mail(s) an alle Erstis

Was würdet ihr vermeiden?[Bearbeiten]

  • 4 Tage Powerkurs bringt nicht viel, über das Semester ist eine bessere Lösung
  • kommt auf den Ansatz an, wir haben diesen Powerkurs, der kompletten Neulingen das Aufholen etwas erleichtert
  • verschiedene Programmiersprachen (für den Beginn nur eine)
    • Java ist für den Anfang eher ungeeignet, es gibt bessere Sprachen
    • z.b. Skriptsprachen
      • Python
      • Lisp
      • HTML -> man sieht erstmal wie sich die Syntax direkt auf das Programm auswirkt ohne große Algorithmik
      • finde Java, bzw. jede andere starktypisierte Sprache besser, dynamische Typisierung kann mehr verwirren als feste Grenzen
  • Objektorientiert ist für viele Anfgangs einfacher (?)
    • muss sich aber daran orientieren, was im Studium verwendet wird

Was würdet bzw.. wie würdet ihr mit den Studenten machen/arbeiten?[Bearbeiten]

  • zunächst das arbeiten mit Struktogrammen anhand alltäglicher aktionen üben: z.B. Scenarioo über das Schrittweise öffenen einer Türe (Schlüssel Suchen, schlüssel Stecken, Schlüssel drehen, Türoffen? Ja: Nein: .......)
  • Praktische Vorlesung
    • man sitzt direkt mit dem Laptop in der Vorlesung und bekommt Zeit Aufgaben in der Vorlesung zu lösen -> direkt Praxis
      • setzt Laptop vorraus
    • Man sollte mit einem leichtem Programm starten (z.b. Hello World), das geht auch einfach auf Papier, erst danach IDE
    • Verschiedene Schwierigkeiten stellen, sodass jeder eine Herausforderung hat (bis zu einem bestimmen Grad zumindest)
      • gibt den Studenten mit wenig Erfahrung ein echt schlechtes Gefühl
    • Wie fängt man an -> Strukturen!, dafür sind die Sprachen erstmal egal, man nimmt das was in der Vorlesung drankommt
    • Man fängt so simpel wie möglich an und wird mit jedem Tag etwas anspruchsvoller

Findet ihr das System sinnvoll[Bearbeiten]

Ja, da viele Studenten einen solchen Einstieg hilfreich finden Bei vielen steigt die Lernkurve in der Vorlesung rasant, mit solchen Systemen kann man Verständnis schaffen und viele Stundenten kommen besser mit

Welches Ziel habt ihr[Bearbeiten]

  • mehr Studenten auf die Vorlesung vorbereiten
  • eine solide Basis schaffen
  • ihnen Strukturen beizubringen, wie Aufgaben gestrickt sind (Wie geht man allgemein vor)
  • Arbeiten mit Struktrogrammen und Diagrammen
  • Schrittweise Einführung in das "Denken eines Programmierers"
  • Es gibt nicht eine Lösung, gerade bei Programmen
  • Angst vor der Informatik zu nehmen
  • Einfache Strukturen zeigen, nichts zu komplexes
  • "Clean Code", was zeichnet guten Code aus
  • "Effizient an Probleme rangehen"
  • "Erstmal verstehen, was mein Programm eigentlich soll"
  • Kochrezept, Bildliches Vorstellen
  • Austausch zwischen Erstsemestern
    • Gemeinsames Mittagessen
    • Abschlussfeier