Kriterien für Programmiersprachenlehrgänge
Klarheit von Thema und Zielgruppe
- Das Werk gibt an, welche Sprache überhaupt behandelt wird. Dabei wird die genaue Bezeichnung der behandelten Spezifikation oder Implementation der Sprache, wie z.B. »ISO/IEC 14882-1998 «, verwendet. Eine allgemeine Angabe, wie »COBOL «, reicht nicht, wenn es mehrere Versionen einer Sprache gibt.
- Das Werk gibt klar an, inwieweit es Lehrwerk und inwieweit es Nachschlagewerk sein will, und entspricht dieser Festlegung dann auch.
- Das Werk gibt am Anfang oder auf dem Einband an, welche Vorkenntnisse vom Leser erwartet werden.
- Wenn das Werk eine Programmiersprache lehren soll, dann behandelt es in seinem Haupttext nichts, das nur unter bestimmten Betriebssystemen oder Entwicklungsumgebungen verwendbar ist (es sei denn, diese Einschränkung des Themas ist schon im Titel angekündigt worden). Solche Themen können höchstens in einem Anhang behandelt werden.
- Genauso soll das Werk, wenn es laut seinem Titel eine bestimmte Programmiersprache zum Thema hat, in seinem Hauptteil keine zusätzlichen Bibliotheken (wie MFC ) behandeln, die nicht Teil der Programmiersprache selber sind. (In einem Java -Buch kann natürlich die JavaSE -Standardbibliothek behandelt werden.) Akzeptabel wäre es höchstens, wenn in einem Teil des Werkes ein Überblick über die wichtigsten Bibliotheken gegeben wird.
- Fortgeschrittene Themen müssen nicht unbedingt behandelt werden, wenn sich der Lehrgang an Anfänger richtet, da es für fortgeschrittene Themen Spezialliteratur gibt. Ein Werk für Anfänger sollte eine Auswahl der grundlegendsten, wichtigsten oder am häufigsten benötigten Themen behandeln. Auf fortgeschrittene Themen kann ein Ausblick gegeben werden. Wichtig ist nur, daß klar ist, ob das Werk eine allgemeine Einführung für Anfänger ist oder ein spezielles Thema für Fortgeschrittene behandelt. Das Werk sollte auf dem Einband klarstellen, welche Themen es behandelt, und dieser Ankündigung entsprechen.
- Versprechen eines Lernerfolgs in einer bestimmten Zeit (beispielsweise „in 21 Tagen“) sind nicht immer ernst zu nehmen, da ein Programmierer seine Fähigkeiten oft erst durch langjährig Erfahrung gewinnt. Andererseits könnten solche Bücher genau so gut oder schlecht für die ersten Schritte geeignet sein, wie andere Bücher. Es zeigt sich aber, daß sie manchmal noch andere Mängeln enthalten.
Begriffe
- Die Begriffe sollte entsprechend ihrer Bedeutung in der Spezifikation der Sprache verwendet werden. (Falls die Sprache durch eine einzige Implementation definiert ist, dann entsprechend dieser Implementation und ihrem Handbuch.) Wenn eine Spezifikation beispielsweise von „Literalen“ und „Anweisungen“ spricht, dann sollten diese nicht „Konstanten“ beziehungsweise „Befehle“ genannt werden,
Sprachliche Kriterien
- Mangelhaft ist es, wenn ein Autor englische Bezeichnungen für etwas verwendet, für das es im Deutschen etablierte Bezeichnungen gibt. Sehr spezielle Bezeichnungen können aber im Englischen belassen werden, wenn sonst Mißverständnisse möglich sind. Englische Wörter, die sich als Fremdwörter etabliert haben, kann man tolerieren.
- Ein verbreiteter sprachlicher Fehler ist die Übertragung offener Verbunde aus dem Englischen. So ist es im Deutschen falsch, beispielsweise von einer „Schleifen Steuerung“ zu sprechen, es muß „Schleifensteuerung“ heißen.
- Wirkungen sollten nicht als „Nebenwirkungen“ oder—noch schlimmer—, aus dem Englischen zurückübersetzt, als „Seiteneffekte“ bezeichnet werden. (Dennoch ist es manchmal schon anerkennenswert, wenn sie überhaupt—mit welcher Bezeichnung auch immer—behandelt werden.)
- Auch „Fließkommazahl“ ist eine schlechte Rückübersetzung aus dem Englischen, wo man im Deutschen besser von einer „Gleitkommazahl“ spricht.
Kontextfreiheit kontextfreier Sprachelemente
- Datentypen werden als eigenständige Begriffe vorgestellt (etwa als Typen von Literalen und Ausdrücken) und nicht etwa nur als Teile von Variablendeklarationen eingeführt.
- Wahrheitswertige Operatoren (z.B. "<") werden auch isoliert behandelt und nicht nur als Teile von if/while-Anweisungen (so als ob man sie nur dort verwenden könnte).
Wichtige fundamentale Themen
- Das Werk weist Anfänger auf die vielen manchmal überraschenden Unterschiede zwischen der Arithmetik binärer ganzer Zahlen und binärer Gleitkommazahlen (Dualbrüchen) auf einem Binärrechner und der aus der Schule bekannte Arithmetik ganzer und reeller Zahlen hin.
Programmierstil
- Bezeichner für zeitlich unveränderliche Werte werden im Quellcode auch als Konstanten gekennzeichnet und nicht unnötig allgemein als Variablen.
Eventuell weitere nützliche Inhalte
Die folgenden Inhalte sind nicht ganz so wichtig.
- Falls Schleifen oder Variablen (Objekte) behandelt werden, werden auch deren Invarianten behandelt.