Bearbeiten von „KIF460:Wie lernt man Programmieren (sinnvoll, effizient) ? (Austausch, Brainstorming)

Aus KIF
Warnung: Du bist nicht angemeldet. Deine IP-Adresse wird bei Bearbeitungen öffentlich sichtbar. Melde dich an oder erstelle ein Benutzerkonto, damit Bearbeitungen deinem Benutzernamen zugeordnet werden. Ein eigenes Benutzerkonto hat eine ganze Reihe von Vorteilen.

Die Bearbeitung kann rückgängig gemacht werden. Bitte prüfe den Vergleich unten, um sicherzustellen, dass du dies tun möchtest, und veröffentliche dann unten deine Änderungen, um die Bearbeitung rückgängig zu machen.

Aktuelle Version Dein Text
Zeile 1: Zeile 1:
== Programmieren lernen ==
# Programmieren lernen


=== Beispiele ===
## Beispiele


* TU Darmstadt:
* TU Darmstadt:
** Programmiervorkurs (1 Woche vor Semester)
    * Programmiervorkurs (1 Woche vor Semester)
*** reines Programmieren (Java, da in Vorlesungen verwendet)
        * reines Programmieren (Java, da in Vorlesungen verwendet)
*** Computersysteme in der Uni verwenden
        * Computersysteme in der Uni verwenden
*** ohne Vorkenntnisse
        * ohne Vorkenntnisse
*** Schematisches ist ein Wenig enthalten
        * Schematisches ist ein Wenig enthalten
**** Wird in der Vorlesung ausfürlich genug behandelt
            * Wird in der Vorlesung ausfürlich genug behandelt
** Java & Racket im 1. Semester und Java weiterhin im 2.
    * Java & Racket im 1. Semester und Java weiterhin im 2.
** bis ins 3. Semester in Uebungen enthalten
    * bis ins 3. Semester in Uebungen enthalten
** 4. Semester Programiersprachen werden  
    * 4. Semester Programiersprachen werden  
 
* TU Dortmund:
* TU Dortmund:
** Programmiervorkurs (1 Monat vor Semester)
    * Programmiervorkurs (1 Monat vor Semester)
*** Auch für Studierende mit Vorkenntnissen geeignet
        * Auch für Studierende mit Vorkenntnissen geeignet
*** Es wird auf wenigstem Vorwissen aufgebaut
        * Es wird auf wenigstem Vorwissen aufgebaut
**** schnelles Tempo
            * schnelles Tempo
**** Fortgeschrittene helfen Anderen
            * Fortgeschrittene helfen Anderen
*** Einschraenkung auf basis Befehlssatz, erweiterte Befehle nachbauen
        * Einschraenkung auf basis Befehlssatz, erweiterte Befehle nachbauen
** Caffeine & Code
    * Caffeine & Code
*** gegen Ende des Semesters / Anfang der Semesterferien
        * gegen Ende des Semesters / Anfang der Semesterferien
*** Tutoren von Veranstaltungen bieten privat selbstgestellte Zusatzaufgaben an
        * Tutoren von Veranstaltungen bieten privat selbstgestellte Zusatzaufgaben an
*** in großer Runde
        * in großer Runde
*** quasi private Klausurvorbereitung
        * quasi private Klausurvorbereitung
** Vorlesungen
    * Vorlesungen
** 1. S: typisch Java einstieg
    * 1. S: typisch Java einstieg
** 2. S: Algorithmik realisieren
    * 2. S: Algorithmik realisieren
** 3. S: Softwaretechnik (UML, ...)
    * 3. S: Softwaretechnik (UML, ...)
** 4. S: Softwarepraktikum (Projektgruppen, Selbststaendig, ...)
    * 4. S: Softwarepraktikum (Projektgruppen, Selbststaendig, ...)
** 5. S+: Wahlpflicht Softwareentwicklungs-Vorlesungen
    * 5. S+: Wahlpflicht Softwareentwicklungs-Vorlesungen
** 30% nur Programmieren, Algorithmik und Datenstrukturen (Java, C, Haskell)
    * 30% nur Programmieren, Algorithmik und Datenstrukturen (Java, C, Haskell)
* Kiel:
* Kiel:
** Aehnlich zu TU Dortmund
    * Aehnlich zu TU Dortmund
** Sozialproblematik wird mit Bonusaufgaben angegangen
    * Sozialproblematik wird mit Bonusaufgaben angegangen
** Programming challenges kurs von Fachschaft ausgehend
    * Programming challenges kurs von Fachschaft ausgehend
*** Raetselaufgaben mit grossen Eingaben
        * Raetselaufgaben mit grossen Eingaben
*** Teamarbeit
        * Teamarbeit
