Unterrichtsmaterial
Thomas
- sonstiges
Guten Abend,
ich unterrichte Informatik an Schulen und musste feststellen, dass die große Divergenz der Leistungsfähigkeit meiner Schüler ein sinnvolles Unterrichten fast unmöglich. Ein Teil der Schüler weiß nach 2 Tagen nicht mehr, wo es Dateien gespeichert hat, während ein paar Wenige schon viel weiter im Stoff sind programmieren.
Gibt es hier vielleicht Kollegen, die auch vor solchen Problemen stehen? Wie geht ihr damit um? Welches Material wird benutzt? Ich bin zB auf der Suche nach einem Arbeitsheft, dass ich benutzen kann (auch englisch). Kennt jemand so etwas?
Thomas
Hallo Thomas,
ich unterrichte Informatik an Schulen und musste feststellen, dass die große Divergenz der Leistungsfähigkeit meiner Schüler ein sinnvolles Unterrichten fast unmöglich.
Ich im Gegenzug bin Schüler (leider schon Stufe 11 ;( ) und musste leider feststellen, dass die große Divergenz der Leistungsfähigkeit zwischen Lehrer (wenig) und Schüler (viel) sinnvolles Unterrichten komplett unmöglich macht ;-)
OK, Spaß bei Seite. Ich hatte in der 9. Klasse etwas "Informatik"unterricht, wobei das ehrlich gesagt von der Lächerlichkeit kaum zu überbieten war (ein bisschen Texte tippen). In dem Informatikkurs, den ich momentan (der freundlichen Note wegen ;) besuche, "programmieren" wir in Java - doch leider fehlen dem Lehrer jegliche didaktischen Grundlagen, den Schülern das Programmieren näher zu bringen. So gut wie alle Schüler meines Kurses haben noch nie zuvor programmiert, wussten nicht mal was Java ist oder was der Begriff "Sourcecode" bedeutet. Etwa 4 der 20 Schüler hatten schon etwas mehr PC-Erfahrung, aber mit ernsthaften Programmieren hat das nichts zu tun. Also schon mal völlig unterschiedliche Grundlagen. Nichts einheitliches.
Nun fing der Lehrer mit Logikabstraktion "Programmieren mit Automaten" (das verwendete Unterrichtsmaterial nennt sich "Kara") an. IMHO alles andere als sinnvoll, eher eine Spielerei - mit Programmieren hat das nicht viel zu tun. Nun, später fing er dann an, ein bisschen mit "Kara" direkt zu programmieren. Die unterschiedlichen Kompetenzen der Schüler, aber auch die Unfähigkeit des Lehrers führten letztenendes dazu, dass sich die Kluft zwischen denen, die *null* wissen, und denen, die Ahnung haben, und denen, die sich seit jeher gelangweilt haben, immer weiter vergrößert.
Ein Teil der Schüler weiß nach 2 Tagen nicht mehr, wo es Dateien gespeichert hat, während ein paar Wenige schon viel weiter im Stoff sind programmieren.
Genau so ist es auch bei "uns". Nun, was kann man dagegen tun? Ich an der Stelle meines Lehrers würde ab sofort die Grundlagen wiederholen. Ich würde mir ein Konzept überlegen, welches sowohl interessant und trotzdem einfach zu verstehen ist. Leider weiß ich nicht, warum ein Studienrat, der acht Semester lang u.a. Informatik und Didaktik studiert hat, das nicht hinkriegt.
Gibt es hier vielleicht Kollegen, die auch vor solchen Problemen stehen?
Weißt du, ich glaube fast alle Informatiklehrer stehen vor dem Problem. Die Gründe sind sehr verschieden. Während ein Großteil der Lehrer einfach unfähig ist, teils aus fehlendem Wissen ihrerseits, teils aus schlichter Unfähigkeit als Wissensvermittler, kann es - wie scheinbar in deinem Fall - auch an ganz extremen Differenzen in der Klasse liegen: Wenn man seine "Ordner" nicht mehr wiederfindet... ;-)
Wie geht ihr damit um?
Nun, so unausgewogen ist das Verhältnis in der Regel (an meiner Schule zumindest ;) eigentlich nicht. Vielleicht sollte die Fachschaft ernsthaft in Erwägung ziehen, ihre Methoden umzukrämpeln? Bei solchen technischen Defiziten sollte man vielleicht die Gruppe spalten um den einen Grundlagen beizubringen, den anderen etwas, was ihrem Wissensstand entspricht. Leider ist das in der Praxis in den seltensten Fällen möglich, weil es an jeder Ressource vorne und hinten knapp ist.
Welches Material wird benutzt? Ich bin zB auf der Suche nach einem Arbeitsheft, dass ich benutzen kann (auch englisch). Kennt jemand so etwas?
Nein, Arbeitshefte für Informatik kenne ich gar nicht. Wie gesagt, der grandiose Einstieg ins Programmieren scheint meine Schule mit diesem Kara-Zeugs umzusetzen[1]. Aber ehrlich gesagt glaube ich dass unsere Informatikfachschaft hoffnungslos (Lehrmittelmäßig u.ä.) unterversorgt ist - in diesem Sinne kann ich dir leider auch nicht weiterhelfen, sondern nur mitklagen ;(
Gruß,
Sven
[1] Die Unfähigkeit des Lehrers hat mich sogar dazu bewegt, den Schülern Materlialien zur Verfügung zu stellen, die ihnen einen Quereinstieg überhaupt ermöglichen - vgl. hier
Hi,
also zunächst mal ist das ganze aus Lehrerperspektive natürlich sehr vertrackt. Eine gute Lösung dafür habe ich nicht, ich kenne nur bei uns von der Uni das Prinzip, dass für die Übung 4 oder 5 Aufgaben vorbereitet werden, jeder macht halt soweit wie er kommt.
Generell sollte man mal die Frage stellen, welchen Zweck Informatik-Unterricht in der Schule verfolgt, da gibt es ja sicherlich durchaus verschiedene Ansichten, vor allem _vor_ er Oberstufe. Sollte man da vielleicht wirklich mal die Office-Grundlagen vermitteln, damit die Leute später im Betrieb damit umgehen können? Auch etwas Excel oder ähnliches, einfach um da mal die Grundlagen gesehen zu haben?
Nun ja, dann kommt die Oberstufe, was nun. Man kann natürlich sagen "wir powern eine Programmiersprache soweit wie möglich durch, programmieren so viel wie möglich und und und". Ob das aber die sinnvollste Herangehensweise ist, weiß ich nicht. Ich bin heute (aber zugegeben auch etwas geschädigt von der Universität) der Meinung, dass fundierte Grundlagen wichtiger sind als die Beherrschung einer Sprache. Programmierung mit endlichen Automaten ist durchaus was sinnvolles, nur eben nicht für einen Webdesigner. Aber man erkennt grundsätzliche Strukturen. Syntaxbäume aufzustellen ist bestimmt ziemlich ätzend, aber man lernt "strukturiertes" Schreiben. Pseudokode ist völlig unspannend, da sieht man nichts, aber es lehrt einen abstraktes Denkvermögen - nicht auf Bibliotheken kommt es an, sondern erstmal auf die groben Abläufe. Ob das jetzt cout oder System.out.println heißt, tut überhaupt nichts zur Sache. Grundsätzliche Strukturen, wie Objekte, Interfaces, abstrakte Klassen, Factories, Iteratoren, Listen, Hashcodes/Hashsets, sowas sollte man verstanden und nicht einfach abgetippt haben. Und was ist mit Datenbanken? Was ist mit XML? Das spielt heutzutage eine so große Rolle, auch hier sollte man Grundlagen (Normalformen, DTDs, ...) eigentlich mal gesehen haben. Ich bin auch heute noch dankbar mal Assembler in der Schule gelernt zu haben (ja, das war erst vor 7 Jahren...), da sieht man eine Menge Optimierungspotenzial.
Nun gut, jetzt haben wir eine lange Liste was man machen sollte, viele Konzepte. Die kann man nicht nur theoretisch durchkauen, also muss man sich jetzt tatsächlich mal eine Programmiersprache schnappen und die Leute drauf losarbeiten lassen, sei es C, Java oder sonstwas. Dazu eine Mischung, Einführung der Theorie, anschließendes Umsetzen in die Praxis. Wenn nötig, kann der Lehrer ja Bibliotheken mit derzeit irrelevanten Teilen bereitstellen.
So, jetzt hab ich hier viel geschrieben, wahrscheinlich bringt das niemanden weiter. Ich finde es halt wichtig, dass man zügig voran geht, in verschiedene Bereiche mal reinsticht und wichtige Grundlagen lernt. Eine Programmiersprache zu lehren, ist IMHO absolute Verschwendung, in spätestens 10 Jahren ist 80% davon deprecated...
MfG
Rouven
Hallo Rouven,
Sollte man da vielleicht wirklich mal die Office-Grundlagen vermitteln, damit die Leute später im Betrieb damit umgehen können? Auch etwas Excel oder ähnliches, einfach um da mal die Grundlagen gesehen zu haben?
definitiv ja. Oh super, meine Schule hat das ja sogar mal gemacht - verzeihung - probiert.
Andererseits kennen viele Leute die Grundlagen bereits. Wie steht es mit fakultativen Kursen und ähnlichem? Oder packt man den Informatikunterricht einfach schon in die fünfte Klasse? ;)
[...] Ich bin heute (aber zugegeben auch etwas geschädigt von der Universität) der Meinung, dass fundierte Grundlagen wichtiger sind als die Beherrschung einer Sprache.
Sicherlich, jedoch kann man beides imho wunderbar verbinden, wenn man nicht gerade eine Sprache wie Java nimmt. Zumindest, falls du dich mit Grundlagen auf eben soetwas wie Algorithmen, Objektorientierung oder ähnliches beziehst.
Programmierung mit endlichen Automaten ist durchaus was sinnvolles, nur eben nicht für einen Webdesigner.
Falls das eine Anspielung auf meine undifferenzierte Beschimpfung von Automaten sein soll, ersetze das Wort "Webdesigner" lieber durch die längere und exaktere Beschreibung "jemanden, der programmieren kann"[1].
Aber man erkennt grundsätzliche Strukturen.
das kommt drauf an, wie man das Thema angeht. Die Umsetzung, wie sie dort gemacht wurde, war einfach grausam und hat meines Erachtens sehr wenig mit Programmierstrukturen zu tun:
Syntaxbäume [...] Pseudocode
eben. warum macht das keiner? Sowas hätte ich als Grundlage zusätzlich zu Automaten für Anfänger sehr geeignet gefunden.
Grundsätzliche Strukturen, wie Objekte, Interfaces, abstrakte Klassen, Factories, Iteratoren, Listen, Hashcodes/Hashsets, sowas sollte man verstanden und nicht einfach abgetippt haben.
Full ACK. Doch die macht keiner. Stattdessen wird zwanghaft versucht, laienhaft in Java zu programmieren - ohne (z.B.) zu wissen, was ein Operator ist.
Und was ist mit Datenbanken? Was ist mit XML? Das spielt heutzutage eine so große Rolle, auch hier sollte man Grundlagen (Normalformen, DTDs, ...) eigentlich mal gesehen haben.
Naja, das wird ziemlich spezifisch. Ich denke mit XML werden die wenigsten Schüler letztenendes in Kontakt treten. Und was eine Datenbank eigntlich ausmacht, scheint kein Informatiklehrer meiner Schule verstanden zu haben, den Zetteln, die da an der Wand hängen nach zu urteilen ;-)
Ich bin auch heute noch dankbar mal Assembler in der Schule gelernt zu haben (ja, das war erst vor 7 Jahren...), da sieht man eine Menge Optimierungspotenzial.
Auch wieder ein anderes Thema. Was meinst du mit "Optimierungspotential"?
Ehrlich gesagt ist Assembler sogar ziemlich weg von den Ideen, die du oben anschriebst (grundsätzliche Strukturen höherer Programmiersprachen, objektorientiertes Denken, etc.).
[...] Dazu eine Mischung, Einführung der Theorie, anschließendes Umsetzen in die Praxis.
Genau das habe ich oben schon vorgeschlagen ;) - scheinbar scheint das keiner ernsthaft zu machen :(
So, jetzt hab ich hier viel geschrieben, wahrscheinlich bringt das niemanden weiter.
Sicherlich, unsere Diskussion bringt das weiter.
Ich finde es halt wichtig, dass man zügig voran geht, in verschiedene Bereiche mal reinsticht und wichtige Grundlagen lernt.
Full ACK.
In diesem Sinne,
Sven
[1] Um kein falsches Bild entstehen zu lassen, "programmieren" ist ein Begriff mit ziemlich viel Interpretationsfreiraum. Ich persönlich arbeite mit verschiedensten Sprachen schon seit Jahren - da erscheint das Programmieren mit Automaten natürlich lächerlich.
Hallo Sven,
da erscheint das Programmieren mit Automaten natürlich lächerlich.
Du unterschätzt deren Bedeutung für die Praxis vielleicht etwas. Automaten sind in manchen bereichen ein ziemlich wichtiges Spezifikationswerkzeug (besonders im Bereich Echtzeit Systeme, Steuerungen etc). Man kann da viele Abläufe recht gut darstellen und Automaten auch gut (automatisch) analysieren. Die Notation, die man da verwendet, ist natürlich komplexer als das, was dieses Kara unterstüzt.
Außerdem bauen natürlich solche Programme wie Lexer auf Automatentheorie auf.
Ob es nun sinnvoll ist, Mäuse-laufen-durch-Gänge-Programme mit Automaten zu basteln, kann ich nicht beantworten.
Grüße
Daniel
hi,
Generell sollte man mal die Frage stellen, welchen Zweck Informatik-Unterricht in der Schule verfolgt, da gibt es ja sicherlich durchaus verschiedene Ansichten, vor allem _vor_ er Oberstufe. Sollte man da vielleicht wirklich mal die Office-Grundlagen vermitteln, damit die Leute später im Betrieb damit umgehen können? Auch etwas Excel oder ähnliches, einfach um da mal die Grundlagen gesehen zu haben?
Fragt sich nur, ob das irgendeiner von den Schülern will.
Ich bin heute (aber zugegeben auch etwas geschädigt von der Universität) der Meinung, dass fundierte Grundlagen wichtiger sind als die Beherrschung einer Sprache. Programmierung mit endlichen Automaten ist durchaus was sinnvolles, nur eben nicht für einen Webdesigner. Aber man erkennt grundsätzliche Strukturen. Syntaxbäume aufzustellen ist bestimmt ziemlich ätzend, aber man lernt "strukturiertes" Schreiben. Pseudokode ist völlig unspannend, da sieht man nichts, aber es lehrt einen abstraktes Denkvermögen
Tja, aber alles erst mal "langweilig" - zumindest für einen Großteil derer, die in der Schule einen Informatikkurs belegen. Vermute ich zumindest mal nach den Erfahrungen aus meiner Schulzeit, wo der überwiegende Teil wohl dachte, "cool, Computer, das ist was mit spielen und so ..." - und dann schon, als es um einfache Aussagenlogik gibg, vollkommen abgeschnallt hat.
gruß,
wahsaga
Hallo wahsaga,
Tja, aber alles erst mal "langweilig" - zumindest für einen Großteil derer, die in der Schule einen Informatikkurs belegen. Vermute ich zumindest mal nach den Erfahrungen aus meiner Schulzeit, wo der überwiegende Teil wohl dachte, "cool, Computer, das ist was mit spielen und so ..." - und dann schon, als es um einfache Aussagenlogik gibg, vollkommen abgeschnallt hat.
Und deswegen sollte man im Informatik"unterricht" jetzt Computerspiele "zocken"?
Ich persönlich fände solche Grundlagen, wie Rouven sie angesprochen hat, außerordentlich wichtig. Wenn die Schüler so einen Kurs belegen, können sie sich ja vorher informieren, was auf sie zukommt. Es ist sowieso traurig, anzusehen, wie sich einige dieser Schüler für "Experten" halten und leider keine Ahnung von Rechnern haben.
Grüße,
Sven
hi,
Und deswegen sollte man im Informatik"unterricht" jetzt Computerspiele "zocken"?
"Verstehen Sie mich bitte falsch."
Ich persönlich fände solche Grundlagen, wie Rouven sie angesprochen hat, außerordentlich wichtig.
Ich auch, keine Frage.
Ich hatte ja nur beschrieben, wie die _Realität_ bei mir auf der Schule aussah.
Wenn die Schüler so einen Kurs belegen, können sie sich ja vorher informieren, was auf sie zukommt.
Selbst wenn sie das getan haben - auf Grund von
Es ist sowieso traurig, anzusehen, wie sich einige dieser Schüler für "Experten" halten und leider keine Ahnung von Rechnern haben.
waren ja erstmal trotzdem fast alle überzeugt, dass "Programmieren ja nicht schwer sein" könnte, und mit ihrer "Erfahrung" im Zocken von Baller- und sonstigen Spielen ja schon mal erst recht nicht.
gruß,
wahsaga
[1] Die Unfähigkeit des Lehrers hat mich sogar dazu bewegt, den Schülern Materlialien zur Verfügung zu stellen, die ihnen einen Quereinstieg überhaupt ermöglichen - vgl. hier
Das hört sich auf alle Fälle interessant an und ich werde mir die Materialien auf alle Fälle einmal anschauen.
Bei mir liegt der Fall so, dass die Schüler Informatik als ganz normales Fach haben. Es ist kein Wahlunterricht! DAher muss ich auch Rücksicht auf den Lehrplan nehmen und der schreibt neben DB im ersten Halbjahr nun strukturiertes Programmieren im zweiten Halbjahr vor.
DB zu unterrichten ging problemlos und hat eigentlich allen Schülern Spaß gemacht. Nur jetzt beim Programmieren wird es irgendwie schwierig aufgrund der genannten Probleme.
Lernziel sollen zunächst einfach Schleifen, Zuweisungen etc. sein. Also ganz allgemein die Grundelemente der meisten Sprachen. Ich bin dabei nun folgenden Weg gegangen:
1. Ich benutze JavaScript, da dann kein Schüler zu Hause was installieren muss (verbieten manche Eltern!) und die Syntax in vielen Teilen ähnlich zu Java ist, was im nächsten Jahr kommen soll.
Problem: Dadurch, dass die Datei in zwei Programmen geöffnet werden muss, scheitern schon 1/3 an der Grundvoraussetzung.
2. Der Unterricht läuft meist so ab:
a) Ich gebe eine Syntax vor (for-Schleife)
b) Mache ein Beispiel mit den Schülern
c) Gebe Aufgaben, die das Beispiel leicht verändern bis zu ganz neuen Problemen.
Problem: Beim Punkt c) läuft es ganz schnell auseinander. Manche können keine Zeile selbst schreiben, andere sind schnell fertig.
Später kommen noch Struktogramme und Programmablaufpläne dazu (die lassen sich einfacher zeichnen). Da wird dann mal der Algorithmus gezeichnet und dann programmiert oder auch mal umgekehrt.
Abschließend kommt einwenig Komplexitätstheorie in dem man einfach die Laufzeit von Algorithmen mal anschaut.
Vielleicht sind es die meist sehr mathematischen Beispiele, die es für viele schwierig macht, aber genau diese lassen sich halt in einfache Algorithmen packen und schnell programmieren.
Vielleicht hat ja naoch jemand eine Idee oder Anregung oder Kommentar?
Thomas
moin thomas :)
Vielleicht sind es die meist sehr mathematischen Beispiele, die es für viele schwierig macht, aber genau diese lassen sich halt in einfache Algorithmen packen und schnell programmieren.
_Das_ kann gut möglich sein. Mir ist es in der Schule immer schwer gefallen, den mathematischen Ausführungen meines Lehrers im Informatikunterricht zu folgen.
In der Uni habe ich aber ein ganz anderes Konzept kennengelernt. Wissensvermittlung über Programmierung anhand von Java - mit wenig mathematischem Overhead - vielen Eimern *g* und einem tollen Lehrbuch.
Wenn man sich auf "Eimer füllen" einläßt, die "normale" Lernstruktur für Programmiersprachen vergisst und sich nicht darauf verläßt, nach diesem Lehrbuch Java zu können - ist man damit sehr gut bedient.
Die Programmiersprache selber lernt man eigentlich nicht mit diesem Buch - aber die Logik die hinter dem programmieren allgemein steht.
Was ich nicht beurteilen kann, ist die Tatsache ob das Buch auch ohne Vorlesung was taugt.
liebe Grüße aus Berlin
lina-
Hallo lina,
das liest sich doch sehr gut. Ich denke darüber nach.
Eigentlich möchte ich ja kein Java benutzen, da man dort einen solchen Overhead an unbekannten Sachen mitschleppen muss (static void main ...), aber vielleicht muss man das ja in Kauf nehmen.
Ich habe halt das Problem, dass ich 7. Klässlern das beibringen muss und das ist wirklich schwierig.
Logo war das ein ganz guter Ansatz, aber das gehen einem schnell die guten Ideen aus.
Thomas
moin thomas :)
Eigentlich möchte ich ja kein Java benutzen, da man dort einen solchen Overhead an unbekannten Sachen mitschleppen muss (static void main ...), aber vielleicht muss man das ja in Kauf nehmen.
Jep muss man... wenn man aber 7. Klässern sagt "Das muss so" fragen die wenigsten nachn (meine Erfahrung). Und diejenigen, die es tun, kannst du eine kleine Abhandlung über Arrays in Java geben (was mir damals schon alles erklärt hat)
Ich habe halt das Problem, dass ich 7. Klässlern das beibringen muss und das ist wirklich schwierig.
Ich meinte mit meinem Kommentar auch nicht, dass du das Buch verwenden sollst ;)
Aber wenn du dir selber ein Paket schreibst, dass deine Schüler dann _nutzen_ um Dinge wie Steuerstrukturen und ähnliches zu lernen - wär das Konzept zumindest drinnen.
Hinzu kommt, dass man das mit geschickter und ansprechender Grafikumsetzung auch für 7. Klässler interessant machen kann.
Logo war das ein ganz guter Ansatz, aber das gehen einem schnell die guten Ideen aus.
Findest du? Ich nicht. Ein Java-Framework für Schüler (so dass sie nicht mal "bemerken" dass sie Java programmieren) bietet doch viel Spielraum für Umsetzungen.
Um bei Solymosies Eimern zu bleiben:
_Du_ bastelst eine Klasse Eimer und einen Container (Eimerbehälter), der Eimer aufnehmen kann.
Bedingungen kannst du sogar allein mit der Eimerklasse erklären (wenn nicht gefüllt dann füllen)...
Eine For-Schleife kannst du den Schülern mit nur zwei Klassen in deinem Paket beibringen.
Objektorientiertheit (Methoden und Eigenschaften zumindest) kann man anhand gefüllter, leerer, blauer, roter, kaputter Eimer suuuuper erklären.
Vererbung: ein Wassereimer ist ein Eimer ;)
Wenn du keine Eimer magst: Autos, Fahrräder, Ticketautomaten - es gibt tausend Dinge in deinem Alltag aus denen man ein solches Schülerframework basteln kann.
liebe Grüße aus Berlin
lina-
Hallo,
Gibt es hier vielleicht Kollegen, die auch vor solchen Problemen stehen? Wie geht ihr damit um?
Nun ja, wir haben den Vorteil, Erwachsene zu schulen. Aber da gibt es die Probleme auch. Man kann da nur mit einer Methode vorgehen, in der man als Lehrer mehr Tutor als Präsentator, mehr Moderator als Vortragender ist. Frontaler Unterricht fällt da nur an, wenn neue Wissensgebiete angegangen werden, deren Grundlagen vermittelt werden müssen. Ansonsten werden Übungsaufgaben bearbeitet. Der Lehrer steht dabei für aufkommende Fragen zur Verfügung. Dazu braucht man natürlich gut ausgearbeitete Übungen, die gute Lehrgangsteilnehmer fast im Alleingang bewältigen können. Man hat dann Zeit für die Fragen derer, die eben noch nicht so weit sind.
Welches Material wird benutzt? Ich bin zB auf der Suche nach einem Arbeitsheft, dass ich benutzen kann (auch englisch). Kennt jemand so etwas?
Als Grundlage finde ich die Unterlagen des Herdt-Verlages nicht schlecht. Auch die Preise sind moderat. Für Programmierung bei Spezialsoftware-Programmierung nachsehen. Deren Web-Präsenz ist leider nicht zu empfehlen ;-).
viele Grüße
Axel