Textadventure für Informatik-AG einer Realschule



  • Guten Tag,
    ich bin Referendar an einer Realschule und würde gerne den Schülern an der Schule die Programmierung etwas näher bringen.
    Ich bin im Internet, auf der Suche nach Schablonen für mein Projekt, schließlich hier gelandet.

    Es handelt sich, wie der Titel schon andeutet, um ein Textadventure, welches
    die Schüler selber entwickeln sollen. Dabei sollen die SuS ganz einfache
    Erfahrungen mit der Programmiersprache C++ bekommen.
    Sprich, noch nicht selber Programmieren, sondern erstmal die Strukturen kennen
    lernen.
    Die Komplexität soll dabei auf unterster Ebene stattfinden = Willst du links
    lang gehen oder rechts?
    -> Rechts "-verirrt- Du stehst wieder an der Kreuzung; links "Du siehst ein
    Haus, was willst du tun -> Auswahl"... etc. Begreifen die Schüler diese
    Methode/Schleifen, soll/kann es komplexer werden.

    Meine Frage an die Community hier:
    - Gibt es solche Schablonen? (Vor allem in Bezug auf Adventure)
    - Mit welchem Programm/welcher Visual C Variante kann ich das am besten durchführen?
    - Gibt es eventuell hier im Forum schon fertige Adventure die ich als Schablone
    nutzen könnte? Würde mir das selber außeinanderdröseln, so gut ich kann, und
    stark reduzieren.

    Ich habe leichte Grundkenntnisse in der Programmierung, im Prinzip fehlt mir
    momentan nur das "Vokabular", welches aber sicher wieder wiederkommt,
    falls ich Schablonen erhalten sollte. Leider habe ich sehr wenig Zeit, um mich
    komplett reinzulesen und selber etwas zu erstellen. Der umgekehrte Weg wäre da
    sehr viel einfacher für mich.
    Ich danke euch jetzt schon für jede Antwort!

    Viele Grüße
    Haernd 🙂



  • haernd schrieb:

    - Gibt es solche Schablonen? (Vor allem in Bezug auf Adventure)

    Bei den Programmierern zerbrechen Schablonen zerbrechen leider stets. Allenfalls http://de.wikipedia.org/wiki/Entwurfsmuster stehen ein wenig stabil.

    haernd schrieb:

    - Mit welchem Programm/welcher Visual C Variante kann ich das am besten durchführen?

    Mit jeder. Am besten immer nur die neueste nehmen.
    Kostenlos und gut wäre Code::Blocks inclusive mitgeliefertem Compiler. Aber leider sind dann die Fehlermeldungen ein wenig englisch, kann sein, daß Du das den SuS nich zumuten kannst.

    haernd schrieb:

    - Gibt es eventuell hier im Forum schon fertige Adventure die ich als Schablone
    nutzen könnte? Würde mir das selber außeinanderdröseln, so gut ich kann, und
    stark reduzieren.

    Nein. In den letzten 15 Jahren sind einige Textadventures hier durchgeflogen, alle nur im krassen Anfangsstadium und in einem Programmierstil, der einem Tränen in die Augen treibt.

    haernd schrieb:

    Ich habe leichte Grundkenntnisse in der Programmierung, im Prinzip fehlt mir
    momentan nur das "Vokabular", welches aber sicher wieder wiederkommt,
    falls ich Schablonen erhalten sollte.

    Ähm.

    [quote="haernd"]Leider habe ich sehr wenig Zeit,[(quote]
    Die armen SuSOpfer.

    Benutze goto. Ich bau mal kurz eine Schablone, Momentchen…

    edit: Aich baue doch nichts, zu aufwändig, um es einigermaßen hübsch zu machen.


  • Mod

    volkard schrieb:

    Nein. In den letzten 15 Jahren sind einige Textadventures hier durchgeflogen, alle nur im krassen Anfangsstadium und in einem Programmierstil, der einem Tränen in die Augen treibt.

    Und einer der Gründe dafür ist, dass ein Textadventure letztlich doch sehr viel schwieriger ist, als man so denkt. Es sei denn, man benutzt eine fertige Engine (die dann jemand für den Threadersteller programmieren müsste). Dann wird der Benutzer aber zum reinen Questdesigner und lernt nichts über Programmieren, das über einfaches if hinaus geht.

    Ich habe leichte Grundkenntnisse in der Programmierung,

    Oh, weh. Ein Lehrer, der sich nicht auskennt, will unterrichten? Und dann auch noch mit einer professionellen Programmiersprache wie C oder C++ als Thema? C++ brauchen selbst Profis die sich reinhängen mehrere Monate, um es einigermaßen gut zu beherrschen. C ist etwas einfacher, dafür aber umso ungeeigneter für Programmierer, die es vielleicht nicht 100% verstehen, da es einen sehr großen Frustfaktor bei kleinsten Fehlern hat. (Erläuterung: Dogmatisches C++ ist zwar schwieriger zu programmieren als dogmatisches C, aber dafür sind Fehler leichter zu finden, weil sie bereits vom Compiler entdeckt werden. In C hingegen geht fast jeder Code durch den Compiler, egal ob Nonsens oder nicht.) Das schlimmst bei solchen erbarmungslos komplexen Sprachen ist ein Lehrer, der nicht selber nicht 100% weiß, was er tut. Selbst ein 90%-Lehrer ist schlecht, weil man immer noch 10% Unsinn lernt, den man nur schwer wieder los wird. Deine Selbsteinschätzung klingt eher nach < 10%, da C++ doch sehr komplex ist und für den Anfänger gar nicht ersichtlich ist, wie groß die Sprache ist. Ich persönlich hätte jedenfalls schon Bammel, wenn mich jemand fragen würde, ob ich ihm C++ unterrichten kann*. Und ich habe zehntausende Texte zu mehr oder weniger schwierigen C++-Problemen verfasst.

    Wie wäre es mit speziellen Lehrsprachen? Klingt zwar vielleicht nicht so spannend wie ein Computerspiel, wenn man eine Schildkröte geometrische Figuren malen lässt oder wenn man einen Roboter durch ein Labyrinth lotst, aber seien wir doch mal ehrlich: Wirklich spannend wäre ein Textadventure auch nicht. Und es ist doch mitunter Aufgabe des Lehrers, den Schülern den Stoff schmackhaft zu machen. Solche Lehrsprachen kann man selbst mit geringen Eigenkenntnissen als Lehrer in relativ kurzer Zeit perfekt erlernen und sie sind oft relativ gutmütig gegenüber kleinen Fehlern. Bei C stürzt fast immer gleich das ganze Programm mit einem Segfault ab ("Hilfe, was heißt das denn?", "Wo ist der Fehler?"); bei C++ bekommt man oft 3 Seiten Templategeschwurbel als Fehlermeldung (selbst für Eingeweihte oft recht unverständlich), bloß weil irgendwo ein Semikolon fehlt. Fehler sind zwar natürlich immer noch Fehler (Und das ist auch gut so!), aber dann läuft eben "nur" der Roboter falsch und man sieht sofort wo (und hoffentlich auch warum) das Programm anders läuft als man denkt.

    *: Wahrscheinlich könnte ich es. Aber ich hätte Zweifel, weil ich weiß, wie schwer es ist. Der Anfänger hingegen weiß noch nicht einmal, wie schwer die Sprache ist, da er gar keinen Überblick hat. Aber immerhin kenne ich mich gut genug mit der Sprache aus, um zu wissen, was ich nicht weiß.



  • volkard schrieb:

    Nein. In den letzten 15 Jahren sind einige Textadventures hier durchgeflogen, alle nur im krassen Anfangsstadium und in einem Programmierstil, der einem Tränen in die Augen treibt

    Ich hab noch mein erstes Textadventure auf dem C64. Der "Parser" akzeptiert nur 1:1 die in einem riesen if-Gewusel hartverdrahteten Kommandos (inkl. Rechtschreibfehler 😃 ) und wenn man Enter drückt kommt man einfach so eine Szene weiter (War wohl irgendwie undenkbar das mal jemand einfach gar nichts eingibt) 👍


  • Mod

    haernd schrieb:

    Die Komplexität soll dabei auf unterster Ebene stattfinden = Willst du links
    lang gehen oder rechts?
    -> Rechts "-verirrt- Du stehst wieder an der Kreuzung; links "Du siehst ein
    Haus, was willst du tun -> Auswahl"... etc. Begreifen die Schüler diese
    Methode/Schleifen, soll/kann es komplexer werden.

    wenn die schueler lernen sollen und garkein wissen haben, kannst du keine fertige 'schablone' nehmen. Um diese zu verstehen muesten sie ja erstmal programmieren koennen. das waere wie "koennt ihr mir einen tropischen sich selbst ueberlassenen toedlichen dschungel empfehlen, ich wollte meinen schuelern zeigen was ein kompass ist".

    zeig denen wie ein program in c aufgebaut ist
    wie man text ausgibt
    wie man text in einer schleife ausgibt
    wie man text abfragt
    wie man if abfragen macht
    wie man eine funktion aufruft
    wie ein switch funktioniert
    was ein enum ist

    und dann hast du fast alles noetige.

    enum Status
    {
    Status_Start,
    Status_Links,
    Status_Rechts,
    Status_..
    };
    
    Status = DeinStatus = Status_Start;
    
    void Startpunkt()
    {
    int in;
    printf("Willst du 1. links lang gehen oder 2. rechts?\n");
    scanf("%d",&in);
    if(in==1)
      DeinStatus=Status_Links;
    else
      DeinStatus=Status_Rechts;
    }
    
    void Rechts()
    {
     printf("-verirrt- Du stehst wieder an der Kreuzung\n");
    ...
    }
    
    void main()
    {
     while(true)
     {
      switch(DeinStatus)
      {
        case Status_Start:Startpunkt();break;
        case Status_Links:Links();break;
        case Status_Rechts:Rechts();break;
        ...
      default:
      assert(0,"unbekannter status");
      }
     }
    }
    

    so aus dem stehgreif, baut vermutlich nichtmal, nur ein beispiel.



  • Ich empfehle eine andere Programmiersprache.
    Die ganzen C-Sprachen sind auf grosse Projekte ausgelegt und viele davon schwer zu lernen. Als Anfaenger sollte man eher mit Python (empfehlen die meisten) oder Lua (empfehle ich) anfangen und kann dann auch schnell etwas vernuenftiges basteln.



  • C/C++ ist zwar DER Industriestandard, jedoch für Ensteiger nicht geeignet.
    Wenn es wirklich eine richtig Programiersprache sein muss, dann schon eher so etwas wie Pascal (z.B. freepascal).

    Jedoch halte ich speziele lern-Umgebungen/Sprachen auch für viel besser.

    Man bekommt direkt visuele Rückmeldungen, was gut für die Motivation ist und beim Verstehen hilft.

    Hier ist eine schöne List auf wikipedia. Einfach mal alles ausprobieren um zu schauen was am besten geeignet ist:

    http://de.wikipedia.org/wiki/Programmiersprachen_für_Kinder



  • Und ich finde Programmieren in der Schule grundsätzlich nicht sinnvoll, außer als Wahlfach.
    Wir hatten am Gymnasium ein halbes Jahr oder etwas weniger Pascal. Hat echt keine Sau interessiert und alle nur genervt. Und der Lehrer hat auch eine Menge Quatsch verzapft, so in der Art für "if" muss man xyz inkludieren.



  • Zu Lehrsprachen/Kindersprachen und ähnlichen gut gemeinten Versuchen. Auch zur Schblone:

    Schüler SIND ganz normale Menschen und keine Vollidioten. Was mein Ihr, was die Kinder lernen, wenn sie
    http://images.efulfilment.de/get_image/?t=82C5DAC6388F594483A58906FC4D07CE
    benutzen?



  • @haernd
    Bitte glaube was die anderen vor mir schon geschrieben haben: ein Textadventure, selbst ein "ganze einfaches", ist alles andere als einfach.

    Und C++ ist garantiert die falsche Sprache wenn du Leuten zeigen willst was Programmierung so ist ohne ihnen grossartig Grundlagen beizubringen.
    Dafür gibt es andere Sprachen die z.T. speziell dafür entwickelt wurden.
    BASIC, Logo, Blockly, ...

    Und natürlich, was ja auch schon mehrfach geschrieben bzw. angedeutet wurde: wie willst du anderen vermitteln worum's beim Programmieren geht wenn du nicht programmieren kannst?



  • @volkard
    Also ich seh das mit den "Lehrsprachen" etwas gemischt.
    1-2 Jahre lang Pascal unterrichten finde ich dämlich.
    Die 12~14 Jährigen mal kurz (wirklich kurz, vielleicht max. 1-2 Monate) bei BASIC oder Logo reinschnuppern lassen halte ich dagegen für gut.
    Also nicht nur in nem Wahlfach, sondern alle. Damit die wenigstens ne grobe Vorstellung davon bekommen was Programmieren ist.



  • Ich habe die ersten 4 Jahre meines Programmierlebens Turbo Pascal programmiert. War ne geile Zeit 😃

    Um programmieren zu lernen fand ich es gut.



  • Hallo,
    erstmal finde ich es super, dass sich so viele hier gemeldet haben!

    Ich finde die Tipps die ihr mir gegeben habt super! Die meissten Beiträge sind echt hilfreich, das freut mich!!! (Die Empfehlungen zur Didaktik/zum Unterrichten, kommentiere einfach mal nicht, das spart Text 😉 ).

    Ich werde euren Tipps nachgehen und erstmal eine einfachere Sprache suchen.
    Die Problematik dabei ist, die SuS "bei der Stange" zu halten.
    Wenn die SuS ein Ergebnis in der Hand haben, mit der sie hausieren können, bei Eltern, Lehrern, Mitschülern, mögl. Arbeitgeber, ist das natürlich einfach.
    So ein Spiel wäre genau das.
    Ich möchte den SuS halt einfach näher mit der Materie (Informatik) vertraut machen. Ich selber habe eine Ausbildung zum Fachinformatiker (SysIntegration) gemacht und weiss, dass selbst stumpfe Infos von Lehrern die wenig Plan haben helfen können.

    Aber ich werde euren Empfehlungen nachgehen und schauen was ich machen kann.
    Das Problem ist halt, die Zeit, als Lehrer hat man davon sehr wenig (ja wirklich).

    Vielen Dank nochmal!
    🙂



  • haernd schrieb:

    Das Problem ist halt, die Zeit, als Lehrer hat man davon sehr wenig (ja wirklich).

    Wird eingerahmt.


  • Mod

    volkard schrieb:

    Zu Lehrsprachen/Kindersprachen und ähnlichen gut gemeinten Versuchen. Auch zur Schblone:

    Schüler SIND ganz normale Menschen und keine Vollidioten.

    stimm ich zu, hab zu schulzeiten auch c und assembler programmiert und spass gehabt. Es zu simpel zu machen kann genau so schaden wie es helfen kann, weil es eventuell anspruchslos wirkt und auch die verschleierung von dem was im hintergrund passiert kann suspekt sein.

    simples adventure in c/c++ mix wird jedoch niemandem wirklich schaden.



  • kleines VS2010, C/C++ Projekt mit dem man durch die Levels des Spiels "Castle Adventure" laufen kann

    http://www.filedropper.com/beispiel

    nicht superschön programmiert aber es reicht zum basteln



  • Textabenteuer mit Haskell zu entwickeln, macht bestimmt auch Spaß.

    Wäre das nicht sogar der Burner überhaupt? (wenn man mal die Gui außen vorläßt). Die Bilder könnte man dann auf Plakaten nachreichen...)



  • nachtfeuer schrieb:

    Textabenteuer ... Bilder...

    😕





  • Ich glaube da missverstehst du etwas, Textadventure sind Story basierte Spiele bei denen Asciiart schlimmstenfalls beim Logo vorkommt. Der Rest ist nur Text, wie bei einem Buch.
    Ascii-Games sind wieder was anderes.


Anmelden zum Antworten