www.plusplanet.de
Schulinfos von F. Töns


23.05.2023
Bitte gib die Ergebnisse deiner Aufzeichnungen zum Video von David Kriesel hier ein:

Deine Rückmeldung:



16.05.2023
Hausaufgabe zur nächsten Sitzung:
Wieviele Befehle (oder Operationen) benötigt man, um aus einer Menge von 15 Leuten die größte Person herauszufinden? Wieviele Operationen benötigt man, um aus einer Menge von n Elementen das größte Element herauszufinden?

09.05.2023

Deine Rückmeldung:


04.05.2023
Hausaufgabe für die nächste Stunde: Lies folgenden Artikel:

Eine schöner technischer Artikel über das "Traveling _Salesman Problem"
https://itnext.io/an-introduction-to-algorithms-pt-4-the-tsp-and-heuristics-37ff2895bb61?gi=f1d496ded1ee&sk=dcb62e5c985ad84e41403e9a4b2736d2&source=friends_link
Der Artikel ist in englischer Sprache. Aber mit den Übersetzungswerkzeugen (DeepL oder Google-Translate) ist der Artikel auch für Euch gut zugänglich.
/!\ Achtung: Wenn ihr den Artikel übersetzt, können Fehler auftreten. Beispielsweise wurde die Abkürzung TSP gelegentlich mit TDL "übersetzt", was Unfug ist. Falls etwas unklar ist, solltet ihr nochmal den Originaltext anschauen!


27.04.2023
20230427_ifef_binaere_suche_algorithmen.html

Hausaufgabe zum nächsten Mal:
Löse die Aufgabe 4 aus der oben verlinkten Zusammenfassung und gib die Lösung direkt in das Rückmeldeformular ein:


Deine Rückmeldung:

Zur Diskussion im Unterricht in der nächsten Stunde


14.04.2023
Klausurthema: Programmierung in Java, Objektorientierung, Sortierverfahren

1. Grundlagen
• Variablen, Wertzuweisungen, Variablentypen (int, boolean, double, ... )
• if-Anweisungen und Bedingungen incl. else-Block
• for-Schleife
• Handhabung von Strings (Zeichenketten)
• Handhabung von Arrays
• Funktionen: Eingabeparameter ("Argumente") und Rückgabewerte
• Korrektes Einrücken von Programmen
• Ausgabe von Programmen angeben können (wie in der letzten Klausur)

2. Objektorientierte Programmierung
• Sichere Unterscheidung von Klasse, Objekt, Eigenschaft und Methode, Konstruktor
• Bedeutung der unterschiedlichen Schlüsselwörter: class, new, void, null
• Unterscheidung der atomaren Datentypen (int, boolean, ...) von Referenztypen
• Funktionsweise von Referenztypen (wie z.B. JButton aber auch eigene Klassen wie BemanntesRaumschiff)
• Vererbung
• Schnittstellen (Interfaces)
• Verständnis unserer Modellprojekte: "WasserMitTemp", "SpaceDing", "Feueralarm"
• Verständnis des Skriptes 20220114_TOE_Java_Einfuehrung.pdf mit Ausnahme der Seiten 21, 22 (Vererbung), 23 (char und String), 24 (Java außerhalb von BlueJ). Die Seite 25 ist aber wieder hilfreich.

3. Sortierverfahren
• Bubblesort: Idee erklären können, Programmcode verstehen und Fehler finden können
• Gegebenen Bubblesort für atomare Datentypen auf z.B. Objekte vom Typ HighscoreEintrag umschreiben können.


Übungsmaterial:
Alle Seiten des Skriptes. Dabei haben wir manche Details intensiver im Unterricht besprochen als andere. Aber (fast) alle Dinge sind im Unterricht bereits vorgekommen. Ein Durcharbeiten (und Verständnis) des Skriptes ist gut investierte Zeit. Hier das Skript:
20230414_TOE_Java_Einfuehrung.pdf

Vier Übungsprojekte, auf die ich mich möglicherweise in der Klausur beziehe. Verständnis dieser Projekte ist sinnvoll:
• Thema Klassen und Objekte: 20230414_20221208_ef_wasserMitTemp_SuS.zip
• Thema Vererbung: 20230414_20230202_ifef_beispiele_Vererbung_halbfertig.zip
• Thema Interfaces: 20230414_20230214_ifef_GUI_interfaces_feueralarm.zip
• Thema Sortieren: 20230414_ifef_bubblesort_ohne_alles.zip


09.02.2023
Minimales Demoprogramm mit Fenster



26.01.2023
Im Unterricht haben wir folgende Klasse untersucht:

Vererbung am Beispiel "MyToggleButton"

