Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo,

ich suche ein paar guten Ideen, um Inhalte aufzubereiten. Ich habe zwar auch schon hier einiges dazu geschrieben, aber vielleicht hat der eine oder andere noch ein paar hilfreiche Ideen. Ich betreue Master & Bachelor Studenten im Rahmen mehrere Veranstaltungen und stelle dabei fest, dass viele Probleme damit haben, wenn nur eine Problemstellung im Raum steht, sich ein Konzept zu überlegen, wie sie die Problemstellung lösen.

Typisch wäre aus meiner Sicht, dass man einzelne Schichten in einer Software-Architektur definiert und dann die entsprechenden Schichten in Klassen zerlegt, so dass eine sinnvolle API Struktur für jede Schicht entsteht.

Z.B. stelle ich fest, dass sie Vorlesung zu Datenbanken hören, wenn sie aber eine Problemstellung haben, in der man eine Datenbank einsetzen könnte, dann kommen sie nicht auf den Gedanken so etwas zu verwenden. Salopp gesagt sehen sie den Wald vor lauter Bäumen nicht. Ebenso verhält es sich bei Algorithmen, z.B. einfach mal grob einen Algorithmus zur Lösung des Problems in Pseudocode skizzieren fällt fast allen sehr schwer. Generell wird eher versucht irgendwo etwas passendes zu ergoogeln und dann zu verwenden. Meist findet man aber nichts, was zu 100% auf die Problemstellung passt und dann wird so lange an fremden Code gebastelt, bis irgendwie die Lösung heraus kommt.

Ich bin inzwischen dazu übergegangen, dass ich bei einem Hello-World Programm anfange (bei mir in C/C++) und dann Schritt für Schritt es komplexer werden lasse, aber die Studenten sich für jeden Schritt eine Lösung überlegen sollen, die wir erst zusammen besprechen. Ist natürlich ein sehr großer Aufwand.

Hättet Ihr noch Ideen?

Geschrieben

Puh, das ist garnicht so einfach.

Lösung habe ich ganz sicher keine, aber ich habe ja auch noch nie (so richtig) Informatik studiert. Allerdings habe ich ein paar Semester Jura hinter mir. Das Erlernen der Subsumtionstechnik i.V.m. dem Gutachtenstil kommt mir wenn ich ein wenig über das Thema nachdenke in den Sinn. Das zog sich durch alle Rechtsgebiete, auch wenn jedes so seine Eigenheiten hatte, aber das Grundmuster war überall gleich. Und erlernt hat man es, indem zum einem die Vorlesungen am Anfang dem Muster/Aufbauschema gefolgt sind und man in den Übungen das einfach immer wiederholt hat. Nachdem man nach ein paar Wochen jede Stufe im Schema ausführlich behandelt hatte wurde einfach jede Woche ein neuer Fall von A bis Z durchgekaut. Irgendwann hat man dann (oder auch nicht...) einen Blick dafür entwickelt wie eine Fragestellung zu zerlegen ist und das bisher gelernte und das neu gelernte anzuwenden sind.

Beim Lesen deines Posts mußte ich spontan an Joels The Perils of JavaSchools denken.

Ich denke dein letzter Absatz geht in die richtige Richtung. Aber ich denke mit einer Veranstaltung alleine wirst du da nicht so viel reißen, denn da ist dann trotzdem die Frage wie du es schaffst, dass die Leute ihr Wissen auch anwenden können. Ich persönlich habe immer beim bearbeiten von realen Fragestellungen am meisten gelernt. Das wichtigste was man lernt, wenn man eine konkrete, nichttriviale Aufgabe hat, ist dass man einen Plan braucht.

Du bräuchtest also mehrere Dinge. Ein Schema/eine Vorgehensweise und mehrere aufeinanderaufbauende Veranstaltungen. Das erste Problem ist schonmal, dass es keine allgemein anerkannte Vorgehensweise gibt, wie Software zu bauen ist. Es gibt auch keine allgemein anerkanntes Schema wie eine Softwarearchitektur auszusehen hat.

Also, du legst nun zum Beispiel fest, dass das Wasserfallmodell die Grundvorgehensweise sein soll und die Zielarchitektur ein sinnvoll gelayerte, usw. sein soll.

Dann brauchst du eine oder mehrere Veranstaltungen die den Leuten die technischen Grundlagen: Syntax, Algorithmen, Datenstrukturen, etc. beibringen. Hierbei folgst du im kleinen schon immer der festgelegten Struktur, stellst also bei jedem Punkt dar, welche Rolle er in Vorgehensweise und Architektur spielt.

