Einführung in den Java-Lehrgang (Einführung in den Java-Lehrgang), Einführung, Seite 722117
https://www.purl.org/stefan_ram/pub/java-einfuehrung (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
Java-Kurs

Einführung in den Java -Kurs

Dieser Kurs soll

Kleine Programmbeispiele

Ich lese immer wieder größere Programme aus der Praxis oder Berichte über Bewerbungstests für Programmierer und verfüge selber über Erfahrungen in der Programmierung von Programmen sowohl für meinen eigenen Bedarf als auch im Auftrag Dritter. Daher weiß ich, was in der Praxis benötigt wird.

Im Kurs können wir jedoch größere Programme noch nicht  behandeln, weil die meisten Kursteilnehmer damit überfordert wären. Deswegen isoliere ich einzelne Techniken aus größeren Programmen und stelle diese zunächst an kleinen Beispielen isoliert vor, damit sie für möglichst viele Teilnehmer verständlich sind.

Daher können die Kursteilnehmer sicher sein, daß alles was sie im Kurs lernen auch in der Praxis benötigt wird. Manchmal sieht man auch schon im Kurs, daß etwas, das am Anfang des Kurses vorgestellt wurde, gegen Ende des Kursus benötigt wird.

Es ist mir aber nicht immer möglich, die Frage „Wofür braucht man das?“ gut zu beantworten, da sich dies manchmal erst an Hand größerer Programm erklären läßt, die aber an der Stelle des Kurses, an der diese Frage gestellt wird noch nicht behandelt werden können.

Wenn Sie möglichst schnell in die Lage versetzt werden wollen, Ideen durch das Schreiben größerer Programme zu verwirklich, ist der beste Weg dahin, erst einmal kleine Programme zu verstehen. Denn, wenn jemand nicht in der Lage ist ein Programm mit drei Zeilen zu verstehen, warum sollte er dann ein Programm mit Hunderten von Zeilen beherrschen können?

Ein Kurs für Weiterlerner

Der Kurs richtet sich an „Weiterlerner“, also Teilnehmer, die nach dem Ende des Kurses weiterlernen, um Java  schließlich einmal praktisch anzuwenden. Es hat wenig Nutzen, nur die Grundlagen zu lernen, wenn man dann nicht darauf aufbaut.

Der Kurs will nicht  zum Lernen der Sprache Java  motivieren, denn

Entsprechend werden auch eher Themen nach dem Kriterium ausgewählt, ob man sie braucht, wenn man Java  weiterlernen oder anwenden will, nicht danach, ob sie besonders einfach verständlich sind oder Erfolgserlebnisse vermitteln.

Entsprechend ist dieser Kurs weniger geeignet, wenn es darum geht, erste Erfolgserlebnisse im Zusammenhang mit dem Programmieren zu vermitteln. Dafür wird gerade der Kurs „Python leicht gemacht“ vorbereitet.

Lesehinweise

Der solide Aufbau

Bei einem soliden Aufbau  eines Kurses, werden in keiner  Lektion Begriffe oder Aussagen verwendet, die erst später  eingeführt werden. Umgekehrt gesagt, lernt man alle Dinge, bevor  man sie braucht. Dies hat zwei wichtige Konsequenzen:

Diese beiden Punkte werden weiter unten noch einmal aufgegriffen und etwas ausführlicher behandelt.

Lektionen oder Abschnitte mit einem Stern »*«

In Kurzkursen werden die mit einem Stern „*“ gekennzeichneten Lektionen oder Abschnitte übersprungen.

Lektionskennzahl und Lektionsnummer

Die mit „72“ beginnenden sechsstelligen Lektionskennzahlen, wie beispielsweise „722421“, ändern sich seltener als die einen Punkt enthaltenden Lektionsnummern, wie beispielsweise „2.14.“, und sind daher besser für Notizen geeignet. Die kürzeren Lektionsnummer mit einem Punkt sind aber für die Kommunikation zu einem gegebenen Zeitpunkt besser geeignet.

