Direkt zum Hauptbereich

Posts

Es werden Posts vom Juni, 2007 angezeigt.

Kann man Programmieren lernen?

Kann man das Programmieren erlernen? Sicher! Aber kann es jeder erlernen? Ich bin über einen Blog auf einen interessanten Artikel gestossen (" The camel has two humps (working title) " von Saeed Dehnadi und Richard Bornat). Darin berichten die Autoren von den vielen vergeblichen Versuchen, die es gegeben hat, das Programmieren erfolgreich zu unterrichten. Denn zwischen 30 und 60 Prozent der Studierenden an Universitäten und Hochschulen scheitern regelmäßig am ersten Programmierkurs. Bei allen Bemühungen: Die hohen Durchfallquoten scheinen unabänderlich zu sein. Die Autoren behaupten, die Programmierbegabung mit einem Test ermitteln und damit vorhersagen zu können, ob ein Kandidat bzw. eine Kandidatin das Programmieren erfolgreich erlernen wird. Ich halte die durchgeführte Studie für methodisch kritisch, darum sind die Aussagen und Spekulationen mit großer Vorsicht zu genießen. Dennoch lassen Sie uns einmal anschauen, was Dehnadi und Bornat da untersucht haben. Die beiden geh

Suchen mit Strategie

In den vergangenen Wochen habe ich mich viel mit XML befasst. Für die Verarbeitung eines XML-Dokuments habe ich mir ein Python-Programm geschrieben, das die XML-Darstellung direkt in einen Objektbaum abbildet -- alle weiteren Bearbeitungsschritte führe ich dann in dem Objektmodell aus. Jedes Objekt in diesem Baum hat einen Vorgänger ( parent ) und keinen oder mehr Nachfolger ( childs ). Das ist sehr ähnlich zu DOM. Bei der Verarbeitung einer solchen Baustruktur tritt ein Problem immer wieder auf: Sie suchen Knoten (= Objekte) in dem Baum, die einem oder mehreren Kriterien genügen. Für diese Aufgabe kann man eine sehr flexible query-Funktion programmieren: def query(criteria): assert callable(criteria) result = [] for element in allElements(): try: if criteria(element) == True: result.append(element) except: pass return result Dieser query-Funktion übergibt man ein Kriterium in Form eines Lambda-Ausdrucks (das ist eine anonyme,

Maschinelles 3D-Sehen

Bislang hat es viele Versuche gegeben, Computern (bzw. Robotern) das Sehen beizubringen -- mit mäßigem Erfolg. Basis für eine erfolgreiche Orientierung im Raum ist die Fähigkeit, die Welt dreidimensional wahrzunehmen. Wir Menschen bekommen das mit unseren zwei Augen hervorragend hin. Und deshalb hat man versucht, das Erfolgsmodell aus der Natur, das "Stereosehen", zu imitieren. Allerdings ist man damit nicht weit gekommen. Es ist schon bei einem Bild extrem aufwendig und schwierig, aus den zahllosen Bildpunkten abzuleiten, wo Objektgrenzen entlang verlaufen. Bei zwei Bildern wird es nicht weniger einfach, zumal die zwei Bilder in Bezug gesetzt werden müssen und daraus mehr oder weniger präzise eine Information über die Raumtiefe gewonnen werden muss. Das ist so schwierig, dass man es bis heute nicht wagt, autonome Fahrersysteme am "normalen" Straßenverkehr teilnehmen zu lassen. Es gibt auch keine kleinen staubsaugenden oder rasenmähenden Roboter zu kaufen, die sich