Was bedeutet "extends"?
• "extends JButton" signalisiert, dass wir die Klasse JButton um eine Funktionalität erweitern möchten, wobei wir alle Funktionen von JButton aber beibehalten möchten. Die Klasse MyToggleButton erbt alle öffentlichen Eigenschaften und Methoden von JButton.
• Man sagt: JButton ist die Oberklasse, MyToggleButton ist die Unterklasse.

Was bedeutet "super()"?
• Bei Vererbung werden die Konstruktoren nicht mit vererbt.
• Man möchte trotzdem Methoden aus der Oberklasse aufrufen. Mit super() kann man im Konstruktor von MyToggleButton den Konstruktor der Oberklasse aufrufen.

Was bedeutet "super.paintComponent()"?
• paintComponent ist eine Methode (sowohl unserer Klasse MyToggleButton als auch von JButton).
• Die Methode der Superklasse rufen wir mit super.paintComponent() auf.

Was bedeutet "implements ActionListener" und "addActionListener"?
• "implements" ist wie ein Versprechen, dass wir bestimmte Methoden in der Klasse schreiben (in diesem Fall die Methode actionPerformed())
• die Methode actionPerformed wird immer dann aufgerufen, wenn eine Aktion ausgeführt wurde (z.B. ein Button wurde gedrückt). Dass passiert aber nur dann, wenn man diese Funktionalität mit "addActionListener" angemeldet hat.
• Wenn also actionPerformed aufgerufen wurde, soll der Status "isBlack" umgekehrt werden.

Was bedeutet "this.getWidth()"?
• getWidth() ist eine Methode der Klasse JButton, welche die Breite des JButtons zurückgibt. Mit this wird das Objekt bezeichnet, in dessen Kontext ich mich gerade befinde.

Was bedeutet "g.fillRect(....)"?
• fillRect füllt ein Rechteck (in unserem Fall unser kleines Quadrat) mit der voreingestellten Farbe.
• g ist ein Objekt, welches ähnlich einer Leinwand funktioniert. Auf diese Leinwand zeichnen wir unser kleines Quadrat. Immer dann, wenn der Button neu gezeichnet wird (z.B. weil ein darüberliegendes Fenster weggezogen wurde), wird auch unser kleines Quadrat neu gezeichnet.

Woher weiß Java, dass "red" rot ist? Gibt es andere Möglichkeiten für Farbfestlegungen?
• siehe Klasse "Color" von Java

Was bedeuten die import-Anweisungen?
• Mit import signalisiert man, dass man bestimmte Pakete nutzen möchte, die bei Java eingebaut sind. Beispielsweise muss man, um die Klasse JButton nutzen zu können, das Paket "javax.swing" einbinden.



09.11.2022
Ein kleines Java-Skript für den Unterricht:
20211203_TOE_Java_Einfuehrung.pdf
Hausaufgabe für kommenden Dienstag: Lies das Skript bis Seite 12 (Klassen und Objekte) und notiere dir Fragen zum Inhalt.

25.10.2022

Klausur am 2.11.2022:
Thema: Grundlagen der Informatik und Programmierung in Java
• Einfache Zahlumwandlungen und Zählen in Dezimal / Hexadezimal /Binär
• Caesar-Verschlüsselung verstehen und anwenden können.
• Modulo-Operator % verstehen
• Verstehen was (kleine) Programme tun und Ausgaben vorhersagen (siehe Beispiele weiter unten oder unseren kleinen Test)
• Idee "Programmausführung auf Papier" vom 22.09.2022 durchführen können
• Kleine Programmschnipsel selbst schreiben können (z.B. alle Quadratzahlen unter einer festgelegten Grenze ausgeben oder eine Zeichenkette in umgekehrter Reihenfolge ausgeben)

:neu: Bei dem untenstehenden Beispielprogramm wurden drei Programmschnipsel ergänzt (Quadratzahlen und Zeichenkette umgekehrt und Caesar-Verschlüsselung).

Betrachte folgenden Programmcode:

Du solltest in der Lage sein, die Ausgaben der jeweiligen Methoden komplett vorherzusagen! Hier sind die Ausgaben zur Überprüfung abgedruckt:



22.09.2022
20220927_11_ifef_zufallsschlagertext.zip

22.09.2022
Hinweis:
20220920_ifef_programmausfuehrung_auf_papier.pdf


21.09.2022
Aufgabe: Versuche vorherzusagen, welche Ausgaben die folgenden (manchmal sinnlosen, manchmal aber auch sinnvollen) Funktionen erzeugen. Erst das Ergebnis notieren, dann ausführen! Sage das Ergebnis auch für andere Eingabewerte voraus!


20.09.2022
Der Modulo-Operator (Der "Rest" der Grundschuldivision):
14 % 5 = ___
22 % 7 = ___
19 % 8 = ___
8 % 19 = ___
8 % 2  = ___
9 % 2  = ___
10 % 2 = ___

