[Python-de] Kleine Aufgabe, große Wirkung

Christian Tismer tismer at tismer.com
Sun Apr 6 06:50:15 EDT 2003


Liebe Python-de Liste,

wie Ihr wißt, arbeite ich mit meinem Stackless-Zeug zur Zeit
fü IronPort. Die haben kürzlich neue Bewerber mit einer
nicht ganz trivialen Aufgabe getestet und sind zu einem bestürzenden
Ergebnis gekommen: Nicht eine Sau konnte den Test bestehen!

Nun bin ich ja als Schweinepuckel bekannt, und habe mir gedacht,
da mach' ich doch mal den gleichen Test mit den Hirnies aus
Python-de, mal sehn, wer was kann und wer nicht.

Die Aufgabe ist eigentlich nicht wirklich schwer und sollte
für jedermann lösbar sein, der ein paar algorithmische
Grundlagen drauf hat und diese auch anzuwenden weiß.
(Auf weia, jetzt seit Ihr schon total sauer und auf 180,
aber das wollte ich ja auch so erzeugen :-))

Also, jetzt geht's los: Gegeben ist ein unsortierter Baum.
Den sollt Ihr "breadth-first" durchsuchen, linear, also es ist
gar kein Such-Problem, einfach nur eine Frage der richtigen
Reihenfolge. Die Knoten des Baums sehen beispielsweise so aus:

             1
     2               3
  4      5       6       7
8 9   10 11   12 13   14 15

Was man tun soll, ist, diese Knoten in der durch die Zahlen
angegebenen Reihenfolge zu durchsuchen. Der Vorschlag ist,
eine Testfunktion zu übergeben, welche versucht, den richtigen
Knoten zurückzugeben. Ich empfehle, ein print-Statement
einzubauen, welches verifiziert, daß Ihr wirklich in der
vorgegebenen Reihenfolge sucht.

Der Einfachheit halber gebe ich hier einen Test-Baum vor, der
trivialerweise die Knotennummern in dieser Reihenfolge
enthält. Das ist zwar nicht der generelle Fall, aber für das
Beispiel völlig ausreichend.

Hier der Beispiel-Baum: [value, child1, child2]

t = [1,
      [2,
       [4,
        [8, None, None],
        [9, None, None]],
       [5,
        [10, None, None],
        [11, None, None]]],
      [3,
       [6,
        [12, None, None],
        [13, None, None]],
       [7,
        [14, None, None],
        [15, None, None]]]]

Jetzt bin ich wirklich gespannt, ob die Deutsche
Informatik-Grundausbildung effektiver ist als die Amerikanische.
Leute, die die Lösung schon wußten, bitte ich, sich zurückzunehmen.
Ich muß zu meiner Schande gestehen, ich habe (nach einer dicken
Fete, allerdings) glatt eine Viertelstunde für die Lösung
gebraucht.
Sie ist 9 Zeilen lang, und ich habe mir danach eine mit 7 Zeilen
ansehen müssen, die zwar etwas länger rechnet, aber in der Tat
etwas besser ist. Wie auch immer, jeder Lösung in der Größenordnung
ist akzeptabel.

Ich habe eine neue Firma gegründet, centera.de . Diese Firma wird
Software-Lösungen aller Art bearbeiten, mit Präferenz auf
Python, versteht sich. Wer obiges Problem in etwa in meiner Zeit
lösen konnte, kann sich da mal gerne mal bei mir vorstellen.
Ich brauche gute Leute, die auf Consulting-Basis mit mir arbeiten
möchten.

Sollten sich genügend viele finden, die mit dieser Aufgabe
substantielle Probleme haben, schlage ich hingegen folgendes
vor: Ich biete Euch ein "Coaching" an, bei dem intensiv mehrere
Wochen lang geübt wird, solcherart Probleme zu lösen.
Die hierbei geforderte Problemlösungsstrategie ist genau das, was
die Informatik-Ausbildung hier und in anderen Ländern konsequent
versäumt zu lehren und zu vermitteln. Zumindest war dies mein
erster, niederschmetternder Eindruck nach dem Bericht von
IronPort.
Also, wer braucht eine Ausbildung als "Problemlöser"?

ciao -- chris
-- 
Christian Tismer             :^)   <mailto:tismer at tismer.com>
Mission Impossible 5oftware  :     Have a break! Take a ride on Python's
Johannes-Niemeyer-Weg 9a     :    *Starship* http://starship.python.net/
14109 Berlin                 :     PGP key -> http://wwwkeys.pgp.net/
work +49 30 89 09 53 34  home +49 30 802 86 56  pager +49 173 24 18 776
PGP 0x57F3BF04       9064 F4E1 D754 C2FF 1619  305B C09C 5A3B 57F3 BF04
      whom do you want to sponsor today?   http://www.stackless.com/






More information about the Python-de mailing list