This commit is contained in:
harald.mueller@tbz.ch 2021-08-06 21:59:06 +02:00
parent aa15823f41
commit 7347bb8139
8 changed files with 257 additions and 15 deletions

View File

@ -0,0 +1,37 @@
Aufgabe/Task: Nr. 04
Thema: Files lesen & schreiben
Geschätzter Zeitbedarf: 30-70 min pro Aufgabe
Aufgabenbeschreibung:
2.1 Textfiles einlesen mit BufferedReader
<https://bscw.tbz.ch/bscw/bscw.cgi/d32029849/script2_1_Textfiles_einlesen_BufferedReader.pdf>
2.2 Textfiles einlesen BufferedReader oder Scanner
<https://bscw.tbz.ch/bscw/bscw.cgi/d32029854/script2_2_Textfiles_einlesen_BufferedReader_o_Scanner.pdf>
2.3 Strukturierte Textfiles einlesen
<https://bscw.tbz.ch/bscw/bscw.cgi/d32029859/script2_3_Textfiles_einlesen_StrukturierteTextfiles_plusUebung.pdf>
2.4 Textfiles schreiben
<https://bscw.tbz.ch/bscw/bscw.cgi/d32029864/script2_4_Textfiles_schreiben_plusUebung.pdf>
2.5 Zufallszahlen-Datei
Schreiben Sie ein einfaches Text-File. Der Inhalt sind ganzzahlige Zufallszahlen
zwischen 0 und 10000. Pro Zeile schreiben Sie eine Zahl. Programmieren Sie eine
Einstellung (Parameter), dass Sie wahlweise z.B. 500 oder 3'000000
Zufallszahlen-Zeilen erzeugen können.
Zeigen Sie der Lehrperson jede Übung (entweder einzeln oder mehrere Übungen
zusammen) und zeigen Sie auch diese Zufallszahlen-Datei.
Bewertung:
Aufgaben / Übungen der Lehrperson einzeln oder zusammen zeigen

View File

@ -0,0 +1,21 @@
Aufgabe/Task: Nr. 05
Thema: Linked List / Verkettete Liste
Geschätzter Zeitbedarf: 30-70min pro Aufgabe
Aufgabenbeschreibung:
Zur Unterstützung und weitere Anleitung, schauen Sie sich dieses Video an.
<https://www.youtube.com/watch?v=i2v_Ve9PUCw>
Bauen Sie gemäss dieser Anleitung eine (einfache) Verlinkte Liste.
<https://bscw.tbz.ch/bscw/bscw.cgi/d32029894/script3_2_dynamicStructures_linkedList.pdf>
<https://bscw.tbz.ch/bscw/bscw.cgi/d32029899/script3_2_dynamischeStrukturen_verkListe.pdf>
Bewertung:
Keine, ist aber prüfungsrelevant

View File

@ -0,0 +1,27 @@
Aufgabe/Task: Nr. 06
Thema: Arrays, Sort, Stack, Queue
Geschätzter Zeitbedarf: 180-240 min
Aufgabenbeschreibung:
Arrays
<https://www.youtube.com/watch?v=JH8oogtBd4g>
Stacks
<https://www.youtube.com/watch?v=wgwLdEg8728>
<https://bscw.tbz.ch/bscw/bscw.cgi/d32029874/script3_0_usingArrays.pdf>
<https://bscw.tbz.ch/bscw/bscw.cgi/d32029869/script3_0_arrays_anwenden_und_sortieren.pdf>
<https://bscw.tbz.ch/bscw/bscw.cgi/d32029884/script3_3_dynamischeStrukturen_stack.pdf>
<https://bscw.tbz.ch/bscw/bscw.cgi/d32029889/script3_4_dynamischeStrukturen_queue.pdf>
Bewertung:
Keine, ist aber prüfungsrelevant

View File

