Hallo Tom,
ich vertrete die Meinung, dass man im Unterricht als erstes einfache Assemblerprogrammierung auf einem Realmode-System lernen sollte. Das verschafft einem einerseits den technischen Einblick in die Funktionsweise und andererseits eine gewisse Achtung vor allen "vernünftigen" Hochsprachen, sowie ein gewisses Augenmaß für "unsinnige" Hochsprachen.
Auf gar keinen Fall! Bloß nicht! In Assembler gibt es keinerlei (!) abstrakten Konstrukte, es gibt (vereinfacht gesagt) nur Sprünge und elementare Rechenoperationen. Da wird das Abstraktionsvermögen überhaupt nicht geschult, wenn man mit Assembler anfängt, schreibt man später garantiert nur Spaghetti-Code der übelsten Sorte.
Und auch der Real-Mode schlägt in die gleiche Kerbe: Kein Memory Management und damit kein virtueller Speicher und damit Speicheradressierung nur über feste Segmente, keine Trennung von Prozessen, etc. Wenn man Leuten erklärt, wie man für Real Mode programmiert, verhindert man auch hier wieder die Möglichkeit, Abstraktion zu lernen.
Und in meinen Augen ist Abstraktion VIEL VIEL wichtiger, als sich mit den Details irgend eines Prozessors rumschlagen zu müssen. Wenn ich prinzipiell weiß, wie ich einen Algorithmus in einer Programmiersprache umsetzen kann, dann kann ich auch eine beliebige andere Programmiersprache lernen und es dort genauso tun. Wenn ich mich dagegen die ganze Zeit nur mit Calling Conventions und Assemblersyntaxkonventionen (sind ja auch nicht einheitlich) rumschlage, lerne ich nicht, wie ich abstrakte Probleme analytisch angehe und sie dann programmiertechnisch umsetze.
Und ich habe kein Problem damit, dass Schüler nicht den effizientesten Code schreiben. Wozu auch? Effizienz ist zwar für das tatsächliche Arbeiten wichtig, aber beim ersten Erlernen der Programmierfertigkeit ist Effizienz erst einmal nicht relevant.
Das ist in meinen Augen das gleiche Spiel wie mit dem unsäglichen "Office-Unterricht" in der Schule: Fast überall wird einem dort beigebracht, wie man Word und Excel konkret als Programm bedient - und wenn sich etwas ändert in einer neueren Version oder die Schüler späpter einmal ein anderes Programm verwenden sollen, sind sie aufgeschmissen. Wenn man ihnen dagegen beibringen würde, wie man am besten die Fertigkeiten "Textverarbeitung" und "Tabellenkalkulation" erlernt - und dies eben an Hand von z.B. Word und Excel, dann kennen die Schüler die Features von Excel hinterher vielleicht weniger gut, als Schüler, die direkt "Excel gelernt" haben, allerdings kann man sich das noch eher selbst aneignen, wenn man das abstrakte Konzept "Tabellenkalkulation" mal verstanden hat.
Viele Grüße,
Christian