Vereinfachungen

Der Kurs enthält gewisse Vereinfachungen  und beschränkt sich zunächst auf eine Auswahl  von Sprachelementen. Manchmal beziehen sich Aussagen auf den Kenntnisstand des Kurses an einer bestimmten Stellen, obwohl sie nicht gelten würden, wenn man vollständige Kenntnisse der Sprache zugrundelegt.

Manchmal werden an bestimmten Stellen zur Vereinfachung Regeln mitgeteilt, die nicht ganz stimmen, weil es noch Ausnahmen gibt, die aber zur Vereinfachung an dieser Stelle noch nicht erwähnt werden soll. Zur Vereinfachung wird auch nicht  immer darauf hingewiesen. Oft werden die Ausnahmen dann später im Kurs mitgeteilt, wodurch solche Regeln dann korrigiert werden.

Bestimmte Möglichkeiten der Sprache werden verschwiegen, wenn sie an einer bestimmten Stelle eher verwirren würden.

Dahinter steht der Gedanke, daß ein Leser, dem der Einstieg erleichtert wird, im Laufe der weiteren Beschäftigung mit der Sprache die Ausnahmen noch kennenlernen wird. Wenn ein Leser aber gleich am Anfang durch eine zu detaillierte Wiedergabe aller Details so abgeschreckt werden würde, daß er sich nicht weiter mit dem Programmieren beschäftigt, wird er es nie  lernen. Daher wird es bewußt ein Kauf genommen, daß ein fortgeschrittener Leser mit Vorkenntnissen vielleicht die eine oder andere Formulierung findet, die aus seiner Sicht nicht korrekt oder nicht vollständig ist.

Motivation

Leute beginnen normalerweise Programmieren zu lernen, weil sie Programme schreiben wollen.

Und dann finden sie raus, daß sie eine Menge Zeug lernen müssen, bei dem die Beispiele meist sehr weit von der Art von Programm entfernt sind, das sie schreiben wollen.

Um ihre Motivation aufrechtzuerhalten kann es hilfreich sein, ihnen zu zeigen, daß das, was sie lernen, kleine Teile eines großen Puzzles sind, das es ihnen ermöglichen wird, ihre Ziele zu erreichen.

Es ist ganz natürlich für Schüler, sich zu fragen, ob das, was sie lernen, ihnen in der wirklichen Welt hilft.

Arne Vajhøj, Sun, 12 Apr 2015 22:12:31 -0400 – übersetzt von Stefan Ram

Der Kurs ist weitgehend so aufgebaut, daß Vorgriffe auf Themen, die erst später behandelt werden, vermieden werden. So kann man ohne Vorkenntnisse in kleinen Schritten  lernen, weil in jeder Lektion immer nur ein  neues Thema hinzugefügt wird, ohne daß dabei irgendwelche Zwischenschritte übersprungen oder als bekannt vorausgesetzt werden. Andererseits ist es bei der Vorstellung eines Themas auf diese Weise nicht immer möglich, schon Anwendungen dieses Themas zu zeigen. Deswegen wird sich der Leser manchmal die Frage stellen „Und wofür braucht man das? “. In der Regel wird dies dann entweder später im Kurs oder bei der Anwendung der Programmiersprache in der Praxis ersichtlich werden, es ist aber bei der ersten Vorstellung eines Themas manchmal tatsächlich nicht gleich zu erkennen. Der Leser kann darauf vertrauen, daß er nur Dinge lernt, die auch wichtig sind (wenn man überhaupt Java  lernen will) und daß diese Dinge bei der Anwendung der Programmiersprache in der Praxis voraussichtlich auch benötigt werden werden. Viele Themen, die behandelt werden, werden aber auch schon später im selben Kurs oder in einem auf den Kurs aufbauendem Kurs behandelt, aber manchmal muß man etwas warten, bis die Stelle kommt, an der etwas verwendet wird.