*** 1.-5. Fachsemester empfohlen
        * 1.-5. Fachsemester empfohlen
*** zum Spass, nicht pflicht
        * zum Spass, nicht pflicht
** 1. Semester: OOP (Java + Konzepte)
    * 1. Semester: OOP (Java + Konzepte)
** 2. Semester: Betriebs-/Kommunikationssysteme (ein wenig C)
    * 2. Semester: Betriebs-/Kommunikationssysteme (ein wenig C)
** 2. Semester: (Algorithmen in Java Umsetzen)
    * 2. Semester: (Algorithmen in Java Umsetzen)
** 3. Semester: Java Nebenlaeufigkeit + Generics
    * 3. Semester: Java Nebenlaeufigkeit + Generics
** 3. : Prolog
    * 3. : Prolog
** 4. : Softwaretechnik
    * 4. : Softwaretechnik
** weiter nicht bekannt
    * weiter nicht bekannt
* HU Berlin:
* HU Berlin:
** 1 Modul 1. Semester
    * 1 Modul 1. Semester
*** Code wird vorgelesen
        * Code wird vorgelesen
*** Begleitend entsprechende Uebungen
        * Begleitend entsprechende Uebungen
* Tuebingen:
* Tuebingen:
** 1. S: OOP
    * 1. S: OOP
** 2. S: Prozedurell (Racket)
    * 2. S: Prozedurell (Racket)
** Nichts weiter bis Projektarbeiten
    * Nichts weiter bis Projektarbeiten
*** dort *koennen* ca. 1 bis 2 pro 10er gruppe "programmieren"
        * dort *koennen* ca. 1 bis 2 pro 10er gruppe "programmieren"
* Goettingen:
* Goettingen:
** 1. S: Java
    * 1. S: Java
** 1.5 S: C-Kurs
    * 1.5 S: C-Kurs
** 2. S: Haskell und Assembler
    * 2. S: Haskell und Assembler
** 2. S: Gruppenarbeit Java
    * 2. S: Gruppenarbeit Java
* Heidelberg:
* Heidelberg:
** Vorkurs
    * Vorkurs
*** begrenzt viele Plaetze (50)
        * begrenzt viele Plaetze (50)
*** C++
        * C++
*** Skript durcharbeiten mit Hilfe vor Ort
        * Skript durcharbeiten mit Hilfe vor Ort
*** breit gefaecherte Durcharbeitungsquote
        * breit gefaecherte Durcharbeitungsquote
** 1. S: C++ in 2 Modulen (Vorlesung + Uebung / Kurs mit live-Uebung)
    * 1. S: C++ in 2 Modulen (Vorlesung + Uebung / Kurs mit live-Uebung)
** 2. S: Algorithmen und Datenstrukturen (Python)
    * 2. S: Algorithmen und Datenstrukturen (Python)
** allgemein Veranstaltungen mit C++/Python ein Wenig
    * allgemein Veranstaltungen mit C++/Python ein Wenig
* HSK:
* HSK:
** 1. S: Clicky Bunty (Lego Mindstorms)
    * 1. S: Clicky Bunty (Lego Mindstorms)
** 2. S: Java (langsames tempo)
    * 2. S: Java (langsames tempo)
** Theorie und Praxis laufen Zeitlich sehr auseinander
    * Theorie und Praxis laufen Zeitlich sehr auseinander
*** Thematisch auch, Zeitlich ist groesseres Problem
        * Thematisch auch, Zeitlich ist groesseres Problem
*** Mit Prof muss darueber gesprochen werden
        * Mit Prof muss darueber gesprochen werden
**** (Gespräche werden aktuel begonnen)
            * (Gespräche werden aktuel begonnen)
* TU Dresden:
* TU Dresden:
** 1. S: Lego Mindstorms + Python
    * 1. S: Lego Mindstorms + Python
** C, Python, Java wie bei Anderen
    * C, Python, Java wie bei Anderen
** Diverse Programmierkurse von Fachschaft ausgehend
    * Diverse Programmierkurse von Fachschaft ausgehend
*** keine Pflichtveranstaltung, wird jedoch so wahrgenomen
        * keine Pflichtveranstaltung, wird jedoch so wahrgenomen
*** nicht zwangslaeufig fuer Vorlesung benoetigt
        * nicht zwangslaeufig fuer Vorlesung benoetigt
* Emden:
* Emden:
** 1. S: kein Programmieren
    * 1. S: kein Programmieren
** 2. S: Verzweiflung
    * 2. S: Verzweiflung


== Probleme / Loesungen ==
## Probleme / Loesungen


Ausstehende Fragen:
Ausstehende Fragen:
Zeile 97: Zeile 96:
* Best practices / Coding conventions (in welchem Rahmen?)
* Best practices / Coding conventions (in welchem Rahmen?)
* Ziel?
* Ziel?
** Spass?
    * Spass?