Als nächstes kommt die große Veranstaltung die Projektorientiert alles zusammen führt, aber in dieser immernoch streng nach dem eingeführten Vorgehensmodell und der eingeführten Architektur.

Nun kommt der wichtigste Schritt. Nun werden die anderen Paradigmen vorgstellt. Sowohl was die Vorgehensweise als auch die Programmier- und Architekturparadigmen angeht.

Im Anschluss kommt nochmal ein großes, komplexes Projekt in dem die Studenten dann vollkommen freie Hand haben.

Ich denke das ganze ist so nicht umsetzbar, stellt aber hoffentlich einen Auftakt für eine fruchtbare Diskussion dar.

Auch interessant: http://norvig.com/21-days.html

Geschrieben

Zuerst einmal super vielen Dank afo.

Nachdem man nach ein paar Wochen jede Stufe im Schema ausführlich behandelt hatte wurde einfach jede Woche ein neuer Fall von A bis Z durchgekaut. Irgendwann hat man dann (oder auch nicht...) einen Blick dafür entwickelt wie eine Fragestellung zu zerlegen ist und das bisher gelernte und das neu gelernte anzuwenden sind.

So mache ich es aktuell auch.

Ich denke dein letzter Absatz geht in die richtige Richtung. Aber ich denke mit einer Veranstaltung alleine wirst du da nicht so viel reißen, denn da ist dann trotzdem die Frage wie du es schaffst, dass die Leute ihr Wissen auch anwenden können. Ich persönlich habe immer beim bearbeiten von realen Fragestellungen am meisten gelernt. Das wichtigste was man lernt, wenn man eine konkrete, nichttriviale Aufgabe hat, ist dass man einen Plan braucht.

Ich schaue ja immer nur "semesterweise" auf die Problematik und eine perfekte Lösung gibt es nicht, da ich ja auch nicht jede Veranstaltung betreue, nur würde ich gerne für die Veranstaltung, die ich betreue, es "möglichst gut" hinbekommen.

Ich habe mich während Ausbildungs- und Studienzeit immer wieder hingesetzt und versucht, dass was ich gelernt habe, in andere Projekte zu übertragen und somit zu der Theorie beim Studium auch Praxiserfahrung zu bekommen. Leider ist dies nur bei sehr wenigen Studenten heute der Fall, viele denken von Prüfung zu Prüfung und machen dann einen Reset. Wenn man sich Veranstaltungen anschaut, dann sieht man häufig, dass die Dozenten elementare Dinge wiederholen, weil sie festgestellt haben, es sitzt nicht z.B. malen die Studenten ein UML Diagramm, aber wenn man fragt "wie sieht denn der Algorithmus der Methode aus", dann ist da nur sehr wenig vorhanden.

Du bräuchtest also mehrere Dinge. Ein Schema/eine Vorgehensweise und mehrere aufeinanderaufbauende Veranstaltungen.

Daran arbeiten wir, aber das ist ein sehr langwieriger Prozess und hilft den Studenten ja nicht, die aktuell im Studium stecken.

Das erste Problem ist schonmal, dass es keine allgemein anerkannte Vorgehensweise gibt, wie Software zu bauen ist. Es gibt auch keine allgemein anerkanntes Schema wie eine Softwarearchitektur auszusehen hat.

Vieles ist Erfahrung, aber die sammelt man natürlich nur, in dem man etwas macht und sich mit Fragen auseinandersetzt. Mir wurde gesagt, dass für die Studenten es häufig so ist als "würden sie einen riesigen Felsbrocken vor die Nase gestellt bekommen und sie wissen nicht wo und wie sie anfangen sollen". Die theoretischen Grundlagen eine Lösung zu produzieren haben sie, aber der Sprung das Wissen auf das konkrete Problem zu transferieren fällt fast allen extrem schwer.

Also, du legst nun zum Beispiel fest, dass das Wasserfallmodell die Grundvorgehensweise sein soll und die Zielarchitektur ein sinnvoll gelayerte, usw. sein soll. Dann brauchst du eine oder mehrere Veranstaltungen die den Leuten die technischen Grundlagen: Syntax, Algorithmen, Datenstrukturen, etc. beibringen. Hierbei folgst du im kleinen schon immer der festgelegten Struktur, stellst also bei jedem Punkt dar, welche Rolle er in Vorgehensweise und Architektur spielt.

Ich arbeite seit Jahren nach Scrum, so dass ich das Modell bevorzuge, aber im Grunde ist es ja egal. Wir lehren im Grunde alle Punkte, nur die Vernetzung bei den Studierenden fehlt. Es ist so eine Art "Bullemie-Lernen", einmal für die Klausur in den Kopf und danach wieder vergessen.

