diff options
| author | Florian Fischer <florian.fischer@muhq.space> | 2024-09-14 13:32:47 +0200 |
|---|---|---|
| committer | Florian Fischer <florian.fischer@muhq.space> | 2024-09-14 13:32:47 +0200 |
| commit | 51b5fe614a364f3fb2778e997715c2b96d745620 (patch) | |
| tree | 59860b80900fb0d61dc1464405d61158ff5d791a /Info/11/NTG/Intro/slides.md | |
| parent | d9b44d4edd61574130b2b7b6197b19cff11dac50 (diff) | |
| download | unterricht-51b5fe614a364f3fb2778e997715c2b96d745620.tar.gz unterricht-51b5fe614a364f3fb2778e997715c2b96d745620.zip | |
add 11 NTG intro lesson
Diffstat (limited to 'Info/11/NTG/Intro/slides.md')
| -rw-r--r-- | Info/11/NTG/Intro/slides.md | 184 |
1 files changed, 184 insertions, 0 deletions
diff --git a/Info/11/NTG/Intro/slides.md b/Info/11/NTG/Intro/slides.md new file mode 100644 index 00000000..3576804d --- /dev/null +++ b/Info/11/NTG/Intro/slides.md @@ -0,0 +1,184 @@ +--- +author: Florian Fischer +theme: metropolis +aspectratio: 169 +header-includes: | + \makeatletter + \beamer@ignorenonframefalse + \makeatother +--- + + +## Organisatorisches + +**Name**: Herr Fischer + +### Material + +* Papier, Order/Schnellhefter, Tablet +* Buch (falls angekündigt) + +### \faIcon{pencil-alt} Noten pro Halbjahr + +* 1 Kurzarbeit +* (angekündigter kleiner Leistungsnachweis) + +### \faIcon{comment} Noten + +* Unterrichtsbeiträge (aus $\approx$ 3 Beobachtungen) +* (Schriftliche Abfragen) + +## Logins {.standout} + +Ab diesem Jahr Login mit dem eigenen Microsoft Account. + +vorname.nachname + +\faIcon{desktop} Startet eure Rechner und meldet euch an + +## Umfrage + +::: {.columns align=center} +:::: {.column width=50%} +\vspace{0.2cm} + +:::: + +:::: {.column width=55%} +\large +**[https://www.menti.com/al8bhhx74siu](https://www.menti.com/al8bhhx74siu)** +:::: +::: + +## \faIcon{hands-helping} / \faIcon{chalkboard} Arbeitsauftrag: Modellierung \hfill{} 1/5 + +### Diskutiert folgende Aussage: + +\vspace{1cm} +> Jeder Mensch hat ja ein Geburtsdatum, deshalb kann ich die Geburtsdaten als Attributwerte in der Klasse `Mensch` speichern. + +## \faIcon{hands-helping} / \faIcon{chalkboard} Arbeitsauftrag: Algorithmik \hfill{} 2/5 + +### Diskutiert folgende Aussage: + +\vspace{1cm} +> Wiederholungen mit fester Anzahl (`for`{.java}) sind doch total sinnlos! +> Ich kann immer einfach eine Wiederholung mit Bedingung (`while`{.java}) und eine Variable benutzen. + +## \faIcon{hands-helping} / \faIcon{chalkboard} Arbeitsauftrag: Felder \hfill{} 3/5 + +### Diskutiert folgende Aussage: + +\vspace{1cm} +> Felder/Arrays dienen zur Speicherung verschiedener Datentypen in einer Variable. +> Sie sind außerdem leicht an den geschweiften Klammern zu erkennen. + +## \faIcon{hands-helping} / \faIcon{chalkboard} Arbeitsauftrag: Code verstehen \hfill{} 4/5 + +### Diskutiert folgende Aussage: + +::: {.columns} +:::: {.column width=45%} +```java +int f(int[] zahlen) { + int m = zahlen[0]; + for (int i = 1; i < zahlen.length; i++) { + if (zahlen[i] > m) { + m = zahlen[i]; + } + return m; +} + +``` +:::: + +:::: {.column width=55%} +\vspace{2.5cm} +> Die Funktion `f` berechnet immer etwas anderes, daher folgt das Ergebnis keiner Logik. +:::: +::: + +## \faIcon{hands-helping} / \faIcon{chalkboard} Arbeitsauftrag: Polymorphismus \hfill{} 5/5 + +### Diskutiert folgende Aussage: + +::: {.columns} +:::: {.column width=45%} +```java +class Tier { + public void gibLaut() { + println("Laut"); + } +} +class Hund extends Tier { + public void gibLaut() { + println("Wuff"); + } +} +``` +:::: + +:::: {.column width=55%} +```java +Tier tier = new Hund(); +tier.gibLaut(); +``` + +\vspace{1cm} +> Der Code gibt `"Laut"` aus, da der Hund als seine Oberklasse `Tier` verwendet wird. +:::: +::: + + +## \faIcon{desktop} Arbeitsauftrag: Wiederholung Java + +\begin{center} +\begin{tikzpicture} +\node {\includegraphics[keepaspectratio, width=5cm]{img/whack_a_mole_arcade.jpg}}; +\only<2->{ +\node[rotate=3] {\includegraphics[keepaspectratio, width=6cm]{img/whack_a_mole_online_ide.jpg}}; +} +\end{tikzpicture} +\end{center} + +## \faIcon{desktop} Arbeitsauftrag: Wiederholung Java + +### Erklärung + +* `// TODO n: `{.java} markiert eine Stelle, die in Aufgabe **n** bearbeitet werden muss. +* `/* FIXME n: */`{.java} markiert bestehenden Code, der in Aufgabe **n** verändert werden muss. + +### Start + +1. Öffne die Online-IDE **[www.online-ide.de](www.online-ide.de)** in deinem Browser. +2. Melde dich mit dem von mir erhaltenen Nutzer Namen und Passwort an. +3. Öffne das Projekt *WhackAMole*. + + +## \faIcon{desktop} Aufgabe 1: Felder - 10 min 1/3 + +### Erinnerung + +Relevante Stellen sind mit `// TODO 1:`{.java} und `/* FIXME 1: /*`{.java} markiert. + +### Aufgabe + +1. *Deklariere* und *Initialisiere* ein Feld `moles`, in dem mehrere Objekte der Klasse `Mole` gespeichert werden sollen. +2. Verwende die *Länge* des Feldes `moles` als Obergrenze für die Zählvariable `i` in den beiden `for`{.java}-Schleifen. +3. Speichere jedes neu erzeugte Objekt der Klasse `Mole` in dem Feld `moles`. + +## \faIcon{desktop} Aufgabe 2: Objekte verwenden - 10 min 2/3 + +1. Setze die Sichtbarkeit neuer Maulwürfe auf `false`{.java}. +2. Behandle alle [nicht]{.underline} zerstörten Maulwürfe in der Methode `run`. +3. Setze die Sichtbarkeit des behandelten Maulwurfs entsprechend. + +## \faIcon{desktop} Aufgabe 3: Spiellogik - 10 min 3/3 + +Implementiere einen Algorithmus, der erkennt, dass keine Maulwürfe mehr übrig sind und beende anschließend das Spiel. + +**Für Schnelle:** + +1. Spaß haben. +2. Implementiere einen Highscore in Abhängigkeit von der Zeit. +3. Färbe zufällig Maulwürfe in einer anderen Farbe, die dann nicht angeklickt werden dürfen. |