** Vorbereitung Studium?
    * Vorbereitung Studium?
** Freizeit-Motivation?
    * Freizeit-Motivation?
* Spannende Beispiele?
* Spannende Beispiele?
** nicht nur langweiliger Pytagoras
    * nicht nur langweiliger Pytagoras


== Meinungen ==
## Meinungen


* Nur Folien statt ausprobieren ist nicht zu empfehlen
* Nur Folien statt ausprobieren ist nicht zu empfehlen
** => Live-Coding
    * => Live-Coding
*** grosse Probleme bei Anderen, da Prof zu schnell und Anfaenger*innen kommen nicht mit ("keine Chance")
        * grosse Probleme bei Anderen, da Prof zu schnell und Anfaenger*innen kommen nicht mit ("keine Chance")
* Abstraktes Prinzip lernen ist schwierig
* Abstraktes Prinzip lernen ist schwierig
** Algorithmen + Datenstrukturen Modul ist sehr hilfreich
    * Algorithmen + Datenstrukturen Modul ist sehr hilfreich
*** Problemstellung
        * Problemstellung
*** Algorithmus vorstellen
        * Algorithmus vorstellen
*** Loesung selbsstaendig
        * Loesung selbsstaendig
**** Problem wird erkannt
            * Problem wird erkannt
**** Algorithmen zusammensetzen erforderlich
            * Algorithmen zusammensetzen erforderlich
**** "Baukasten" von Algorithmen
            * "Baukasten" von Algorithmen
** Darmstadt Vorkurs
    * Darmstadt Vorkurs
*** Anfang: Was ist programmieren Einfuehrung
        * Anfang: Was ist programmieren Einfuehrung
*** Beispiel: Kochrezept
        * Beispiel: Kochrezept
**** Anweisungsschreibweise
            * Anweisungsschreibweise
***** 1. Kartoffeln schneiden
                * 1. Kartoffeln schneiden
***** 2. Kartoffeln anbraten
                * 2. Kartoffeln anbraten
***** 3. ...
                * 3. ...
*** Fuer Schulklassen:
        * Fuer Schulklassen:
**** 2 Personen teams
            * 2 Personen teams
**** Aufgabe: "Druecke den Lichtschalter"
                * Aufgabe: "Druecke den Lichtschalter"
**** 2. Person muss in Teilanweisungen exakt unterteilen
                * 2. Person muss in Teilanweisungen exakt unterteilen
***** "Hebe den Arm"
                    * "Hebe den Arm"
***** ...
                    * ...
** Meinungsbild "Ist Unterteilung in Einzelanweisungen hilfreich?"
    * Meinungsbild "Ist Unterteilung in Einzelanweisungen hilfreich?"
*** Hilft nicht jedem
        * Hilft nicht jedem
**** eher labyrinth algorithmisch loesen (java-kara like)
            * eher labyrinth algorithmisch loesen (java-kara like)
*** Anderen hilft es
        * Anderen hilft es
**** gerade bei niedrigem Wissensstand mit computern
            * gerade bei niedrigem Wissensstand mit computern
*** Neukombination von elementaren Bestandteilen ist essentiell zu Lernen
        * Neukombination von elementaren Bestandteilen ist essentiell zu Lernen
** Java-Kara als Beispiel
    * Java-Kara als Beispiel
*** "Zum Kleeblatt laufen" mit Kochrezeptsystem erklaeren
        * "Zum Kleeblatt laufen" mit Kochrezeptsystem erklaeren
** 2 geschachtelte Schleifen als Einstiegsaufgabe schon schwierig
    * 2 geschachtelte Schleifen als Einstiegsaufgabe schon schwierig
*** klein anfangen "wie gebe ich x aus"
        * klein anfangen "wie gebe ich x aus"
* Praxis / Theorie
* Praxis / Theorie
** 3 Mal snake implementieren
    * 3 Mal snake implementieren
*** mit Array
        * mit Array
*** mit Liste
        * mit Liste
*** mit OOP
        * mit OOP
*** positive Erfahrung
        * positive Erfahrung
**** Es gibt nicht nur einen Weg zur Lösung
            * Es gibt nicht nur einen Weg zur Lösung
**** Bausteine kennengelernt
            * Bausteine kennengelernt
***** koennen verschieden zusammengefuegt die gleiche Aufgabe loesen
                * koennen verschieden zusammengefuegt die gleiche Aufgabe loesen


* Beispiel Kiel Haskell Vorlesung
* Beispiel Kiel Haskell Vorlesung
** grossteil Sprachelemente kennenlernen
    * grossteil Sprachelemente kennenlernen
