[linux-l] Geeks Traum [hier: Referenzsysteme]

Thorsten Stöcker tstoecker at baerensoftware.de
Fr Dez 28 01:42:33 CET 2007


Moin,

Am Donnerstag, 27. Dezember 2007 15:39 schrieb Volker Grabsch:
> On Thu, Dec 27, 2007 at 10:23:55AM +0100, Thorsten Stöcker wrote:
> > > [1] Der Rechner "amsel.informatik.hu-berlin.de" ist eine SunOS/Sparc-
> > >     Maschine und wird an der Uni gern als Referenzsystem genommen
> >
> > Ganz tolle Lösung. Ich weiß zwar nicht in was ihr programmiert, aber ich
> > dachte eigentlich immer, das nicht so sehr die Lauffähigkeit auf einer
> > "Plattform",
>
> Das ist ein formales Kriterium, genauso wie man einen Korrekturrand
> auf schriftlichen Abgaben lässt.
>

Echt? Habe ich nie gemacht, aber ich habe ja auch ein Labberfach studiert.

> Die Uni ist vielfälig. Natürlich wird in den Vorlesungen Wert auf
> Zusammenhänge, Erklärungen, etc. gelegt. Wer das nicht drauf hat,
> besteht niemals die mündlichen Prüfungen.
>

Das kann ich nicht beurteilen, ich weiß nur, daß das Denken in Zusammenhängen 
nicht weit verbreitet ist, völlig unabhängig von Profession und Bildung.

> Aber es gibt eben auch Übungsaufgaben, in denen man mehr "handwerkliche"
> Dinge lernen soll. Dazu gehört das Ausarbeiten von Diagrammen & Schemas,
> dazu gehören kurze, präzise Erläuterungen (keine Labertexte). Und dazu
> gehört auch Programmierung.
>

Programmierung ist lediglich die Umsetzung einer abstrakten menschlichen 
Vorstellung in eine Sprache, die die Maschine versteht. Sprich ob Du die 
Lösung in C, Assembler oder PHP programmierst ist erst ein Mal egal. Ein 
B-Tree ist ein B-Tree.

> > Sie werden nunmehr 6 Semester Informatik hören und Programme schreiben
> > und das können Sie erledigen ohne auch nur einen Computer gesehen zu
> > haben.
>
> Sowas kann man sich in der theoretischen Informatik erlauben, aber
> nicht in der technischen und der praktischen Informatik. Das Studium
> besteht aber aus allen *drei* Sachen.
>

Weiß ich nicht, bei mir war es Bestandteil der BWL-Fachrichtung.

> Obwohl ... wir hatten mal so eine Klausur im Grundstudium, wo eine der
> Aufgaben darin bestand, auf dem Papier möglichst viele Syntaxfehler
> in einem C-Programm zu finden. *Das* ist erstmal realitätsfern. 

Nein, das ist die von Dir definierte Praxis. Syntaxfehler sind mit Abstand die 
häufigsten Fehler. Und ein Compilerlauf nur wegen Syntax-Fehlern zu 
wiederholen ist schlicht unnötig und Zeitverschwendung. Weißt Du in Pascal 
gibt es einen gewaltigen Unterschied zwischen

procedure (var variable)  und procedure (variable)

erster lieferte den Wert der Variable zurück, zweiterer nicht. Solltest Du bei 
der Programmierung einer doppelt verketten Liste vergessen Deine 
Zeiger-Operationen mit (var ...) aufzurufen wirst Du viel Freude haben.


> Keine 
> Ahnung, was sich der Prof dabei gedacht hat. 

Ich schon.

> Dann doch lieber den Umgang 
> mit Compiler-Fehlermeldungen und Debuggingtechniken lernen. 

Compilerfehlermeldungen??? Man, wieviele Generationen Compiler kennst Du und 
wieviele davon produzieren bei Syntax-Fehlern aussagekräftige 
Fehlermeldungen. while true do ist ein Syntax-Fehler, den viele Compiler 
nicht bemerken, beliebt sind auch Vertauschungen von Zeigern und deren 
Adressen, auch diese Fehler findet der Compiler nicht, weil es ihm schlicht 
egal ist ob Du die Adresse des Zeigers verarbeitest oder den Wert auf den er 
verweist. Besonders lustig wird dies, bei abgeschalteter Typprüfung.

> Programmieren 
> tut man *mit* dem Computer, nicht gegen ihn.
>

Das hängt vom OS ab. Denn zwischen Dir und Deinem Computer oder Dir und Deiner 
Programmiersprache und dem Computer sitzen ziemlich viele Stufen der 
Übersetzung und alle diese Übersetzungen haben Menschen programmiert, die 
Fehler machen. :-) 

Du programmierst weder mit noch gegen den Computer, Du programmierst den 
Computer.

Einfaches Beispiel, ich habe mal jemanden aufgetragen (zu Erklärungszwecken), 
ein Programm zu schreiben damit irgend eine beliebige Person ein Stück Butter 
aus dem Kühlschrank in der Küche holt. In der endgültigen Version waren das 
einige hundert Zeilen Code.

Ohne Compiler. Ohne Debugger.

Für die einfache Anweisung "Geh in die Küche und hole ein Stück Butter aus dem 
Kühlschrank." 

Und das ist meiner Meinung nach wichtiger, als zu wissen Code 220 bei MS-C# 
heißt ich habe "}" zu vergessen oder ich muß in Procedure X einen Tracepoint 
auf Variable Y setzen.

Gruß
Thorsten



-- 
Bären-Software
Thorsten Stöcker
Wichernstr. 40
13587 Berlin-Spandau
T: +49 (0)30 / 333 098 12
F: +49 (0)30 / 333 098 13
M: +49 (0)160 / 973 101 68
W: http://www.baerensoftware.de



Mehr Informationen über die Mailingliste linux-l