KIF470:Brückenkurs Programmierung

Aus KIF
Version vom 21. September 2019, 18:11 Uhr von Joti (Diskussion | Beiträge) (Streamlining chapter depths)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Ziel

Erfahrungs- und Ideenaustausch zu Organisation von Brückenkursen. Brückenkurse sollen Studienanfängern helfen, schnelleren Einstieg in die jeweiligen Gebiete zu finden. Bisher fehlt ein Brückenkurs für die Informatik und insbesondere zum Programmieren an der TU Dresden.

Welche Programmierspracehn werden wo behandelt?

Göttingen

Haskell, C, Java, Assambler

Hamburg

Haskell, C, C++, Java

Heidelberg

C++, Java, Python

Bamberg

C, Java, HTML

Thübingen

Java, C

Dresden

C, C++, Java, Python, Assambler, Haskell, Proglog

Bisherige Erfahrung

Dresden

  • Brückenkurs Ingeneuwissenschaften
    • Irgendwas mit C, was nur ein Teil des kostet Geld 250€ eigentlichen Kurses ist.
    • Von der Fachschaft organisierte Programmierkurse

Heidelberg

  • Zweiwöchiger Brückenkurs in dem Grundlagen vermittelt werden.
    • ca. 50 Leute in Rechnerpool(s)
    • es wird ein PDF mit Aufgaben und Erklärungne verteilt
    • dieses PDF arbeiten alle Studierenden ab
    • bei Fragen stehen Tutoren zur Verfügugn, die helfen
    • dies ermöglicht das Abreiten im eigenen Tempo
    • Inhalte (benutzt wird C++):
      • Was macht der COmpiler, wie benutze ich ihn?
      • Ausgabe, Funktionen
      • Kontrollstrukturen wie Schleifen, Rekursion
      • Arrays
      • Basics über Shell und Linux
      • KEINE (Shell)-Skripte und Pointer
      • das Angebot richtet sich eher an Matheerstis als an Infos
      • Basics im Umgang mit GDB
    • Bisheriges Feedback:
      • allgemein positiv, da sowohl individuelles Arbeiten, als auch Möglichkeit zu
      • Funtionen sind sehr komplex für Menschen, die nach nie damit zu tun hatten
--> Es dauert in der Regel lange, bis das Konzept druchstiegen und verstanden wird.

Bamberg

  • Hat Programmierkurse (Tutorien) aber keinen Brückenkurs.

Worauf sollte geachtet werden

  • Es sollte eine einheitliche Umgebung verwendet werden, um den Einstieg und dne Support zu vereinfachen.
  • Onlineangebote nur unterstützend einsetzen. Tutorials gibt es genug, Unterstützung dazu aber nicht.
  • Physische Anwesenheit für Fragen. Unterstützt TEambildung, in denen dann zusammen die Probleme verstanden und gelöst werdne können
  • Auf die wichtigen Inhalte reduzieren und viel Zeit zum eigentlichen Ausprobieren und dadurch Lernen lassen.
  • Es muss unbedingt darazf geachtet werden, dass Dozenten nicht den Eindruck erhalten, dass Vorlesungsinhalte vermittlt werden. Der Brückenkurs sollte als das optionale Angebot zum Vereinfachen des Einstiges gesehen und verstanden werden und nicht als Grundlage, auf der man Vorlesunginhalte aufbauen kann.

Mögliche Inhalte

  • Kontrollstrukturen (Schleifen, If, ...)
  • Funktionen, Rekursion
  • Unterschied zwischen Ausgabe und Rückgabe (EVA Prinzip, Ausgabe von der eigentlichen Verabeitung trennen)
  • Wie gehe ich mit dem Compiler um, wie benutze ich ihn, wie reagiere ich auf Fehlermeldungen
  • Datentypen
  • Wichtigkeit von Clean Code und Self explaining Code, Kommentare
-->Hier könnte ein gegenseitiges COdereviewing unter den Kursteilnehmern betrieben werden. Sie versuchen fremden Code zu lesen und erklären, warum sie den Code (nicht) verstehen konnten.
  • shell Grundlagen, man pages

Kann, aber schwer zu verstehen

  • Grundlagen Git
  • Programmierparadigmen (OO, strukturell, ..)

Was kann sonst noch gemacht werden

  • Pairprogramming
Zwei oder mehr Teilnehmer arbeiten zusammen an einer Aufgabe/Problem
  • "Spielaufgaben"
Die Teilnehme bekommen ein fertiges, funktionierendes Programm und die Aufgabe bestimmte Teile zu verändern und mit Parametern zu spielen und das Verhalten zu "erforschen".

Existierendes Material

Es sollten unbedingt Ressourcen unter den Fachschaften geteilt werden. Gerade gutes Lehrmaterial für die Kurse ist schwer zu erstellen. Hier kann und sollte zusammen gearbeitet werden.

Dresden

  • Link zu den Materialien der Programmierkurse des FSR
https://github.com/fsr?utf8=%E2%9C%93&q=lessons&type=&language=