Aufgabe: Versuche vorherzusagen, welche Ausgabe die folgende (ziemlich sinnlose) Funktion erzeugt. Erst das Ergebnis notieren, dann ausführen! Sage das Ergebnis auch für andere Wörter als "hey" voraus!


15.09.2022
Hausaufgabe: Gib das Ergebnis des untenstehenden Programms an, wenn eingabeText = "fortnite" gilt!

• Erstelle auf dem Desktop ein Verzeichnis mit Namen "IF_TOE"
• Erstelle in diesem Verzeichnis eine .txt-Datei und eine .odt-Datei.
• Schreibe deinen Namen in die .txt-Datei. Erzeuge dann durch geschicktes Copy-and-Paste (mit Hilfe der Tastatur!) eine txt-Datei, die mindestens ein MB groß ist.
• Erzeuge eine Zip-Datei des Ordners und überprüfe die Dateigröße dieser Datei.
• Verschiebe das Verzeichnis auf den Stick deines Nachbarn
• Entzippe die Datei deines Nachbarn und überprüfe, ob er wirklich eine Textdatei der Größe 1 MB erzeugt hatte!

Aufgabe: Versuche vorherzusagen, welche Ausgabe das folgende (ziemlich sinnlose) Programm erzeugt. Erst das Ergebnis notieren, dann ausführen! Sage das Ergebnis auch für andere Wörter als "informatik" voraus!




14.09.2022
Das folgende Programm ist die Java-Version des "b-Sprache"-Programms



14.09.2022
Aufgabe: Schreibe das gegebene JavaScript-Programm für die "B-Sprache" in Java um



13.09.2022
Aufgabe: Vergleich von JavaScript mit Java
Hinweis: Kopiere das Programm in eine ".java"-Datei und schaue Dir die Datei in Notepad++ an.


08.09.2022
Miniprojekt: Caesar-Verschlüsselungs-Knacker: Fertige Version nach der Stunde am 08.09.2022



07.09.2022
Einstiegsaufgabe:
Verschlüssele das Wort "hey"
• Zunächst mit einer Alphabetverschiebung von 1
• und dann das Ergebnis erneut mit einer Alphabetverschiebung von 25
Was passiert?

06.09.2022
Miniprojekt: Caesar-Verschlüsselungs-Knacker




31.08.2022
Miniprojekt Nr. 2: JavaScript-Programmierung


Hinweis für weitergehende Aufgaben:
text = "Informatik";
idx = text.indexOf("a");   // idx erhält den Wert 6
idx = text.indexOf("z");   // idx erhält den Wert -1



29.08.2022
Miniprojekt für die nächsten Stunden


18.08.2022
Übersicht über Datenmengen:

Eine heute übliche Festplattengröße ist 1 Terabyte (1 TB)
Es gilt:

1 TB = 1 000 GB (Gigabyte)
     = 1 000 000 MB (Megabyte)
     = 1 000 000 000 KB (Kilobyte)
     = 1 000 000 000 000 Byte
     = 8 000 000 000 000 Bits

Aufgabe: Wie groß muss ein quadratisches Feld sein, wo jedes Bit die Fläche von einem Quadratmillimeter benötigt und insgesamt 1 TB Daten untergebracht werden sollen?
(Hinweis: für 50 Byte benötigt man 2cm*2cm)
50 Byte = 400 Bit
Kantenlänge eines Quadrats, welches 400mm² groß ist, ist: Wurzel(400mm²) = 20mm


Wurzel(8 000 000 000 000 mm²) = 2 828 427 mm
                              = 2 828,427 m
                              = ca. 2,8 km



Hausaufgabe:
Von "Blockly": https://blockly.games/?lang=de
* Puzzle
* ersten beiden Level vom Labyrinth


10.08.2022

Informatikunterricht in der EF bei Herrn Töns

• Bewertungskriterien: Qualität der Mitarbeit, (ggf. auch Quantität, falls themenbezogen), Fachsprache, Selbständigkeit, bei Hausaufgaben: Ernsthafte Ansätze müssen erkennbar sein!
• Bitte einen USB-Stick anschaffen!
• Wer hat Zugriff auf einen PC mit Tastatur und Maus? Vorkenntnisse?
• Kursart checken

Grundlagen Windows

Ich will sehen, wie gut ihr mit Windows umgehen könnt:

• Erstelle auf dem Desktop ein Verzeichnis mit dem Namen "Informatikhelden"
• Erstelle ein Dokument (ein einfacher Kurztext wie "Hallo Informatik" genügt) in der Textverarbeitungssoftware "Open-Office" und speichere es ab in dem Ordner "Informatikhelden"
• Erstelle ein Dokument in dem Programm "Notepad" oder "Notepad++" (beides auf dem Desktop zu finden) mit dem gleichen Text wie in der vorigen Aufgabe. Auch Dieses Dokument soll wieder in dem Verzeichnis "Informatikhelden" abgespeichert werden.
• Schaue Dir den Inhalt des Ordners "Informatikhelden" mit dem Datei-Explorer an und erkläre, welche Unterschiede die beiden abgespeicherten Dateien besitzen.
• Tastaturtraining: Erstelle in Notepad++ eine Kopie von folgendem kleinen Bärchen:




• Kopiere dieses Bärchen in das Open-Office-Dokument hinein und erkläre, warum die Grafik nicht mehr schön aussieht.
Daten im Zahlenformat anzeigen Dafür gibt es z.B. einen Dienst im Internet: https://hexed.it/ Betrachte die txt-Datei und die odt-Datei mit diesem Programm
• Wie funktioniert ein QR-Code?
• Ein IPhone12 Pro aus dem Jahr 2020 besitzt 6 Gigabyte RAM. Wie groß müsste ein QR-Code (Pixelgröße 1mm) sein, der diese Datenmenge speichern könnte?
• Lösche das Verzeichnis "Informatikhelden". Sind die Daten wirklich weg?


Unterschiede zwischen TXT-Dateien und doc-Dateien (oder odt-Dateien)

TXT-Dateien sind i.d.R. kleiner als Office-Dateien, da in den Office-Dateien Zusatzinformationen (Schriftgöße, Schrifart, Abstände etc.) gespeichert sind.

Bei TXT-Dateien wird für jedes Symbol (Buchstabe oder Zeilenumbruch etc.) genau ein Byte auf die Festplatte geschrieben. D.h. in der Regel kann ich für jede "Stelle" in einer Textdatei eines von 256 Symbolen auswählen, weil ein Byte Werte von 0 bis 255 annehmen kann.

Zahlensysteme
Dezimalsystem: Das System, welches wir kennen. Es gibt 10 Ziffern, nämlich 0,1,2,3,4,5,6,7,8,9. Mit diesen Ziffern kann man alle Zahlen auf bekannte Art und Weise bilden!
Oktalsystem: Hier hat man nur 8 Ziffern zur Verfügung: 0,1,2,3,4,5,6,7. Nach der Zahl 7 im Oktalsystem kommt die 10 im Oktalsystem, da die Ziffer 8 nicht existiert. Siehe auch: https://de.wikipedia.org/wiki/Oktalsystem
Binärsystem: Hier hat man nur 2 Ziffern zur Verfügung: 0 und 1. Siehe auch https://de.wikipedia.org/wiki/Dualsystem
Hexadezimalsystem: Hier hat man 16 Ziffern zur Verfügung: 0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f. Siehe auch https://de.wikipedia.org/wiki/Hexadezimalsystem

Um Zahlen in verschiedenen Systemen auseinanderzuhalten, kann man jeweils an die Zahl eine Kennzeichnung anhängen. Beispiel:

10(dez) = 12(okt) = 1010(bin) = a(hex)

Ergänze:

11(dez) = ___(okt) = _ ___(bin) = ___(hex)
__(dez) =  11(okt) =  ____(bin) = ___(hex)
__(dez) = ___(okt) = 11101(bin) = ___(hex)
__(dez) = ___(okt) =  ____(bin) =  23(hex)
__(dez) = ___(okt) =  ____(bin) =  ff(hex)


Lösung

11(dez) =  13(okt) =  1011(bin) =  b(hex)
9(dez) =  11(okt) =  1001(bin) =  9(hex)
29(dez) =  35(okt) = 11101(bin) = 1D(hex)
35(dez) =  43(okt) =100011(bin) =  23(hex)
255(dez) = 377(okt) = 11111111(bin) =  ff(hex)


"Why do programmers always mix up Halloween and Christmas?"

Restvorhaben der letzten Stunden:
• Wie funktioniert ein QR-Code?
• Ein IPhone12 Pro aus dem Jahr 2020 besitzt 6 Gigabyte RAM. Wie groß müsste ein QR-Code (Pixelgröße 1mm) sein, der diese Datenmenge speichern könnte?
• Lösche das Verzeichnis "Informatikhelden". Sind die Daten wirklich weg?
• Verschieben von Dateien, Verzeichnisse anlegen (Desktopmüll entsorgen)
• Einheiten von Datenmengen

Hausaufgabe:
Von "Blockly": https://blockly.games/?lang=de
* Puzzle
* ersten beiden Level vom Labyrinth


10.11.2022
Anmeldung zum Schnupper-Biber:
https://wettbewerb.informatik-biber.de



27.04.2023
Bitte gib deine Rückmeldung hier ein:

Deine Rückmeldung: