Javakurs2007/Übungspool Entwürfe
Jeder Tutor sollte sich hier mindestens eine, besser mehrere Übungen ausdenken. Da man die Fehler in einer Übungsaufgabe nur finden kann wenn man sie selbst löst sollte jeder Tutor mindestens eine der Übungsaufgaben lösen (ohne Eclipse) und sie an Hand seiner dabei gewonnenen Erfahrungen verbessern. Auch das verlinken eurer Lösung kann weiterhelfen.
Die Aufgaben werden von uns direkt aus dem Wiki gedruckt, achtet also bitte darauf eure Übungsaufgaben auch wie Übungsaufgaben zu strukturieren. Ein Beispiel wie so etwas aussehen könnte ist die Rennschnecke aus dem letzten Jahr.
Denkt daran, dass wir es im Schwehrpunkt mit Anfängern zu tun haben deren Gehirnkapazität mit dem Erlernen der Programmiersprache schon hinreichend ausgeschöpft ist. Gebt also besser ein bischen zu viel Hilfestellungen als zu wenig.
Als Anregung hier noch einmal worum es in den einzelnen LEs ging: Gliederung Javakurs 2007
Inhaltsverzeichnis
Übungsaufgaben
LE 1 (2h), Tag 1
Musterlösung zu den folgenden beiden Aufgaben aus dem letzten Jahr
Einfache Aufgaben für den Einstieg
Konsoleneingabe mit der Klasse Terminal, einfaches Menü mit Zahlen
Wiederholungsaufgaben zu LE1/2 von 2006
- Javakurs2007/Variablen_und_Zuweisungen zerlegt und überarbeitet
LE 2 (2h), Tag 1
Aufgabensammlung ohne Objektorientierung
Gemischte Aufgaben zu Schleifen und Arrays
Einfache Aufgabe zu Schleifen und Modulo
Musterlösungen für die folgende Aufgabensammlung aus dem letzten Jahr
- Aufgabensammlung aus dem letzten Jahr. (Müsste zerlegt und fürs Wiki portiert werden)
LE 3 (4h), Tag 2
Schaltjahr (Leicht).
Schreibt eine Methode die eine Jahreszahl übergeben wird und enscheidet ob es sich um ein Schaltjahr handelt.
Ein Jahr ist kein Schaltjahr wenn die Jahreszahl nicht durch 4 teilbar ist .
Ein Jahr ist ein Schaltjahr wenn die Jahreszahl durch 4 aber nicht durch 100 teibar ist.
Ein Jahr ist ebenfalls ein Schaltjahr wenn die Jahreszahl durch 4, durch 100 und durch 400 teilbar ist.
SelectonSort (Leicht)
In diese Aufgabe übt ihr die Implementierung von Methoden und ihre Benutzung am Beispiel: einen Array zu sortieren. Nach der Implementierung jede Methode sollt ihr sie gleich testen von daher ist diese Aufgabe in Teilaufgaben geteilt:
1-) Immer sinnvoll: Methode die das Array auf der Konsole Ausgibt.
2-) Methode die einen int-Array bekommt und prüft ob er sortiert ist (von klein nach gross) oder nicht.
3-) Methode, die zwei Einträge in einem Array vertauscht. Überlegt euch, was für Argumente hat diese Methode.
4-) Methode die von einem Array die stelle des Kleinsten Eintrag zurückliefert. Überlegt euch, was für Argumente hat diese Methode.
5-) Methode die einem Array bekommt und ihm dann nach dem SelctionSort Algorithmus srortiert. Das SelectionSort-Algorithmus funktionniert folgendermaßen: Das Array wird von Anfang an sortiert. So hat man am Anfang einen leeren sortierten Teil und einen vollen unsortierten Teil.
a-) finde die Stelle des kleinste Element .
b-) vertauche ihn mit dem Element am Anfang des unsortierten Teils (so wächst der sortierte Teil um eins und verringert sich der unsortierte um eins).
c-) mach das gleiche für das nichtsortierte Teil des Arrays; solange es unsortierten Teil gibt.
Versucht dabei gleich mal passende Namen zu verwenden und auch Kommentare nicht vergessen. Liest beispielsweise -mit dem Kommilitonen- gegenseitig das Code was der andere geschrieben hat. wie schnell könnt ihr es nachvokllziehn?
Schleißlich überlegt ihr euch wie ihr eure Methoden am besten testet. führt z.B. gegenseitig Tests. Konntet ihr Fehler finden? --- beheben?
LE 4 (2h), Tag 3
LE 5 (2h), Tag 3
Objektorientierung am Beispiel eines Schneckenrennens
Evtl. Building a Game-Engine with Cocoa 2 3 anpassen.
Beispiellösung für Studentendatenbank 2006
- Studentendatenbank von 2006(Müsste fürs Wiki portiert werden)
Studentendatenbank (done)
LE 6 (4h), Tag 4
Virtuelles Canvas mit 3D-Objekten
Fortgeschritten
Eigenständiges Programmieren eines Chiffriersystems
Vergleich von Texten zweier deutscher Autoren
Javakurs2006/Tag_4/Vier_Gewinnt (müsste noch ausführlicher werden)