Kurs Inhalt
Inhalte:
Nicht wundern, dass ich im ersten Teil des Kurses ganz anders aussehe, die Aufnahmen sind von 2016. Deswegen sind die Inhalte sind immer noch top aktuell!
Inhalte:
Sieh dir an, wie man ganz einfach Eclipse installieren kann. Du lernst auch, wie du dein erstes Programm zum Laufen bekommst.
Hinweis: Shift-Taste = Umschalt-Taste
Inhalte:
Hier lernst du die Grundlagen der Grundlagen zu Variablen.
Weitere Infos zur impliziten Typumwandlung: https://www.informatikzentrale.de/_files/16java/java22_casting.pdf
Hier werden nochmal einige Begriffe definiert, falls du es auswendig draufhaben willst/musst.
Variable:
Ein Wort (Name der Variable) im Code, hinter dem sich ein Wert verbirgt. Man kann einen Wert in eine Variable speichern oder den aktuellen Wert auslesen. Eine Variable hat immer einen Datentyp.
Datentyp:
Ein Datentyp definiert die Art des Wertes, der gespeichert wird (zB int oder String), und seinen Wertebereich. Standarddatentypen, primitive Datentypen und Basisdatentypen sind Synonyme. Diese sind byte, short, int, long, float, double, boolean, char.
Definition ( / Deklaration / Einführung):
Die Definition einer Variable ist das jeweilige erste Vorkommen. Sie muss bei der ersten Verwendung im Code definiert werden. Es wird dabei der Datentyp mit angegeben. Die Definition erfolgt immer nur einmal. Folgender Hinweis ist sehr wichtig: die Definition ist nicht die Initialisierung. Beispiel: int i;
Initialisierung:
Die Initialisierung ist die erste Zuweisung eines Wertes an eine Variable und geschieht unabhängig von der Definition. Man kann beides allerdings in einer Zeile tun, indem man zB das hier schreibt: int i = 0;
Zuweisung:
Eine Zuweisung ist das Speichern eines Wertes in eine Variable. Bei einer Zuweisung wird immer nur ein Gleichheitszeichen verwendet. Es ist wichtig, Zuweisungen von rechts nach links zu lesen. Das heißt sogar, dass man das, was auf der linken Seite des Gleichheitszeichens steht, nicht beachten soll, solange der Wert und der Datentyp des Ausdrucks auf der rechten Seite nicht feststehen. Denn genauso wertet Java das aus.
Literal:
Ein Literal ist ein Wert ohne Variable. Wenn man also eine Zahl, einen Buchstaben oder eine Zeichenkette im Code sieht, sind das Literale. Literale haben immer einen Datentyp. Grundsätzlich wird von der häufigen Verwendung von Literalen an anderen Stellen als bei Initialisierungen abgeraten. Man vergisst schnell ihre Bedeutung und sollte sie lieber in Variablen speichern. Wenn es sich um einen nicht veränderlichen Wert handelt, sollte man eine Konstante dafür definieren.
Cast ( / Konvertierung / explizite Typumwandlung):
Ein Cast ist die Umwandlung einer Variable in einen anderen Datentyp. Beispiel: long a = (int)var;
Inhalte:
Es geht hier insbesondere um Gleitkommadatentypen.
Erklärung Speicherung von Gleitkommazahlen (relativ komplex): http://www-lehre.inf.uos.de/~ainf/2000/skript/node18.html
Melde dich einfach, wenn du es erklärt bekommen möchtest ;)
Ist aber wie gesagt nicht so wichtig.
Weitere Informationen zum Runden: http://floating-point-gui.de/languages/java/
Inhalte:
Es geht besonders um Modulo und Math.random.
Die Erklärung zur Trefferquote ist Ronny nicht so gut gelungen. Wenn Du dir das Thema genauer ansehen möchtest, können wir Dir empfehlen, ein paar Ausgaben in den Code einzubauen, um die Werte der Variablen zu betrachten.
Später wird noch klar, warum die Berechnung so durchgeführt wurde.
Inhalte:
Lerne in diesem Video etwas über boolean, char und String.
null ist der "leere" Wert für Strings und andere Referenztypen (wie Arrays und eigene Klassen).
null bedeutet so viel wie: es ist kein Wert abgespeichert. Wichtig ist bei Strings: zu einem String, der den Wert null hat, kann kein Text konkateniert werden (geht schon, aber dann steht halt null als Text mit im String).
null wird manchmal dafür verwendet, zu kennzeichnen, dass mit einer Referenz noch etwas passieren muss.
Was jetzt genau eine Referenz ist und was das mit Klassen zu tun hat, wirst Du später lernen.
Inhalte:
Mit diesem Video findest du einen guten Einstieg in das Thema Methoden.
BeispiellektionInhalte:
Scanner ist wichtig, um Daten vom Nutzer abzufragen.
Wenn die next-Methode von Scanner genutzt wird und mehrere Wörter eingegeben werden, wird nur das erste verarbeitet. Beispiel:

Inhalte:
Verzweigungen sind wichtig, um das Programm Entscheidungen treffen lassen zu können.
Inhalte:
Schleifen ermöglichen dir, Dinge beim Programmieren mehrmals zu tun.
Inhalte:
Arrays sind wichtig, um viele Werte auf einmal abzuspeichern.
Inhalte:
In diesem Video lernst du mehr über Arrays.
Das Mischen ist nicht unbedingt notwendig, da wir die Vokabeln sowieso bereits in zufälliger Reihenfolge abfragen.
Mit dem Fisher-Yates-Algorithmus wird nur ein weiteres Zufallselement eingefügt.
Inhalte:
Rekursion ist allgemein ein wichtiges Konzept in der Programmierung, dass dazu verwendet werden kann, Probleme elegant zu lösen.
Code für Fakultät:

Inhalte:
Hier lernst du, wie dein Programm Argumente verarbeiten kann.
Argument werden verwendet, damit Programme untereinander kommunizieren können.
Man könnte beispielsweise ein Programm (A) schreiben, das unser Programm (B) aufruft.
B kann man in diesem Fall wie eine Methode betrachten, die in A aufgerufen wird.
A muss möglicherweise Parameter an B übergeben (wie bei Methoden) und das geschieht dann über
die Kommandozeilenparameter.
Inhalte:
Enumerationen kann man zwar selten gebrauchen, aber wenn, dann sind sie wirklich nützlich!
Was sind Magic Numbers? siehe hier: https://de.wikipedia.org/wiki/Magische_Zahl_(Informatik)#Magische_Zahlen_in_Code
Die Ermittlung des Wochentags ist verbesserungswürdig... Wir haben ja nicht jeden Tag Dienstag! Nimm dir die Zeit, und recherchiere mal, wie man das lösen kann.
Inhalte:
Fehler treten schnell auf. Keine Angst, hier lernst du, wie du damit umgehen kannst.
zu Bugs: https://de.wikipedia.org/wiki/Programmfehler
zu Software-Tests: https://de.wikipedia.org/wiki/Softwaretest
Inhalte:
Der erste Teil ist geschafft; herzlichen Glückwunsch, dass du schon so weit gekommen bist! ☀️
Jetzt geht es um Klassen und weitere Datenstrukturen. Das ist thematisch anders als alles bisherige, aber trotzdem sehr wichtig.
Die letzten Videos bei den Bäumen sind länger als alle bisherigen - lass dich davon nicht abschrecken! Leg einfach Pausen ein, dann klappt das.
Es kommt vor, dass ich nicht sofort zur perfekten Lösung komme (insbesondere bei den Aufgaben zu Bäumen); ich habe diese Teile absichtlich nicht herausgeschnitten, damit du sehen kannst, wie ich bei Fehleranalysen vorgehe (abgesehen von den Hinweisen im Video Fehlerstrategien).
Viel Erfolg!
Inhalte:
In diesem Video gibt es eine Einführung zum Thema Klassen. Was ist das? Wofür braucht man das?
Inhalte:
In diesem Video wirst Du mit dem Begriff Instanz vertraut gemacht.
Wenn Du gut aufpasst, wirst Du bemerken, dass an manchen Stellen im Dokument von Aufgaben die Rede ist. Siehe dafür die Materialien aus dieser Lektion!
Inhalte:
Mit private und public steuerst Du, wie man auf ein Attribut oder eine Methode zugreifen kann.
Inhalte:
Klassenattribute und -methoden stehen unabhängig von den Instanzen und existieren ab Programmstart!
Siehe noch die Aufgabe bei den Materialien!
Inhalte:
Konstruktoren legen fest, wie Instanzen erzeugt werden können.
Inhalte:
Hier noch ein paar letzte Hinweise zu Klassen, inbesondere um private/public/static voneinander abzugrenzen.
Inhalte:
Mehrdimensionale Arrays sind auch nur Arrays!
Inhalte:
Einfach verkettete Listen sind auch nur Instanzen, die als Attribut eine andere Instanz haben.
BeispiellektionInhalte:
So ermittelst Du die Länge einer Liste.
Inhalte:
So ermittelst Du das letzte Element einer Liste, fügst ein Element hinzu oder gibst eine Liste als String aus.
Inhalte:
Hier gibt es weitere Listenmethoden.
Doppelt verkettete Listen werden im Video gar nicht erwähnt - aus gutem Grund. Sie sind sehr einfach. Es ist das gleiche wie bei einfach verketteten Listen, nur dass die setNext-Methode anders ist (siehe Dokument bei den Materialien) und dass in der Prüfung im Extremfall mehr gemacht werden kann.
Wenn Du aber die while-Schleife beherrscht, wird das kein Problem sein!
Inhalte:
Hier gibt es eine Einführung zu Bäumen und dann starten wir mit einer Aufgabe, um das Thema besser zu verstehen.
Mach vor Einführung der zusätzlichen Ebene bei 9:05 am besten eine Verschnaufpause!
Inhalte:
Wir lösen hier Teilaufgabe 2 und 3 aus der Baumaufgabe.
Mach nach Teilaufgabe 2 am besten eine Verschnaufpause, weil es sonst zu viel auf einmal ist!
Bei 7:03 geht es weiter mit Teilaufgabe 3
Inhalte:
Achtung: hier musst Du gut aufpassen, weil Bäume im Zusammenhang mit Rekursion erklärt werden.
Im ersten Teil des Videos (bis 15:23) wird erklärt, wie das Zählen der gesuchten Elemente rekursiv gemacht werden kann. Im zweiten Teil direkt danach siehst Du, wie die Elemente dann im Ergebnisarray hinzugefügt werden.
Inhalte: