KIF385:Wie lernt man das Programmieren im Informatikerstudium: Unterschied zwischen den Versionen
Aus KIF
T (Diskussion | Beiträge) (Änderung 18531 von 194.164.101.217 (Diskussion) rückgängig gemacht.) |
|||
Zeile 76: | Zeile 76: | ||
**eher allgemein, wenn man ein Problem anerkennt | **eher allgemein, wenn man ein Problem anerkennt | ||
On german wioiuksrce there is no rule to ban unconditionally unpublished works. In this case you have not found the example in your aticle. And we have some other unplubished works too. But you are rigth, there is a very small number of these works in wioiuksrce. | |||
Version vom 17. Juni 2012, 12:45 Uhr
Problematik
- Erstis haben verschiedene Vorkenntnisse
- Auch mitten im Studium können nicht alle mit Computern besonders gut umgehen
- Teilweise gibt es keine Programmierkurse an der Uni, Programmierkenntnisse werden aber vorausgesetzt
Lösungsansätze
- TU Darmstadt: Kaum jemand hat Vorerfahrungen mit Scheme -> also wird das gemacht, weil alle was lernen
- Dann Übergang ins Imperative/Objektorientierte und Übersetzung auf andere Bereiche (z.B. VHDL)
- RWTH Aachen: Java, Haskell, Prolog in einer Vorlesung im ersten Semester -> alle großen Programmierparadigmen
- Auch Hintergründe erklären, z.B. Hoare-Kalkül
- Später dann Softwarepraktika, wo teilweise z.B. C++ gebraucht wird -> Fokus mehr auf Softwareentwicklung
- Uni Erlangen: Java wird in Ansätzen erklärt
- Danach beibringen, wie man die Java-Dokumentation liest und klare Ansage: beschäftigt euch damit!
- Berlin (BHT): Semesterprojekt im 2. Semester (nach allgemeiner Vorlesung im 1. Semester), z.B. Musikverwaltung bauen (kein Fokus auf Softwareentwicklung, sondern konkret Programmieren)
- außerdem kostenlose Nachhilfekurse (L++) wenn man Schwierigkeiten hat
Voraussetzungen
Kontroverse Ansichten gibt es darüber, ob man Programmieren einfach voraussetzen sollte
- Nebenbedingungen wie z.B. Bafög sind problematisch, weil sich für Menschen ohne Programmiererfahrung die Studiendauer verlängert -> kein Befög mehr, Studienzeitverlängerung, etc.
- Auf der anderen Seite sollen die Leute auch im Studium selbstständig arbeiten können (selbstverantwortliches Lernen sollte jedem Studierenden zugetraut werden)
- Es ist besser, die Konzepte hinter Programmiersprachen zu lernen, allgemein Programmieren zu können - anstatt nur eine Sprache konkret zu erlernen und nicht die Fähigkeit zu besitzen, sich weitere Sprachen gut aneignen zu können
Wie kann man Programmieren lehren?
- Paradigmen und Konzepte wichtiger als konkrete Sprachen
- Lehre wird aber über konkrete Programmiersprache gemacht
- Zu wenig und zu seltene Beschäftigung mit Programmieren (nur eine Übung die Woche)
- Zu kleine Stückelung
- Zu wenig als "Handwerkszeug" wahrgenommen, das man allgemein und häufiger mal verwenden kann
- Praktika können helfen, Programmier-Kenntnisse zu vertiefen
- Problem Gruppenarbeit: es kann von Erfahrenen nicht verlangt werden, dass sie sich um Unerfahrene kümmern. Es kann umgekehrt nicht sein, dass das Niveau so hoch ist, dass die Unerfahrenen nicht durchkommen können
- Wer den Willen hat Programmieren zu lernen, sollte genügend Hilfestellung von der Uni bekommen - das ist nicht Aufgabe anderer Studis!
- Möglicherweise gute Idee: Programmieraufgaben, wo man ein kurzes (< 500 Zeilen) Programm bekommt, einen Teil ergänzen muss, dafür anderen Code lesen muss (Code-Review, Dekomposition, etc.)
- man kann sich Sachen abgucken, man kann das Programm nachvollziehen und lernt das automatisch
Gruppenarbeit bei der Abgabe von Übungen?
- teilweise muss in Gruppen gearbeitet werden, da die Arbeitsaufträge für nur eine Person zu umfangreich sind
- zu zweit ist man mehr als nur doppelt so schnell
- zu viel Glückssache, gerade im ersten Semester: wer arbeitet mit wem zusammen, wenn sich keiner kennt?
- auch der Tutor in den Übungsgruppen kann scheiße sein -> erheblicher Nachteil, keine echte Möglichkeit das zu ändern
- wie könnte man das besser machen?
- vielleicht mit Tutorenschulungen
- häufiges Konzept: jeder muss mal vorrechnen, dadurch müssen alle in der Gruppe arbeiten
- nicht immer erfolgreich, wenn dadurch Defizite erst am Ende des Semester klar werden
- Anwesenheitspflicht
- kann ziemlich doof sein
- Gruppenanwesenheitspflicht vielleicht besser: Gruppenmitglieder wollen nicht immer alle da sein, "schwächere" müssen also angeleitet werden, damit sie da sind und sinnvoll zuhören oder vorrechnen können
Softwareprojekt - gut oder schlecht?
- Muss nicht in Gruppenarbeit sein, weil es da Zufall ist, ob es gut funktioniert (je nach Teammitgliedern)
- Kann sehr demotivierend sein, wenn man erst hinterher lernt, wie es "in echt" laufen sollte
- Gruppenarbeit muss aber auf jeden Fall im Studium vorkommen und funktionieren - das gehört später zum Programmieren dazu!
- Trennung zwischen Programmieren und Softwareentwicklung
- beides gleichzeitig lernen geht nicht
- sprechen über "was ist guter Code? Wie programmiert man gut?
- erst Programmieren lernen, dann Gruppenarbeit wo es ne Aufteilung gibt
Tutoren
- wird sehr veschieden gut bezahlt (teilweise nur "Kontaktzeit"=2 Stunden, teilweise alles inklusive=11 Stunden)
- kann an manchen Unis angerechnet werden (ECTS)
- keine große Auswahl (es gibt zu wenig Freiwillige für Tutorenstellen)
- sollten sowohl über Fach- und Veranstaltungs-spezifische, als auch über didaktische als auch über menschliche Fähigkeiten verfügen
Hilfestellungen
- den Studierenden sollte frühzeitg im Studium klargemacht werden, welche später im Studium benötigten/geforderten Fähigkeiten sie sich (selbstständig) erarbeiten sollten (z.B. Ausgabe einer Liste an die Ersties)
- optionale Kurse in der vorlesungsfreien Zeit für diejenigen, die nicht klar kommen
- sinnvoller vor Beginn des "Nachholsemesters"
- optionale Kurse in Vorlesungszeit: wäre direkt aktuell, wenn man merkt, dass man nicht klar kommt
- aber Problem des Zeitaufwandes; es gibt ja für den Pflichtstudienplan schon genug zu tun
- nicht dieselben Kurse für Wiederholer wie für Erstis!
- Problem der Finanzierung
- evtl. Finanzierung durch die Industrie? Das wird von Vielen sehr skeptisch gesehen
- Mentoring: konkretes Eingehen auf spezifische Probleme
- einzelne Hilfestellungen können gegeben werden, z.B. Verweise auf gute Tutorials
- Mentor kann allerdings nicht persönlich Nachhilfe geben (keine Kapazität)
- Meta-Workshops/-Seminare: zum Abbau von Prüfungsstress, lernen des Lernens, etc.
- eher allgemein, wenn man ein Problem anerkennt
On german wioiuksrce there is no rule to ban unconditionally unpublished works. In this case you have not found the example in your aticle. And we have some other unplubished works too. But you are rigth, there is a very small number of these works in wioiuksrce.