Es ist auch schwierig, beim Lehren von Grundlage ständig zu erklären, wofür man diese später brauchen wird, weil dazu ständig Vorgriffe auf noch nicht Gelerntes nötig wären, die verwirrend wären und Zeit kosten würden.

Tatsächlich findet sich eher das umgekehrte Problem, nämlich, daß etwas am Anfang des Kurses nicht richtig gelernt wird und dann später dem Kurs nicht mehr gefolgt werden kann, weil benötigte und schon behandelte Grundlagen nicht bekannt sind. Vielleicht kann diese Erfahrung auch als Motivation zum Lernen der Grundlagen dienen. Falls Grundlagen fehlen, kann der Leser aber natürlich auch jederzeit im Text des Kurses noch einmal zurückkehren und diese nachlesen. In einem Kurs kann der Dozent auch zu ihnen befragt werden.

Wie Arne Vajhøj  schreibt, werden im Kurs kleine Puzzlestücke  vorgestellt, die ein Programmierer schließlich zu einem fertigen Programm zusammensetzen kann. Um bestimmte Programmieraufgaben anzugehen, werden aber oft schon viele  Puzzlestücke benötigt. Deswegen kann das Zusammespiel der Puzzlestücke am Anfang des Kurses, wo erst wenig Puzzlestücke  bekannt sind, noch nicht immer so gut gezeigt werden.

Besonders am Anfang des Kurses, in den Teilen 0 und 1 werden stark vereinfachte  Programmbeispiele behandelt, bei denen es nur um das Erlernen der Grundlagen geht, aber noch nicht darum, praktisch nutzbare Ergebnisse zu erzielen. Daher brauche Sie sich zunächst noch nicht zu fragen, welchen Nutzen die vorgestellten Techniken haben. Die vorgestellten Techniken haben  einen Nutzen. Aber dieser wird erst etwas später  erkennbar. Um so mehr man gelernt hat, um so mehr kann man dann auch praktisch anwenden!

Persönliche Motivation

Das Erlernen einer Programmiersprache wie Java  ist nicht  für jeden  das Richtige! Ob ein Leser Java  lernen möchte, muß er selber wissen oder durch Dialoge (etwa mit Berufs- oder Studienberatern oder Menschen in einer ähnlichen Situation wie er) herausfinden. Es ist auch möglich, daß Java -Fähigkeiten in der Schule, der gewählten Ausbildung oder im gewählten Beruf verlangt werden. Dieser Kurs richtet sich an Leser, welche aus dem einen oder anderen Grunde schon entschlossen sind, Java  zu erlernen oder es wenigstens einmal probieren zu wollen. Gleichzeitig kann ein Leser, der sich an Hand des Kurses eine Weile mit Java  beschäftigt hat, dann auch besser beurteilen, ob ihm das Programmieren mit Java  so gefällt, daß seine Beschäftigung damit fortsetzen möchte.

Übungsaufgaben

Die Übungsaufgaben können und sollen immer mit den Sprachmitteln gelöst werden, die bis zu diesem Zeitpunkt schon vorgestellt wurden  – also nicht unter Vorausgriff auf Sprachelemente, die erst später behandelt werden werden.

Am Anfang und am Ende des Kurses gibt es weniger Übungsaufgaben, dazwischen sind sie oft unregelmäßig verteilt, da einfachere Dinge weniger und schwierigere Dinge mehr geübt werden müssen. Am Anfang des Kurses können noch nicht so viele Übungsaufgaben bearbeitet werden, weil zunächst erst einmal gewissen Grundlagen erlernt werden müssen. Am letzten Termin des Kurses reicht die Zeit manchmal nicht mehr für Übungen der vorgestellten Inhalte aus.

Zu den Übungsaufgaben gibt es keine schriftlichen Lösungen.

In den Kursen wird der Dozent die Lösungen der Übungsaufgaben mündlich mitteilen und manchmal auch noch etwas über die Programmiersprache erklären, das man an der Lösung einer Übungsaufgabe erkennen kann. Daher sind die Lösungen für alle Personen, die einen Kurs persönlich besuchen, zugänglich.

Weil die Übungsaufgaben für Kursbesucher ohnehin zugänglich sind, hatte es bisher noch keine Dringlichkeit, die Lösungen auch schriftlich festzuhalten. Es gab bisher noch andere, wichtigere und dringendere Aufgaben beim Erstellen des Skriptes. Deswegen gibt es derzeit keine schriftlichen Lösungen zu den Übungsaufgaben.

Falls jemand gerne Aufgaben mit  Lösungen bearbeiten möchte, so gibt es dafür verschiedene Bücher, wie beispielsweise „Java 8 Das Übungsbuch: Über 200 Aufgaben mit vollständigen Lösungen“ von Elisabeth Jung. Es gibt im Web auch diverse “Java mock exams ”, welche Sammlungen von Übungsfragen und Übungsaufgaben sind, zu denen in der Regel ebenfalls Lösungen verfügbar sind.

Die Dauer des Lernens

Viele Kursteilnehmer sind überwältigt vom Umfang moderner Programmiersprachen und können sich nicht alle Details beim ersten Hören merken. Das ist ganz normal. Die meisten guten Programmierer haben längere Zeit zum Lernen benötigt als ein Kurs sie umfaßt. Falls ein Kursteilnehmer sich nicht alles merken kann, das in einem Kurs behandelt wird, dann sollte er den Kurs als Start und nicht als Ende des Erlernens der Programmiersprache ansehen und sich auch nach Ende des Kurses weiter mit dem Lernen beschäftigen (etwa durch erneutes Besuchen desselben Kurses, Besuchen anderer Kurs, Lesen von Büchern oder Bearbeiten von Übungsaufgaben).

In der Literatur findet man Aussagen, daß sich eine Programmiersprache in 2 Tagen erlernen läßt, aber auch, daß man zum Erlernen des Programmierens 10 Jahre benötigen würde.

Quellen

„Wenn Sie die Denkformen der Informatik erst einmal erfaßt haben, werden Sie eine neue Programmiersprache in 2–3 Tagen erlernen können.“ – Christoph Kreitz, Skript „Grundlagen der Informatik I ‚Programmierung‘ “, Wintersemester 1993/94

Peter Norvig  bringt in “Teach Yourself Programming in Ten Years ” zum Ausdruck, daß das Erlernen des Programmierens zirka zehntausend Stunden oder zehn Jahren benötigt, in denen man sich immer wieder Programmieraufgaben stellen sollte, die gerade ein wenig jenseits der bisherigen Fähigkeiten liegen.

Wenn man an gut organisierten Unterricht bei fachlich und didaktisch qualifizierten Lehrern teilnimmt, dann kann folgende Tabelle Anhaltspunkte für die Lerndauer geben. Allerdings setzt dies voraus, daß der Lernende zu Anfang des Kurses über eine gute allgemeine Schulbildung  (einschließlich sprachlicher und mathematisch-naturwissenschaftlicher Bereiche) und mindestens durchschnittliche Intelligenz  sowie gute Kenntnisse in der Nutzung von Betriebssystemen und Software verfügt. Wenn diese Voraussetzungen fehlen, könnten sich die angegebenen Zeiten noch verlängern

36 Stunden: typische VHS-Grund- und Aufbaukurse zusammen umfassen nur etwa 3,6 % der für einen Programmierer nötigen Ausbildungsdauer
1000 Stunden: nach 1.000 Stunden Ausbildung, kann man als Programmierer arbeiten. Einige Anbieter bieten eine Ausbildung in diesem Umfang als „Bootcamp“ über eine Dauer von zirka sechs Monaten an
10000 Stunden: nach 10.000 Stunden Ausbildung ist man Experte

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram722117 stefan_ram:722117 Einführung in den Java-Lehrgang Einführung in den Java-Lehrgang Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd722117, slrprddef722117, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/java-einfuehrung