** es werden nur Methoden benutzen, welche auch selber implementiert werden können
    * es werden nur Methoden benutzen, welche auch selber implementiert werden können
** aufteilung auf
    * aufteilung auf
*** Vorlesung
        * Vorlesung
*** Uebung
        * Uebung
*** Testat
        * Testat
* Meinung: Von Hand auf Papier programmieren ist nicht effektiv zum Lernen
* Meinung: Von Hand auf Papier programmieren ist nicht effektiv zum Lernen
** Grund: Leute, die nur am Rechner programmieren greifen auf IDE funktionen zurueck
    * Grund: Leute, die nur am Rechner programmieren greifen auf IDE funktionen zurueck
*** => fallen in (nicht E-) Klausur durch
        * => fallen in (nicht E-) Klausur durch
** Goettingen
    * Goettingen
*** in bis zu 5 Kohorten, genuegend Computer vorhanden fuer E-Klausur
        * in bis zu 5 Kohorten, genuegend Computer vorhanden fuer E-Klausur
*** paar Ersties installieren IDE trotz Abraten
        * paar Ersties installieren IDE trotz Abraten
*** Vorteil von Start am PC: Als Anfaenger*innen schnell Erfolgserlebnisse
        * Vorteil von Start am PC: Als Anfaenger*innen schnell Erfolgserlebnisse
* Meinung: Mit IDE beschaeftigen ist Sinnvoll
* Meinung: Mit IDE beschaeftigen ist Sinnvoll
** hirzu giebt es gemischte meinungen.
    * hirzu giebt es gemischte meinungen.


=== Welche Sprache? ===
## Welche Sprache?


* Wurde in vielen AKs bereits ausgiebig besprochen
* Wurde in vielen AKs bereits ausgiebig besprochen
Zeile 172: Zeile 171:




=== Coding conventions ===
## Coding conventions


* Meinung:
* Meinung:
** Anfangen mit schlecht Formatierten und Kommentierten Code
    * Anfangen mit schlecht Formatierten und Kommentierten Code
** Spaeter verbessern
    * Spaeter verbessern
* Gegenmeinung:
* Gegenmeinung:
** Am Anfang immerhin erwahnen, nicht durchzwingen, aber erwaehnen
    * Am Anfang immerhin erwahnen, nicht durchzwingen, aber erwaehnen
*** "So macht man einen Kommentar"
        * "So macht man einen Kommentar"
*** Kommentare sind Sinnvoll
        * Kommentare sind Sinnvoll
*** Variablennamen sind wichtig
        * Variablennamen sind wichtig
*** ...
        * ...
* Aufgabenstellung enthalten "Alle funktionen muessen kommentiert werden"
* Aufgabenstellung enthalten "Alle funktionen muessen kommentiert werden"
** Bei nicht dokumentierten funktionen gibt es 0 Punkte
    * Bei nicht dokumentierten funktionen gibt es 0 Punkte
** Es wird als Sinnvoller erachtet, conventions von vornhinein zu lernen
    * Es wird als Sinnvoller erachtet, conventions von vornhinein zu lernen
* Nutzt guidelines nach eigener Auswahl, aber einheitlich
* Nutzt guidelines nach eigener Auswahl, aber einheitlich
* Vorlesung beinhaltet haeufig code quality Bemerkungen
* Vorlesung beinhaltet haeufig code quality Bemerkungen
** ab 2. Vorlesung wird code quality in Uebungspunkte einbezogen
    * ab 2. Vorlesung wird code quality in Uebungspunkte einbezogen
* Meinung: Selbsterkenntnis schwierig fuer Korrektur
* Meinung: Selbsterkenntnis schwierig fuer Korrektur
** 1. S Helfen ist schwieriger bei geringer code quality
    * 1. S Helfen ist schwieriger bei geringer code quality
*** Unnoetige Arbeit
        * Unnoetige Arbeit
*** => Am Anfang richtige Grundzuege beibringen ist Sinnvoller
        * => Am Anfang richtige Grundzuege beibringen ist Sinnvoller
* Viel manuelle Auswertung bei anwesenden Hochschulen, bei einigen automatisch, auch mischungen existieren
* Viel manuelle Auswertung bei anwesenden Hochschulen, bei einigen automatisch, auch mischungen existieren
** Wenn Tutor bei Korrektur nicht durchsteigt gibt es 0 Punkte
    * Wenn Tutor bei Korrektur nicht durchsteigt gibt es 0 Punkte
** Testate
    * Testate
*** => Tutor muss nicht selbst den code verstehen
        * => Tutor muss nicht selbst den code verstehen
*** Kandidat*inn muss Code selbst erklären
        * Kandidat*inn muss Code selbst erklären
