Liebestest(a,b)

Gestern letzter Schultag, danach sind ein gutes Dutzend Lehrer noch zum Pizzaessen gegangen. Das ist schön, wenn nicht alle gleich davon rennen, bloß weil Wochenende ist oder Ferien sind.

Davor habe ich im Informatikunterricht jetzt endlich einen Zugang zu Funktionen gefunden, mit dem meine Zehntklässler mehr anfangen können:

def Liebestest(a,b):
   ...
   return ergebnis

Die Funktion nimmt zwei Strings als Argumente und liefert nach einem bekannten Sechstklässleralgorithmus einen Prozentwert zurück. Damit kann man testen, wie gut zwei Leute zusammenpassen. So ergibt Liebestest("HerrRau", "FrauRau") einen Wert von 37%, aber umgekehrt Liebestest("FrauRau", "HerrRau") einen Wert von 73%.

Richtig zuverlässig ist der Test also wohl nicht.

Da das Schreiben der Funktion selber vorerst zu schwierig für die Schüler ist, stelle ich sie ihnen zur Verfügung und sie können sie mit

from klasse10c import *

in ihre eigene Datei importieren. Damit lernen sie dann auch gleich, wie nützlich Funktionen auch deshalb sind, weil man arbeitsteilig damit arbeiten kann. Und wenn sie später einen besseren Liebestest programmieren wollen, können sie das machen, ohne ihr eigenes Programm ändern zu müssen.

Für die Schüler bleibt nämlich die Aufgabe, ein Programm zu schreiben, etwa nach folgendem Muster:

liebestestprogramm.png

Da brauchen sie eine while-Schleife dazu, und wenn sie gut sind, noch eine zweite außenrum. Ein anderes Programm könnte so aussehen, dass man seinen eigenen und fünf fremde Namen eingibt, und das Programm gibt einem dann einen Ratschlag, wer am besten zu einem passt.

Nach den Ferien geht’s dann weiter mit Fischpopulation und Bubblesort.

Und mit Bubblesort kann man dann alle Schüle der Klasse sortieren nach Liebestest(eigener Name, Mitschülername).

Den Struktogramm-Editor von Hans-Ulrich Steck habe ich übrigens von hier.
Von Thomas Schaller gibt es alternativ einen Flussdiagramm-Editor.

12 Gedanken zu “Liebestest(a,b)

  1. Verzeihung, ich wollte nicht kryptisch sein: Man schreibt unter jeden Namen die Häufigkeit des ersten, zweiten, dritten Buchstabens innerhalb dieses Namens. (Jeden Buchstaben nur einmal zählen.)
    Dann zählt man bei gerader Anzahl von Ziffern jeweils zwei benachbarte Paare zusammen und erhält so eine weitere Reihe von Ziffern. Bei einer ungeraden Anzahl zählt man jeweils alle zwei Nachbarn zusammen (die inneren Ziffern also jeweils zweimal). Das ist einfacher als es klingt, schwieriger zu programmieren als man denkt, und wird so oft wiederholt, bis nur eine Ziffer übrigbleibt:

    liebestest.jpg

    Gibt 57% Erfolgsaussichten.

  2. Und wie funktioniert nun der mir leider unbekannte ‘bekannte Sechstklässleralgorithmus’?

  3. Lieber Kollege,
    den Einsatz von Python im Informatikunterricht halte ich ebenfalls für eine ausgesprochen gute Idee.
    Für einen interaktiven Strukturgrammgenerator, der auch ablauffähige(!) Struktogramme erstellt, möchte ich auf PyNassi von Ingo Linkweiler hinweisen:
    http://www.ingo-linkweiler.de/diplom/

    Außerdem denke ich, dass im Zusammenhang mit der Punktnotation im 6. Jahrgang darüber nachgedacht werden sollte, Ponto einzusetzen: damit kann OpenOffice mit Hilfe von Python interaktiv gesteuert werden – einzugeben sind nur die Elemente, wie sie in den Schulbüchern zur Notation verwendet werden. Mehr dazu …
    http://ddi.cs.uni-dortmund.de/projekte/ponto.html

    Als Ausblick sollte vielleicht auch mal überlegt werden, Mobiltelefone im Informatikunterricht zum Programmieren einzusetzen:
    http://haspe.homeip.net:8080/cgi-bin/pyblosxom.cgi/python/2007-03-06_SuM-on-SymbianS60.html

    lg
    L. Humbert

  4. Sicher ist der Test zuverlässig! Wenn zwei zusammenpassen, ist das ja nicht, weil beide 50% Toleranz haben, das kann doch durchaus ungleich sein. Denn Toleranz ist einfach nicht gerecht verteilt in dieser elenden Welt ;-)

  5. @L. Humbert: Danke für die Tipps. PyNassi habe ich mir vor einiger Zeit schon angeschaut, ich hatte aber Schwierigkeiten (und habe sie noch), das Programm unter Python 2.5 laufen zu lassen – vielleicht, weil ich bei der Installation von Qt 4.2.3 etwas falsch mache, so dass Python keinen Pfad zu Qt kennt? Ich arbeite dran und schaue mir währenddessen Ponto an.

    Nachtrag zu Ponto: Schöne Sache, passt mir gut in den Informatikunterricht. Ich werde zwar ein bisschen beim Systembetreuer betteln müssen… oder einfach Portable OO ins Verzeichnis kopieren.

  6. VIONA on 11.5.2007 at 20:55 sagte:

    HI ICH BIN VERLIBT

  7. A-One on 25.5.2007 at 22:53 sagte:

    eh herr rau das mit deinem test da mit den zwei namen das wenn du dann ein namen angibst bei dem dann 9 rauskommt mommt die zahl 9 immer raus ich habe mal ein test gemacht wenn du die namen schreibst war mal 96 rausgekommen und wenn du die namen drehst 69 % es kommt immer an wie die namen geschrieben sind…

  8. Henning on 31.10.2007 at 21:14 sagte:

    das ist unlogisch das eine mal kommt 416 das andere mal 164 raus weil ich nen langen Namen hab und 416 oder 164 als % zahl…..ist wohl eher ein dummer test da such ich lieber weiter!!!!

  9. wurli on 3.1.2008 at 0:54 sagte:

    ich finde die idee, so etwas den schülern beizubringen sehr gut, und dass kein 100%iges ergebnis raus kommt ist ja sowiso kein geheimnis, also sollte man das nicht ernst zu ernst nehmen!

  10. mUmpf on 4.1.2008 at 1:44 sagte:

    alleine wenn man peter als beispiel nimmt kommts am ende auf 11. das heißt bei nem zweiten namen den man auch durchrechnet und die beidne ergebnisse addiert käme eine prozentzahl heraus die über 100 liegt…

    wenn man noch ein wenig umstruktiert oder ein bsichen ausfeilt wird das ja vllt noch.

  11. Nachdem das jetzt schon der zweite ist: Wenn bei einem Partner “11” herauskommt oder “16”, dann sind das, wie in dem Beispiel oben, nur Zwischenergebnisse. Man macht dann noch einen Schritt weiter, so dass in diesen Fällen “2” beziehungsweise “7” herauskommt.

  12. mUmpf on 4.1.2008 at 17:15 sagte:

    asou ^^

    okay
    sorry… is logisch.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Manchmal sollte man anderen das letzte Wort lassen, selbst wenn sie eine andere Meinung haben als man selber.

Post Navigation