# M411 - Datenstrukturen und Algorithmen entwerfen und anwenden
[> **Modulidentifikation** ](https://www.modulbaukasten.ch/modul/bc75c9da-716c-eb11-b0b1-000d3a830b2b)
- [docs](./docs/)
- [docs/Videos-Tutorials-Anleitungen](./docs/Videos-Tutorials-Anleitungen)
## Aufträge & Übungen
| Tag | Titel | Auftrag, Übung, Themen |
| ---- | ------ | -------------- |
| (1) 25.11.21| [First steps](./1) | Modulvorstellung
- what is an algorithm
- what are data structures
-first steps I (classes, main-methode)|
| (2) 02.12.21| [file handling](./2) | first steps II / reading user input (scanner) / reading and writing files (BufferedReader)
working with arrays
- fill, search, update, delete array elements
- sorting (BubbleSort) |
| (3) 09.12.21| [Linked Lists](./3) | follow up arrays
linked lists (self made) |
| (4) 16.12.21| [Sort, Stack, Queue](./4) | compare sort-algorithms
- BubbleSort vs QuickSort
- BubbleSort vs ??Sort
incl. mesurement the speed
- stack (push, pop) and queues (FIFO, LIFO, LILO, FILO) |
| (5) 06.01.22| [Hashmaps, Recursions](./5) | - hash maps,
- recursions , back tracking |
| (6) 13.01.22| **LB1** (30% MN)
- 30 min on paper and
- 60 min coding
themes: arrays, stacks, sorts, linked lists | - follow up [hash maps, recursions](./5)
- [collections](./6) |
| (7) 20.01.22| **LB2** (30% MN)
- 30 min on paper and
- 60 min coding
themes: hash maps and rekursions | after LB2 start mini project (LB3),
find a team partner and find a [problem to solve]((./docs/Unterlagen_LB3_MiniProjekte))
- [trees and graphs](./7)
- [Dijkstra-Algorithm (route planner)](./7)
- [xml data, json data](./7)
- [page rank algorithm](./7) |
| (8) 27.01.22| __Start__ **LB3** (40% MN)
start mini project
team of 2 persons | - search and [decide a mini-projekt](./docs/Unterlagen_LB3_MiniProjekte)
- work on mini project |
| (9) --------| work on mini project | |
| (10) 03.02.22| last work and
close mini project | **Note 4.0** = "genügend"
(d.h. es ist alles da und funktioniert irgendwie, niedrige Komplexität)
**Note 5.0** = "gut"
(d.h. gut gelöst und funktioniert einwandfrei, adäquate Komplexität)
**Note 6.0** = "sehr gut"
(übertrifft die Erwartungen, hohe Komplexität) |