*** Hat Kandidat*inn seinen Code "selbst geschrieben"/verstanden
        * Hat Kandidat*inn seinen Code "selbst geschrieben"/verstanden
* Prof: "Bestanden."
* Prof: "Bestanden."
** ohne feedback, ohne nachfragen, einfach draufschauen
    * ohne feedback, ohne nachfragen, einfach draufschauen






== Unit Tests automatisch ==
## Unit Tests automatisch


* Fall A: sehr gut, da instant feedback und gute Rueckmeldung
* Fall A: sehr gut, da instant feedback und gute Rueckmeldung
* Fall B: schlecht, falls nur einmalige Abgabe und intransparente tests
* Fall B: schlecht, falls nur einmalige Abgabe und intransparente tests
* Fall C: 3 Versuche
* Fall C: 3 Versuche
** mit Rueckmeldung
    * mit Rueckmeldung
** bei 3 Fehlfaellen manuelle ueberpruefung mit Teilpunkten
    * bei 3 Fehlfaellen manuelle ueberpruefung mit Teilpunkten
** Zeitbeschraenkt
    * Zeitbeschraenkt
** Vorgehende uebungen unbegrenzt
    * Vorgehende uebungen unbegrenzt
* Fall D: Oeffentliche und private tests
* Fall D: Oeffentliche und private tests


* Fall C wird allgemein nicht gut angesehen
* Fall C wird allgemein nicht gut angesehen
** zu hoher Druck fuer Studierende
    * zu hoher Druck fuer Studierende
** mehrfaches Hochladen besser, als automatische Sperre
    * mehrfaches Hochladen besser, als automatische Sperre
** Schafft aber wohl eine geringere Durchfallquote (da als Klausurzulasung nötig)
    * Schafft aber wohl eine geringere Durchfallquote (da als Klausurzulasung nötig)
* Compileprobleme bei Abgabe sind problematisch
* Compileprobleme bei Abgabe sind problematisch
** imports
    * imports
** Systemabhaengige Fehler
    * Systemabhaengige Fehler
** ab 2. Semester 0 Punkte bei fehlschlagender Kompilation
    * ab 2. Semester 0 Punkte bei fehlschlagender Kompilation


== Fehlermeldungen - Wie gehte ich damit um? ==
## Fehlermeldungen - Wie gehte ich damit um?


* 1. Live-coding im Vorkurs:
* 1. Live-coding im Vorkurs:
** befehl absichtlich Falsch schreiben
    * befehl absichtlich Falsch schreiben
** "was denkt ihr passiert?"
    * "was denkt ihr passiert?"
** ausfuehren => Fehlermeldung
    * ausfuehren => Fehlermeldung
** Aufbau von Fehlermeldung erklaeren
    * Aufbau von Fehlermeldung erklaeren
** Exkurs Fehlermeldungstypen
    * Exkurs Fehlermeldungstypen
*** Ausfuehren macht nichts kaputt, keine Angst!
        * Ausfuehren macht nichts kaputt, keine Angst!
* Testen von Abgaben, bei Fehlern darauf eingehen
* Testen von Abgaben, bei Fehlern darauf eingehen
** wie gibt man Rueckmeldung?
    * wie gibt man Rueckmeldung?
*** strittig
        * strittig
* Musterloesungen Sinnvoll?
* Musterloesungen Sinnvoll?
* An HS mit IDE (Eclipse) wird funktion von IDE verwendet, um Fehler zu beheben
* An HS mit IDE (Eclipse) wird funktion von IDE verwendet, um Fehler zu beheben
* 1. + 2. Vorlesung: Helpdesk
* 1. + 2. Vorlesung: Helpdesk
** Tutor fuer Problemfragen bzgl. Fehler (Stacktraces, ...)
    * Tutor fuer Problemfragen bzgl. Fehler (Stacktraces, ...)
** Tutoren bieten bereitwillig Hilfe an (Sprechstunden)
    * Tutoren bieten bereitwillig Hilfe an (Sprechstunden)
* Programmierkurse
* Programmierkurse
** Probleme mit Fehlermeldungen wegen anderen Begrifflichkeiten in Vorlesung
    * Probleme mit Fehlermeldungen wegen anderen Begrifflichkeiten in Vorlesung
** Fachbegriffe unterscheiden sich von Professor*in zu Professor*in
    * Fachbegriffe unterscheiden sich von Professor*in zu Professor*in
* Viele Begriffe aus der Informatik sind nicht allen bekannt
* Viele Begriffe aus der Informatik sind nicht allen bekannt
** aufpassen
    * aufpassen
** ermutigen zu Nachfragen
    * ermutigen zu Nachfragen
* Prof hat Schwierigkeiten, Programmierkompetenzen einzuschaetzen
* Prof hat Schwierigkeiten, Programmierkompetenzen einzuschaetzen
** zu schnell ueber LinkedList, ...
    * zu schnell ueber LinkedList, ...
** auch wenn leicht erscheint kann Aufgabe sehr schwierig sein
    * auch wenn leicht erscheint kann Aufgabe sehr schwierig sein


== Fehlgeleitete Professoren==
## Fehlgeleitete Professoren


* Fall A: 1., 2. S (Jena):
* Fall A: 1., 2. S (Jena):
** 1. S: C
    * 1. S: C
** 2. S: Java
    * 2. S: Java
** Vorlesung mit Folien
    * Vorlesung mit Folien
*** formale Anschauung, sehr abstrakt
        * formale Anschauung, sehr abstrakt
*** keine Beispiele
        * keine Beispiele
*** kein live coding
        * kein live coding
** Pro Woche mind. 4 Uebungsserien
    * Pro Woche mind. 4 Uebungsserien
*** Pflichtabgaben
        * Pflichtabgaben
*** Pruefungszulassung durch Uebungen
        * Pruefungszulassung durch Uebungen
*** ~8% Klausur pro Woche durch Uebungspunkte
        * ~8% Klausur pro Woche durch Uebungspunkte
** Problematisch fuer Programmieranfaenger*innen, da schon erste Uebung zur Klausur gehoert
    * Problematisch fuer Programmieranfaenger*innen, da schon erste Uebung zur Klausur gehoert
*** ca. 10h Aufwand pro Uebungsserie fuer Anfaenger*innen
        * ca. 10h Aufwand pro Uebungsserie fuer Anfaenger*innen
*** Testate und Kurzklausren zusaetzlich
        * Testate und Kurzklausren zusaetzlich
*** zu wenig Zeit am Tag
        * zu wenig Zeit am Tag
** mit Prof geredet
    * mit Prof geredet
*** Problem besteht seit Jahren
        * Problem besteht seit Jahren
*** Studierende merken, dass Vorlesung ihnen nichts bringt
        * Studierende merken, dass Vorlesung ihnen nichts bringt
**** gehen ggf. nichtmehr zu Vorlesung und lernen sebststaendig
            * gehen ggf. nichtmehr zu Vorlesung und lernen sebststaendig
*** Professor merkt, dass Vorlesung sich leert
        * Professor merkt, dass Vorlesung sich leert
*** interpretiert als Erfolg seiner im Vorraus hochgeladenen Folien
            * interpretiert als Erfolg seiner im Vorraus hochgeladenen Folien
*** Meinung: Es sollte immer einen Mehrwert haben in der Vorlesung zu sein
        * Meinung: Es sollte immer einen Mehrwert haben in der Vorlesung zu sein
* Fall B: Professor*in bringt getrennt Aufgaben fuer Studierende mit Vorkenntnissen
* Fall B: Professor*in bringt getrennt Aufgaben fuer Studierende mit Vorkenntnissen
** gaben Zusatzpunkte fuer Klausur
    * gaben Zusatzpunkte fuer Klausur
** dadurch bevorzugung von Studierenden mit Vorkentnissen
    * dadurch bevorzugung von Studierenden mit Vorkentnissen
** direkt geblockt vom Dekan
    * direkt geblockt vom Dekan
* Fall C: Mindstorm
* Fall C: Mindstorm
** Vorlesung: Hier habt ihr das Programm, hier die Blaetter, macht mal.
    * Vorlesung: Hier habt ihr das Programm, hier die Blaetter, macht mal.
** Profesor*in musste mild korrigieren, um das Problem zu umgehen
    * Profesor*in musste mild korrigieren, um das Problem zu umgehen
* Fall D: Darmstadt:
* Fall D: Darmstadt:
** neuer Professor hat im "rechtlichen Rahmen" ein programm aufgebaut
    * neuer Professor hat im "rechtlichen Rahmen" ein programm aufgebaut
*** hat Fachschaft und Studierende abgeblockt "nur weil ich es anders mache"
        * hat Fachschaft und Studierende abgeblockt "nur weil ich es anders mache"
*** Gespräche haben geholfen
        * Gespräche haben geholfen


==== Herangehensweisen an Professor*innen ====
### Herangehensweisen an Professor*innen


* Fall C
* Fall C
** Email mit details und klagen
    * Email mit details und klagen
** Prof hat sich schliesslich entschuldigt
    * Prof hat sich schliesslich entschuldigt
* Als Fachschaft an Prof herangehen
* Als Fachschaft an Prof herangehen
** nicht als Studierende, sondern als Repraesentant
    * nicht als Studierende, sondern als Repraesentant
*** Vertreter*innen statt Individuen
        * Vertreter*innen statt Individuen
*** => braucht Fachschaft, die sich fuer Studierende einsetzt und "nicht nur am Saufen interessiert ist"
        * => braucht Fachschaft, die sich fuer Studierende einsetzt und "nicht nur am Saufen interessiert ist"
* Fall B
* Fall B
** Klausur musste stark runtergesetzt werden
    * Klausur musste stark runtergesetzt werden
** Es haette proaktiver gehandelt werden muessen
    * Es haette proaktiver gehandelt werden muessen
* Fall D
* Fall D
** ein Student ist nun Hilfskraft und schreibt das Skript
    * ein Student ist nun Hilfskraft und schreibt das Skript
* Mehrfach aufgetreten, dass Studierende selbst Skript schreiben und in Vorlesungen mitwirken
* Mehrfach aufgetreten, dass Studierende selbst Skript schreiben und in Vorlesungen mitwirken
* Abblocken von Professor*innen ist von Fall zu Fall extrem
* Abblocken von Professor*innen ist von Fall zu Fall extrem
** Auch andere Organisationen (Hilfsgruppen, etc.) moeglich von Fachschaft ausgehend
    * Auch andere Organisationen (Hilfsgruppen, etc.) moeglich von Fachschaft ausgehend
** Fallstudie: Angebot zum Bessern
    * Fallstudie: Angebot zum Bessern
*** Protokolliertes Gespraech
        * Protokolliertes Gespraech
*** Regelmaessige Ruecksprachen
        * Regelmaessige Ruecksprachen
*** => Auf Dauer hat sich die Situation gebessert
        * => Auf Dauer hat sich die Situation gebessert
*** Evaluation der Vorlesung mit Ampel system zur Verstaendlichkeit
        * Evaluation der Vorlesung mit Ampel system zur Verstaendlichkeit
**** explizit am Ende eines Kapitels
            * explizit am Ende eines Kapitels
**** Ampel gruen => melden
            * Ampel gruen => melden
**** Ampel gelb => melden
            * Ampel gelb => melden
**** Ampel rot => melden
            * Ampel rot => melden
**** Alternativ mit Link (anonymisiert)
            * Alternativ mit Link (anonymisiert)
***** ggf. geringere Motivation?
                * ggf. geringere Motivation?
****** muesste getestet werden
                    * mueste getestet werden


=== Ziele der Programmierkurse ===
## Ziele der Programmierkurse


* Viele Professor*innen
* Viele Professor*innen
** moeglichst schnell, moeglichst viel halbwegs laufender code
    * moeglichst schnell, moeglichst viel halbwegs laufender code
** z.B. 10 minuten Sprint fuer Aufgaben ("3-Zeiler", aber enormer Stress mit Aufgabe lesen)
    * z.B. 10 minuten Sprint fuer Aufgaben ("3-Zeiler", aber enormer Stress mit Aufgabe lesen)
* einfachen Klartext in Algorithmen uebersetzen -> nicht immer Sinnvoll
* einfachen Klartext in Algorithmen uebersetzen -> nicht immer Sinnvoll
** existierende Loesung implementieren wird selten in Praxis verlangt
    * existierende Loesung implementieren wird selten in Praxis verlangt
* Softwareengineering
* Softwareengineering
** Klartext Aufgaben (bis zu 2xA4)
    * Klartext Aufgaben (bis zu 2xA4)
*** Pseudo-real
        * Pseudo-real
*** Sinnvoller, als "pseudo-code-text"
        * Sinnvoller, als "pseudo-code-text"
* Motivation zu Programmieren
* Motivation zu Programmieren
** Wofuer ist es gut?
    * Wofuer ist es gut?
** kann Spass machen!
    * kann Spass machen!
** Warum will ich programmieren koennen?
    * Warum will ich programmieren koennen?
** Keine schwierigen Probleme am Anfang
    * Keine schwierigen Probleme am Anfang
*** besser kleine Probleme für schnelleres Erfolgserlebnis
        * besser kleine Probleme für schnelleres Erfolgserlebnis
* Anregen das eigene Probleme oder Ideen in Programmen umgesetzt werden können
* Anregen das eigene Probleme oder Ideen in Programmen umgesetzt werden können
** Neue Sachen lernen durch eigenen Ansporn
    * Neue Sachen lernen durch eigenen Ansporn
* Wie kann ich mir selbst Informationen beschaffen?
* Wie kann ich mir selbst Informationen beschaffen?
** Negativbeispiel: Hier ist die C Referenz, lern das
    * Negativbeispiel: Hier ist die C Referenz, lern das
** Bekannte Websites
    * Bekannte Websites
*** stack overflow
        * stack overflow