Nun werden die anderen Paradigmen vorgstellt. Sowohl was die Vorgehensweise als auch die Programmier- und Architekturparadigmen angeht.

Im Anschluss kommt nochmal ein großes, komplexes Projekt in dem die Studenten dann vollkommen freie Hand haben.

Habe ich probiert, das Ergebnis war sehr ernüchternd. Hatte eine Aufgabe aus der IHK Abschlussprüfung für den mathematisch-technischen Assistenten machen lassen. Zeitrahmen waren 24 Stunden (also 3 Tage).

Ich habe aus meiner Sicht das Problem, dass einmal das "vernetzte Wissen" fehlt und man aber ja zusätzlich den Studierenden nicht die Freude nehmen darf. Denn wer Spaß an seinem Fach hat, wird besser Wissen aufnehmen, als jemand, den man es eintrichtern muss.

Daher wäre auch hier meine Frage: Habt Ihr Projektideen, an denen man das mal durchspielen kann.

[...] stellt aber hoffentlich einen Auftakt für eine fruchtbare Diskussion dar.

das hoffe ich auch, denn ich sehe es ähnlich dazu, wie man einen Auszubildenden anleitet, also was ist die best-practice für die drei Jahre Ausbildung

Danke

  • 5 Monate später...
Geschrieben

das hoffe ich auch, denn ich sehe es ähnlich dazu, wie man einen Auszubildenden anleitet, also was ist die best-practice für die drei Jahre Ausbildung

Im Prinzip üben-üben-üben. Für den Azubi ist es denke ich am Besten wenn er so schnell wie möglich reale Projekte zum umsetzen bekommt anstatt das sich irgendetwas aus den Fingern gezogen wird. Da ist die Motivation größer und er hat am Ende (hoffentlich) auch ein richtiges Erfolgserlebnis.

An der Uni gestalltet sich das natürlich schwerer weil es keine realen Projekte gibt und man auf erfundene Projekte zurückgreifen muss. Aber ich denke daran führt kein Weg vorbei wenn man erreichen will, dass die Studenten den Stoff sicher beherschen. Ich weiß jetzt nicht wie es normalerweise im Informatikstudium abläuft, kann aber afos Aussage zum Jurastudium unterschreiben. Wenn man sich da einfach nur den Stoff anhört und lernt kann man die Theorie noch so gut verstanden haben, ohne den Stoff regelmäßig an Beispielfällen zu üben wird man in der Klausur wie der Ochs vorm Berg sitzen und keine Ahnung haben wie man das Ganze jetzt in ein juristisches Gutachten zwängen soll.

Als Jurastudent hat man es aber von daher einfach, dass es zu jedem Thema jede Menge Falllösungsbücher mit Beispielfällen und Musterlösungen gibt mit denen man üben kann.

In der Informatik gibt es sowas ja bis auf einfache "Aufgäbchen" in Einführungsbüchern zu Programmiersprachen leider nicht. Wäre aber vielleicht auch mal eine Marktlücke ;)

Geschrieben
..., dass viele Probleme damit haben, wenn nur eine Problemstellung im Raum steht, sich ein Konzept zu überlegen, wie sie die Problemstellung lösen.

Das Problem habe ich auch. Allerdings geht es bei mir schon bei den mathematischen Grundlagen los. Denn wenn man nach Abitur und 3 Semestern Studium noch nichts vom Modulo gehört hat, kann man selbst FizzBuzz nicht lösen :-/

Ich bin inzwischen dazu übergegangen, dass ich bei einem Hello-World Programm anfange (bei mir in C/C++) und dann Schritt für Schritt es komplexer werden lasse, aber die Studenten sich für jeden Schritt eine Lösung überlegen sollen, die wir erst zusammen besprechen. Ist natürlich ein sehr großer Aufwand.

Genau so mache ich es auch.

Hättet Ihr noch Ideen?

Bis auf Ideen für zu lösende Aufgaben leider nicht (aber die kennst du bestimmt, z.B. Project Euler). Dein Vorgehen kann ich nur bestätigen.

Was meinen Studenten allerdings richtig beim Verständnis geholfen hat ist Pair Programming. Meine Studenten müssen von der ersten Lektion an sofort in Paaren entwickeln. Ich habe über nunmehr fünf Jahre hinweg verglichen und die Gruppen mit Pair Programming haben deutlich mehr Inhalte behalten und kreativere Projekte umgesetzt. Vielleicht versuchst du das mal!? Ist auch für den Dozenten super, weil man immer zwei Leuten gleichzeitig Hilfestellung geben kann und dadurch wertvolle Unterrichtszeit spart.

Viele Grüße!

Stefan

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...