@ -0,0 +1,24 @@
Aufgabe/Task: Nr. 07
Thema: Bubble-Sort
Geschätzter Zeitbedarf: 90-120 min
Aufgabenbeschreibung:
Bubble Sort
<https://www.youtube.com/watch?v=XMu1Kq69EhU> (5:32 min)
Bauen Sie ein Bubble-Sort-Algorithmus. Die Daten lesen Sie über eine Liste von
Nummern aus einer Text-Datei ein. Lassen Sie die Veränderungen nach jedem
Durchgang in eine Datei herausschreiben (Zahlenreihe hintereinander und Komma
separiert / Stand vorher eine Zeile, Stand nachher eine Zeile, Stand nachher
eine Zeile, …) damit man sehen kann, wie sich der Algorithmus verhält und sich
die Resultate entwickeln.
<https://bscw.tbz.ch/bscw/bscw.cgi/d32029879/script3_1_bubble_sort_exercise.pdf>
Bewertung:
Keine, ist aber prüfungsrelevant

View File

@ -0,0 +1,129 @@
**Der Bubblesort**
**Lernziele:**
- Sie haben das Prinzip des Bubblesort verstanden
- Sie können eine Aussage über die Effizienz des Bubblesorts machen
**1 Sortieren in Schritten**
Für die folgenden Aufgaben brauchen Sie Papierschnitzel mit den unten stehenden
Zahlen:
**51, 13, 9, 44, 18, 93, 25**
Schreiben Sie diese Zahlen auf Notizpapier auf und zerschneiden Sie es.
**1.1 Aufgabe: Sortieren nach Grösse**
Sortieren Sie die Papierschnitzel ausgehend von der obigen Reihenfolge der
Grösse nach aufsteigend, so dass die kleinste Zahl links und die grösste rechts
zu liegen kommt.
- Können Sie beschreiben, wie Sie vorgegangen sind?
**1.2 Aufgabe: nur benachbarte Schnipsel vertauschen**
Bringen Sie die Papierschnipsel wieder in die Ausgangssituation und sortieren
Sie zum zweiten Mal der Grösse nach aufsteigend. Aber: dieses Mal ist nur eine
**einzige Operation** auf den Papierschnipsel erlaubt, und zwar dürfen Sie nur
jeweils zwei benachbarte Schnipsel vertauschen.
**1.3 Aufgabe: systematisch von links nach rechts**
Bringen Sie die Papierschnipsel wieder in die Ausgangssituation und sortieren
Sie sie wieder durch Vertauschen von Nachbarn, aber wählen Sie diesmal die
Nachbarn systematisch von links nach rechts. Sie tauschen also falls nötig
die erste mit der zweiten Zahl, dann die zweite mit der dritten, usw. bis Sie
beim letzten Paar ganz rechts angekommen sind.
- Können Sie etwas darüber sagen, was bei einem einzelnen Durchgang passiert?
- Wann können sie aufhören und brauchen keinen weiteren Durchgang mehr?
Notieren Sie sich die Zwischenschritte.
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
**2 Definition Bubblesort-Algorithmus**
Der Bubblesort-Algorithmus sortiert eine Liste von Elementen aufsteigend, indem
er so lange von links nach rechts durch die Liste geht und benachbarte Elemente
vertauscht (falls das linke Element grösser als das rechte ist), bis ein ganzer
Durchgang durch die Liste zu keiner Änderung mehr führt.
Als Flussdiagramm:
![](media/0bf179a2c5f431b207fe5c6804bbcfab.jpg)
**2 Effizienz von Bubblesort**
**2.1 Anzahl Durchgänge**
Überlegen Sie sich, wie viele Durchgänge von links nach rechts maximal nötig
sind, um eine Liste mit *n* Elementen zu sortieren. Sortieren Sie folgende Liste
mit dem Bubblesort-Algorithmus und schreiben Sie sämtliche Zwischenschritte auf:
97 15 33 28 25 11 73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
Wie Sie vermutlich gemerkt haben, genügen *n* Durchgänge. Mit jedem Durchgang
landet mindestens eine der Zahlen an seinem definitivem Platz (es genügen sogar
*n-1* Durchgänge, weil die letzte Zahl keinen Nachbar mehr hat, mit dem sie
vertauscht werden könnte).
**2.2 Anzahl Vergleichsoperationen**
In einer Liste mit *n* Zahlen gibt es *n*-1 Paare von benachbarten Zahlen, die
bei einem Durchgang verglichen werden müssen. Und wir haben höchstens *n*
Durchgänge. Somit sind *n*(*n*-1) Vergleichsoperationen maximal nötig.
Wir können somit sagen, dass es ungefähr *n2* Vergleichsoperationen für eine
Liste mit n Elementen gibt.
**2.3 Aufwand im besten und im schlechtesten Fall**
Wenn die Liste bereits sortiert ist, vergleicht der Algorithmus alle *n-1*
benachbarten Zahlenpaare einmal und stellt fest, dass es nichts zu tun gibt.
Damit ist er fertig und es werden keine Zahlen vertauscht. Das ist der beste und
schnellste Fall und benötigt *n-1* Vergleiche und 0 Vertauschungen.
**2.4 Aufgabe: der schlechteste Fall**
Überlegen Sie sich die Effizienz im schlechtesten Fall (d.h. wenn eine Liste
absteigend sortiert ist und aufsteigend sortiert werden soll).
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
Lösung:
Die grösste Zahl steht zu Beginn ganz links und wird im ersten Durchgang in n-1
Vertauschungen ans rechte Ende der Liste gebracht. Die übrigen Elemente der
Liste wandern einen Platz nach links. Jetzt liegt die zweitgrösste Zahl ganz
links und wird im zweiten Durchgang in n-2 Vertauschungen ans rechte Ende der
Liste links der grössten Zahl verschoben. Usw.
Das heisst, wir haben:
*(n-1) + (n-2) + …. + 1 = n(n-1)/2*
Quelle: ETH-Unterlagen, Stand August 2015

View File

@ -2,20 +2,23 @@ Aufgabe/Task: Nr. 09
Thema: HashMaps in Java Thema: HashMaps in Java
Geschätzter Zeitbedarf: 60 min Geschätzter Zeitbedarf: 60-120 min
Aufgabenbeschreibung: Aufgabenbeschreibung:
Schauen Sie sich zwei der angebotenen Videos über Java HashMap an Schauen Sie sich zwei der angebotenen Videos über Java HashMap an
<https://bscw.tbz.ch/bscw/bscw.cgi/32213665> - [../docs/Videos-Tutorials-Anleitungen](Videos-Tutorials-Anleitungen)
<https://bscw.tbz.ch/bscw/bscw.cgi/d32230337/HashMapUndRekursion.pdf> - <https://bscw.tbz.ch/bscw/bscw.cgi/32213665>
- [./HashMapUndRekursion.pdf](HashMapUndRekursion.pdf)
- [./HashMapUndRekursion.pptx](HashMapUndRekursion.pptx)
-<https://www.youtube.com/watch?v=70qy6_gw1Hc>
<https://www.youtube.com/watch?v=70qy6_gw1Hc>
.. und bauen Sie in Java eine eigene HashMap nach und geben Sie den Java-Code im .. und bauen Sie in Java eine eigene HashMap nach und geben Sie den Java-Code im
Teams ab. Teams ab oder zeigen Sie es der Lehrperson.
Bewertung:
Keine, ist aber prüfungsrelevant Bewertung: Keine, ist aber prüfungsrelevant

View File

@ -1,12 +1,13 @@
Aufgabe/Task: Nr. 10 Aufgabe/Task: Nr. 13
Thema: Data-Files-Structures Thema: Data-Files-Structures, XML, JSON
XML & JSON
Geschätzter Zeitbedarf: min
Geschätzter Zeitbedarf: 120 min
Aufgabenbeschreibung: Aufgabenbeschreibung:
Bilden Sie sich über den Java-Syntax bezüglich xml und json und probieren Sie es aus.
Gehen Sie dem Dokument [script6_weitereDatenstrukturen_XML_JSON.pdf](./script6_weitereDatenstrukturen_XML_JSON.pdf) nach.
Bewertung:
Keine, ist aber prüfungsrelevant Bewertung: Keine.

View File

@ -13,6 +13,6 @@ Erwartet wird etwa eine A4-Seite (in 11 Pt Schrift)
<https://bscw.tbz.ch/bscw/bscw.cgi/31933102> <https://bscw.tbz.ch/bscw/bscw.cgi/31933102>
Bewertung:
Keine, ist aber prüfungsrelevant
Bewertung: Keine