**** Anekdote: Es gibt Programm das automatisch bei Fehlern stack overflow befragt und ersten fix testet
            * Anekdote: Es gibt Programm das automatisch bei Fehlern stack overflow befragt und ersten fix testet
** Selber erforschen von Websites ist wichtig
    * Selber erforschen von Websites ist wichtig


==== Erfolgreiche Freizeitanregungen? ====
### Erfolgreiche Freizeitanregungen?


* Bsp: Links zu online-Raetseln fuer Freizeit
* Bsp: Links zu online-Raetseln fuer Freizeit
** Vorschlag für Professor*innen: Pflichtabgaben erweitern
    * Vorschlag für Professor*innen: Pflichtabgaben erweitern
*** Normaler Teil
        * Normaler Teil
*** + Zusatzfunktionen ohne Vorgabe koennen implementiert werden
        * + Zusatzfunktionen ohne Vorgabe koennen implementiert werden
**** "Bauen Sie noch 2 Zusatzfeatures fuer 2 Bonuspunkte"
            * "Bauen Sie noch 2 Zusatzfeatures fuer 2 Bonuspunkte"
**** Zusatzfeatures koennen selbst ausgedacht werden
            * Zusatzfeatures koennen selbst ausgedacht werden
**** Kreativitaet wird gefoerder
            * Kreativitaet wird gefoerder
*** Im Bereich Spielentwicklung
        * Im Bereich Spielentwicklung
**** Bsp. Worms
            * Bsp. Worms
***** Mögliche Zusatzimplementierungen:
                * Mögliche Zusatzimplementierungen:
****** andere Projectiele
                    * andere Projectiele
****** Huepfen
                    * Huepfen
****** ...
                    * ...
*** Erfolgsmodell mit sehr kreativen zusatzfeatures
        * Erfolgsmodell mit sehr kreativen zusatzfeatures
* Code wars AK
* Code wars AK
** Spass, foerdert motivation
    * Spass, foerdert motivation
* Professor*innen live-coding
* Professor*innen live-coding
** nicht einfach, da verschiedene Lerngeschwindigkeiten
    * nicht einfach, da verschiedene Lerngeschwindigkeiten
** nach und nach an ein Problem herangehen ist vorteilhaft
    * nach und nach an ein Problem herangehen ist vorteilhaft
* Lego Mindstorm als Motivation gemeint
* Lego Mindstorm als Motivation gemeint
** hier gescheitert, haette ggf. funktionieren koennen
    * hier gescheitert, haette ggf. funktionieren koennen
* ACM Library fuer grafische objekte
* ACM Library fuer grafische objekte
** Graphisches Resultat sichtbar
    * Graphisches Resultat sichtbar
** sehr einfache Programme waren am "coolsten"
    * sehr einfache Programme waren am "coolsten"
** grafische Herangehensweise fuehrt zu kreativem Umgang
    * grafische Herangehensweise fuehrt zu kreativem Umgang
*** ueber Aufgabe hinaus
        * ueber Aufgabe hinaus
*** library weiter erforschen
        * library weiter erforschen
** Motivationsfoerdernd
        * Motivationsfoerdernd
** kann aber auch einschuechternd wirken (depends on library)
        * kann aber auch einschuechternd wirken (depends on library)




=== Cheat sheet fuer Programmierkurse? ===
## Cheat sheet fuer Programmierkurse?


* TU Darmstadt ist dabei, so etwas zu entwickeln
* TU Darmstadt ist dabei, so etwas zu entwickeln
** Link folgt [hier]
    * Link folgt [hier]
** (Wenn ich das bis zur naechsten KIF nicht gemacht haben sollte erinnert mich dran, Viele Grueße Kevin)
    * (Wenn ich das bis zur naechsten KIF nicht gemacht haben sollte erinnert mich dran, Viele Grueße Kevin)
Bitte kopiere keine Webseiten, die nicht deine eigenen sind, benutze keine urheberrechtlich geschützten Werke ohne Erlaubnis des Urhebers!
Du gibst uns hiermit deine Zusage, dass du den Text selbst verfasst hast, dass der Text Allgemeingut (public domain) ist oder dass der Urheber seine Zustimmung gegeben hat. Falls dieser Text bereits woanders veröffentlicht wurde, weise bitte auf der Diskussionsseite darauf hin. Bitte beachte, dass alle KIF-Beiträge automatisch unter der „Namensnennung-Weitergabe unter gleichen Bedingungen 2.5 “ stehen (siehe KIF:Urheberrechte für Einzelheiten). Falls du nicht möchtest, dass deine Arbeit hier von anderen verändert und verbreitet wird, dann klicke nicht auf „Seite speichern“.
Abbrechen Bearbeitungshilfe (wird in einem neuen Fenster geöffnet)