Faszination Programmieren

Unsere Projekte sind sorgfältig geplant, die Meilensteine genau definiert, die Ausrüstung erprobt und vollständig. Im Sprachgebrauch der Alpinisten ist das der Expeditionsstil.

 

Aber dies hier ist unser Boulder-Gelände zum ungeplanten Herumturnen in Kletterschuhen und kurzen Hosen. Jedes Programm in dieser Rubrik hat mindestens eine der folgenden Eigenschaften: cool, witzig, trickreich, lehrreich. Vielleicht ist das eine oder andere sogar nützlich, aber darauf kommt es nicht an.

 

Wir stellen in lockerer Folge Programme vor, die Kollegen oder Freunde zur Verfügung stellen, und die das genannte Kriterium erfüllen. Als Programmiersprache ist alles erlaubt von Ada bis XSLT; ein gewisser Schwerpunkt wird auf Java, Python und Scala liegen. Geplant ist aber auch ein Beitrag in Forth, der unlesbarsten Programmiersprache der Welt.

 

Es gibt unendlich viele Bücher zum Thema Programmierung, aber drei drücken besonders gut aus, was uns wichtig ist: A Discipline of Programming von E. Dijkstra (Prentice Hall, 1976), Programming Pearls und More Programming Pearls von J. Bentley (Addison-Wesley, 1986 und 1988) und das unvergleichliche Structure and Interpretation of Computer Programs von H. Abelson und G. Sussmann (McGraw-Hill, 1996). Ist es Zufall, dass diese Bücher dermaßen alt sind?

 

Sudoku und Str8ts: Suchen mit System
Ein Python-Rahmenprogramm löst mit der Tiefe-Zuerst-Suche beliebige Suchprobleme (natürlich abgesehen von Zeit- und Platzproblemen). Es läuft gegen ein Tiefe-Zuerst-Interface. Zwei Python-Programme, die dieses Interface implementieren, lösen Sudoku- bzw. Str8ts-Probleme in einer Zehntelsekunde.

 

Ausführliches Papier zum Thema "Sudoku und Str8trs: Suchen mit System": PDF

Codebeispiele: Download