**Dies ist eine alte Version des Dokuments!**
2Ma & 2Mdz 2022-2023
Jahr 2M
Semester 2 (2M,FS)
Mo. 05.02.2024 (2Mdz) - Do. 08.02.2024 (2Ma)
(Mo-Lektion von 2Ma fällt aus wegen Theater)
- Info:
- 2 Prüfungen:
- Mo 18.3.24
- Mo 10.6.24
- Ausblick Themen:
- Web:
- Social Engineering
- Authentifizierung
- Verschlüsselung
- Daten
- …
- Neues kurzes Thema: Social Engineering
- Ablauf: Siehe Slides
HA:
- restliche Artikel von Auftrag lesen
Mo. 05.02.2024 (2Mdz) & Mo. 12.02.2024 (2Ma)
HA:
- Auftrag 1 fertig, einige Beiträge werden per Zufall für Präsentation ausgewählt
- Familie belehren über Social Engineering.
Mo. 12.02.2024 (nur 2Mdz)
- einige Lösungen von Auftrag 1 (Social Engineering) präsentieren lassen
Mo. 12.02.2024 (2Mdz) & Do. 15.02.2024 (2Ma)
- Neues Thema: Authentifizierung
- Märchenstunde
- Slides zu Lektion 1
Mo. 19.02.2024 (beide)
- Authentifizierung
- Themen: Brute Force, richtiges Python installieren, KI sinnvoll verwenden
- Übersicht 2 Lektionen:
- Hack-Challenge zeigen:Online & Offline
- benötigen richtiges Python (TJ reicht nicht)
- KI als Tutor
- KI als Tutor:
- Zitat Unbekannt: „KI wird die Gescheiten gescheiter machen und die Dummen dümmer.“
- → Lerne, die KI sinnvoll einzusetzen. Sie soll dir nicht die Arbeit abnehmen (→ dümmer), sondern dir helfen, dass du sie besser erledigen kannst (→ gescheiter).
- Benötigte Programmierkonzepte:
- am wichtigsten:
- Schleifen (
while
oderfor
), engl. 'loop' - Strings und Manipulation von Strings (Strings zusammensetzen, einzelne Zeichen auslesen, …)
- auch nützlich:
- Listen (Elemente hinzufügen, entfernen, auslesen, …)
- Funktionen
- falls Themen oben alle klar:
- Text-Files einlesen und schreiben
- wähle ein Thema, welches dich interessiert …
- … und lasse es dir von der KI erklären. Führe mit der KI eine Konversation.
- Mögliche Prompts:
- „Bitte erkläre mir, was … in Python ist.“
- „Mache ein paar Beispiele dazu.“
- „Erkläre mir dies einfacher.“
- „Ich verstehe den Teil zu … nicht. Bitte erkläre mir das genauer.“
- „Stelle mir eine einfache Aufgabe zum Thema.“
- Falls Level nicht angemessen, gib KI mehr Infos zu dir: „Ich bin 16 jähriger Schüler mit Grundkenntnissen im Programmieren.
- Falls dein Code einen Fehler (Bug) hat oder nicht tut, was er soll: „Was ist an diesem Code falsch? <Code einfügen>“
- Tipp: Alles auf Englisch → bessere Antworten.
-
- Aufgabe 0: Python einrichten
- Aufgaben 1-3: Hack
Mo. 19.02.2024 (2Mdz) & Do. 22.02.2024 (2Ma)
- 2Mdz: intallieren
- 2Ma:
- bereits alles installiert, mit Hack beginnen
HA:
- 2Mdz: Hack Passwort mit PW drei Grossbuchstaben
- 2Ma: Aufgaben 1&2 fertig
Mo. 26.02.2024 (beide)
- Auftrag 2L
- dabei selbständig Programmierdefizite aufarbeiten:
- Wichtigste Konzepte / Themen:
- Schleifen (while, for)
- Verzweigungen (if, if-else, if-elif-else)
- Listen (Unterschied Listen & Elemente verstehen, Elemente auslesen, verändern, entfernen, anfügen, …)
- Strings (einzelne Buchstaben auslesen, Zusammensetzen, …)
- Funktionen (Argumente/Parameter mit und ohne Rückgabewerte)
- Hilfe-Quellen:
- KI als Tutor verwenden. „Liebes ChatGPT, erkläre mir bitte, was Listen sind in Python, wozu man sie verwendet und mache konkrete Beispiele.“
- YouTube-Tutorials, z.B. von Kanal https://www.youtube.com/@ProgrammierenStarten Gibt aber noch viele mehr, gerade auf Englisch.
- Lehrer
- Falls fertig mit A1 & A2, wähle selbst:
- Optionale Aufgaben zu Brute-Force (Reihenfolge egal)
Mo. 26.02.2024 (2Mdz) & Do. 29.02.2024 (2Ma)
weiter an Auftrag von letzter Lektion
Mo. 04.03.2024 (beide)
- Multifaktor-Authentifizierung:
- Slides
- Aufgabe / Diskussion auf Slides
- falls Zeit: bereits mit Aufgabe von nächster Lektion beginnen, keine HA
Mo. 04.03.2024 (2Mdz) & Do. 07.03.2024 (2Ma)
- letzte Lektion zu Programmieraufgaben (Brute-Force)
- Aufgaben besprechen, insb. Wortlistenhack
- falls alles klar: Aufgabe 3
- HA:
- Aufgabe zu eigener IT-Sicherheit fertig machen
Mo. 11.03.2024 (beide) - Verschlüsselung L1
Neues Thema:
- letztes grosses Oberthema: Daten
- erstes Thema davon: Verschlüsselung
Lektion heute
- Slides: Rätsel & Einführung Verschlüsselung
- Aufgaben:
- Optional: Jupyter Notebooks verwenden
- wenn fertig: A2 & Zusatzaufgabe
- HA: keine
Mo. 11.03.2024 (2Mdz) & Do. 14.03.2024 (2Ma) - Q&A
Q&A Prüfung
Mo. 18.03.2024 (beide) - PRÜFUNG I/II
PRÜFUNG zu folgenden Themen:
Info:
- 45'
- isTest2
- keine Hilfsmittel ausser TigerJython Online
- Fragetypen: verschiedene, z.B.
- Wissen abfragen, z.B. Multiple-Choice
- Sachen erklären
- Programmieren
- …
Mo. 18.03.2024 (2Mdz) & Do. 21.03.2024 (2Ma) - Verschlüsselung L2
- Warm-Up: Nachricht an Person mit Caesar verschlüsseln, Verschiebung nicht angeben, Empfänger soll selbst herausfinden. Bsp. Jede Person schreibt Nachricht an die Person, die um 10 Positionen weiter rechts sitzt.
- Weiter mit Aufgabe A1
- falls fertig:
- Dann weiter im nächsten Kapitel: Weitere einfache Verschlüsselungsverfahren
- HA: Aufgaben 1 fertig
Mo. 25.03.2024 (beide) - Verschlüsselung L3
- Slides Vigenere und Monoalph. Verschlüsselung
- Aufgaben B (weiter in 2. Lektion)
Mo. 25.03.2024 (2Mdz) & Do. 28.03.2024 (2Ma) - Verschlüsselung L4
- weiter Aufgaben B
- HA:
- mind bis und mit B5
- empfohlen auch B6
- Tipp: Gib Codes per Teams ab, resp. Frage dort um Hilfe, um Codes selbst hinzukriegen
FRÜHLINGSFERIEN / SPRING HOLIDAYS
Mo. 22.04.2024 (beide)
2Mdz:
- Slides Häufigkeitsanalyse
- Gruppenarbeit: Aufgabe C1
- Häufigkeitsanalyse von Geheimtext gegeben
- Knacke nun
- Restliche Aufgaben C
2Ma:
- Slides Häufigkeitsanalyse (bis und mit Häufigkeitsanalyse von monoalph. VS)
- Gruppenarbeit: Aufgabe C1
- Häufigkeitsanalyse von Geheimtext gegeben
- Knacke nun
- Aufgabe C 1.5
- HA: C1.5 fertig
Mo. 22.04.2024 (2Mdz) & Do. 25.04.2024 (2Ma)
2Ma:
- Slides: Kasiski-Test (Vigenere knacken)
- Problem: Praktisch niemand hat HA (C1.5) gemacht
- Aufgabe C1.5 lösen
- Aufgabe C2 lösen
- HA: C1.5 fertig, weiter mit C2, werden noch etw. Zeit erhalten für C2
2Mdz:
- Weiter Aufgaben C
- HA:
- Am Morgen: Aufgabe C2 fertig, Empfehlung: Per Teams-Chat abgeben
- Ergänzung Nachmittag: Alternativ kann auch neue Aufgabe 1.5 machen
Mo. 29.04.2024 (beide)
- Vigenere-Game
Mo. 29.04.2024 (2Mdz) & Do. 02.05.2024 (2Ma)
2Ma:
- letztes Mal an Codes C
2Mdz:
- Codes Aufgaben C (primär 1.5 & 2)
- letztes Mal dazu
- empfohlene HA: weiter an Codes, Abgabe per Teams
Mo. 06.05.2024 (beide)
- Zeichencodierung I
- Aufgaben D1-D3 (D4 optional)
2Ma: HA: D3
Beachte: Ausfall wegen Ferien:
- Do. 09.05.2024 (FERIEN) (2Ma)
- Mo. 20.05.2024 (FERIEN) (2Mdz)
Mo. 06.05.2024 (2Mdz) & Do. 23.05.2024 (FERIEN) (2Ma)
- Zeichencodierung II
- restliche Aufgaben D
HA: Aufgaben D fertig
Mo. 27.05.2024 (beide)
2Mdz:
- Slides XOR (gesamt)
2Ma:
- Slides bis und mit „XOR mit Python“
- Aufgaben E1 & E2
- HA: E1 & E2
Mo. 27.05.2024 (2Mdz) & Do. 30.05.2024 (2Ma)
2Ma:
- Slides XOR fertig
- Aufgaben E3-…
- HA: bis und mit E3, Empfehlung: Code von E3 abgeben
2Mdz:
- Aufgaben E (XOR)
- HA: bis und mit E3, Empfehlung: Code von E3 abgeben
Mo. 03.06.2024 (beide)
- Slides „Moderne Verschlüsselungsverfahren“
- Aufgaben:
- F1
- (F2 auslassen, ist dann aber gute Prüfungsvorbereitung)
- F3 & F4
Mo. 03.06.2024 (2Mdz) & Do. 06.06.2024 (2Ma)
- weiter an Aufgaben
- ev. Q&A
Mo. 10.06.2024 (beide) - PRÜFUNG II/II
THEMEN: alles seit und inkl. Verschlüsselung
isTest, 45'
Mo. 10.06.2024 (2Mdz) & Do. 13.06.2024 (2Ma)
- Neues Thema: Spreadsheets
- Keine richtige Informatik, eher „Büromatik“
- Kurze Demo: Meine Notentabelle
- Zellen Formatieren
- Zellenbezüge/verweise
- Rechnungen
- Auftrag A
- HA: Auftrag A fertig, also inkl. d)
Mo. 17.06.2024 (beide)
- Warm-up Funktionen gemeinsam
- Aufgabe B: Notentabelle
Mo. 17.06.2024 (2Mdz) & Do. 20.06.2024 (2Ma)
- Zusammen Geburtstagsrechner (Zusatzaufgabe)
- weiter an Notentabelle
Mo. 24.06.2024 (beide)
AUSFALL
Mo. 24.06.2024 (2Mdz) & Do. 27.06.2024 (2Ma)
AUSFALL
Semester 1 (2M,HS)
L1 (LMC 1/7) 14.08.23 (2Mdz) & 15.08.23 (2Ma)
- Kurzes Wort zu Unterricht bei sca (Classroom Rules usw.) (genau studieren als HA)
- Slides:
- kurze Übersicht GFIF in 2M
- neues Thema: Computerarchitektur
- Slides zu Lektion 1 (Ziele, CPU, Maschinensprache, Assemblersprache, LMC, Befehlssatz)
- falls fertig: mit Aufgaben B beginnen
- HA:
- Unterricht bei sca (Classroom Rules usw.) genau studieren
- Aufgaben A fertig
L2 (LMC 2/7) 18.08.23 (beide)
- Auftrag: Aufgaben B: Erste Programme mit LMC
- falls fertig: Aufgaben C: Instruktionszyklus
- HA:
- Aufgaben B fertig
L3 (LMC 3/7) 21.08.23 (2Mdz) & 22.08.23 (2Ma)
- Fragen zu HA (Aufgaben B: Erste Programme mit LMC)?
- Fragen zu HA (Aufgaben B)
- Auftrag: Aufgaben C: Instruktionszyklus
- falls fertig: Aufgaben D: Branch mit LMC
- HA:
- Aufgaben C bis und mit A4-I (Verdoppler) fertig
L4 (LMC 4/7) 25.08.23 (beide)
- Fragen zu HA (Aufgaben C bis und mit Verdoppler)?
- Auftrag: Aufgaben D: Branch mit LMC
- falls fertig: Zusatzaufgaben LMC
- HA:
- Aufgaben D1 fertig machen
- Lösung von D1 genau studieren, beinhaltet Zusatzinformationen
- D1 muss komplett verstanden sein, bei Unklarheiten per Teams nachfragen
L5 (LMC 5/7) 28.08.23 (2Mdz) & 29.08.23 (2Ma)
2Ma
sca abwesend, Arbeitsauftrag:
- Studiere die Lösungen zu den HA (Aufgabe D1) ganz genau. Diese beinhalten zusätzliche Erklärungen dazu, wie man mit den Branch-Befehlen arbeitet.
- wenn fertig: Zusatzaufgaben LMC
- HA:
- D2 & D3
- Abgabe per Teams (nur eigenen Code mit kurzer Rückmeldung) bis Mittwochabend
2Mdz
- Besprechung HA (D1)
- wenn fertig: Zusatzaufgaben LMC
- HA:
- D2 & D3
- Abgabe per Teams (wie gehabt) bis Mittwochabend
L6 (LMC 6/7) 01.09.23 (beide)
- Rückmeldung HA:
- verwende z.B.
BRP JMP
anstelleBRP 9
- Schleifen: Bedingung am Anfang vs. Ende von Codeblock überprüfen (siehe unten)
- Slides „Zeichentabellen & Symbole im LMC“
- konkrete Fragen zu HA?
- Auftrag:
- zuerst Auftrag auf Slides („KSR“ ausgeben)
- falls fertig: Zusatzaufgaben LMC
- HA:
- Aufgaben E fertig
- falls HA auf heute (D2 & D3) noch nicht (gut) gemacht
Schleifen mit LMC:
// Bedingung am Ende vom Codeblock überprüfen // Problem: erster Durchlauf kann nicht verhindert werden ... LOOP ... ... BRP LOOP HLT
// Bedingung am Anfang vom Codeblock überprüfen ... LOOP ... BRZ END // am Anfang von Loop eine Bedingung prüfen ... BRA LOOP END HLT
L7 (LMC 7/7) 04.09.23 (2Mdz) & 05.09.23 (2Ma)
- letzte Lektion zu Computerarchitektur / LMC
- Kahoot zu LMC
- Fragen zu Aufgaben?
- schnapps-aufgabe zusammen lösen (nur wer will, zuerst alleine, dann LP löst vor):
- BenutzerIn gibt Alter ein
- LMC gibt aus, welchen Alkohol sie trinken dar: H für Himbeersirup, B für Bier, S für Schnapps
- Aufgaben lösen:
- falls noch nicht gemacht: 3xAddition
L8 (HTML 1/) 08.09.23 (beide)
Neues grosses Überthema: Web
- Starten heute mit Thema Websites
- erstes Kapitel: grundgeruest_einer_website
- Slides „web_01_websites_01_html“
- Auftrag „Grundgerüst einer Website“ (VSCode installieren uws. )
- falls fertig: mit nächstem Kapitel „Website erstellen mit HTML“ beginnen
- HA:
- Auftrag fertig
11.09.23 (HTML 2/) (2Mdz) & 12.09.23 (2Ma)
- Ziele:
- wichtigsten HTML-Elemente kennenlernen
- damit Website nachbauen
-
- Idee: Selber Theorie studieren …
- … ausprobieren …
- … auf Website anwenden.
- Genaue Anweisungen im Auftrag.
- falls fertig: Im nächsten Schritt werden wir unsere Seite mit CSS stylen. Informiere dich im Web darüber, was CSS ist, wie es funktioniert (Beispiele) und wie man es in eine existierende HTML-Website einbindet.
- HA: Auftrag fertig
15.09.23 (HTML 3/) (beide)
-
- Theorie in Slides und auf Wiki
- nutze Google, AI, … zur Hilfe
- HA:
- Auftrag III fertig, Inhalt von CSS (Screenshot oder als Code-Snippet) per Teams schicken bis SO-Abend
18.09.23 (HTML 4/) (2Mdz) & 19.09.23 (2Ma)
- Bemerkungen zu Auftrag III:
- Um Abstände zu regeln wurde meist mit padding gearbeitet. Verwende auch margin
- Hauptproblem: Slogan und Link am Anfang zentrieren → Tricky!
- kurzer Input zu IDs und Classes
-
- Zeit: 2 Lektionen
- Infos zu Abgabe, Bewertung usw. bei Projektbeschrieb
- Deadline Abgabe: kommender Freitag
- Fragen zu HTML & CSS?
22.09.23 (HTML 5/) (beide)
25.09.23 (HTML 6/) (2Mdz) & 26.09.23 (2Ma)
- Q&A zur Prüfung: selbständige Vorbereitung, Fragen?
- Rückmeldung Auftrag Lebenslauf:
- Falls noch nicht gut: Korrigieren und nochmals abgeben bis heute Abend
- Zu viele leere Zeilen, setzte diese nur sehr spärlich ein. Typischerweise nur eine Leerzeile vor Überschriften.
- Pfade:
- Vermeide Sonderzeichen & Leerschläge in Pfaden (Dateinamen und Ordnernamen). Wird z.B. auf Windows angezeigt aber nicht auf Mac (und umgekehrt). Faustregel: Nur a-z, A-Z, 0-9, Striche (-,_) verwenden
- Files sinnvoll (um)benennen (
"MicrosoftTeams-image (2).jpg"
→"malediven_strand.jpg"
) - Keine absoluten Pfade wie:
src="C:\Users\Fritzli\OneDrive\lebenslauf\images\malediven_beach.jpg"
.
- Tags:
- Doppeltags meist falsche Lösung.
<h1><u>I Überschrift</u></h1>
→<h1>I Überschrift</h1>
und passe Layout von h1 im CSS an. - Was aber ok ist:
<p>Ich spiele gerne <strong>Fussball</strong></p>
- Inflationäre Verwendung von <p>:
<p><h1>I Überschrift</h1></p>
→<h1>I Überschrift</h1>
, h1 ist bereits Block-Element. Verwende <p> wirklich nur für einen Absatz Fliesstext.
- HA: Auftrag Lebenslauf verbessern falls nötig, bis heute Abend
29.09.23 (beide) - PRÜFUNG
PRÜFUNG
Themen:
Hilfsmittel: Instructionset LMC (selbst mitbringen!) ohne weitere Notizen
Lernziele: Siehe Seiten zu Themen
Organisatorisches:
- Prüfung per IsTest & SafeExamBrowser (SEB)
- LMC funktioniert im SEB und kann angewendet werden
- HTML & CSS: kann nicht ausprobiert werden, muss mit Stift geschrieben werden
02.10.23 (2Mdz) & 03.10.23 (2Ma)
- JavaScript
- Vorzeigen-Nachmachen: Arbeiten mit JavaScript
- HA: Schnapps-Bier-Sirup fertig, verwende ChatGPT usw.
06.10.23 (beide)
- Weiter an JavaScript Website (Lektion 2/2)
HERBSTFERIEN
NW 1 - Mo. 23.10.2023 (2Mdz) & Di. 24.10.2023 (2Ma)
- Besprechung Prüfung:
- Programmiere in LMC: Buchstabe M ausgeben
- Bespreche Relevanz von HLT, Bsp.: LMC Aufgabe mit Unicode Symbol 600
- Einsicht Prüfung im SEB, keine Handy usw.!
- neues Thema: Netzwerke
- Slides Teil 1: Das Internet
Fr. 27.10.2023 (beide)
- Arbeitsauftrag: sca absent
- Im kommenden Semester wird das Programmieren wieder eine zentrale Rolle spielen. Im heutigen Auftrag geht es deshalb darum, unsere Programmierskills zu verbessern. Dies machen wir auf einer der Programmierplattformen Codewars oder CodinGames. Dort kann man auf spielerische Art und Weise Programmieren lernen und trainieren, indem man Challenges löst.
- Entscheide dich für eine der beiden Websites:
- Codewars: Empfohlen für die Meisten
- CodingGames: Nur für diejenigen, die bei Programmierprüfungen immer sehr gut abgeschnitten haben und die Herausforderung suchen.
- Vorgehen: Erstelle einen Account auf der jeweiligen Programmierplattform, hier findest du Anweisungen:
- Löse nun Challenges. Für den ganzen Auftrag solltest du sicher 40min aufwenden.
- Sobald du es erledigt hast, schreibe bis spätestens am 27.10.2023 um 23.59 der Lehrperson auf Teams (privater Chat) folgende Info:
- Plattform: Hast du dich für Codewars oder CodinGames entschieden?
- Benutzernamen: Welchen Benutzernamen hast du gewählt?
- Auflistung der Namen der gelösten Aufgaben / Challenges / Puzzles
NW 2 - Mo. 30.10.2023 (2Mdz) & Di. 31.10.2023 (2Ma)
- Rückmeldung CodeWars:
- Super Übung um Programmierskills aufzufrischen, festigen, Defizite aufarbeiten
- werden ab und zu machen
- Empfehlung: Selbständig trainieren
- Vorschlag: Freiwillige Challenge? Z.B. bis Weihnachten jede Woche mind. 2 Aufgaben lösen (zusätzlich von denen im Unterricht), könnte sich auch selbst Challenge setzen.
- Tipps zu CodeWars:
- Setze Standardprogrammiersprache: Oben rechts / Training Setup / Base Programming Language: Python
- Erkläre Idee:
- Code programmieren
- Testen: Code kann nicht von Menschen beurteilt werden, deshalb muss dies automatisiert geschehen: Dein Code wird mehreren Tests unterzogen und wenn alle erfolgreich (→ grün) waren, gilt der Code als richtig.
- Dann kann man diesen 'abgeben': „Attempt“ und dann „Submit“
- Tags: Beim Auswählen einer Aufgabe kann man unter „Tags“ eingeben, was man trainieren möchte, z.B. Fundamentals, Strings, Logic, Lists, Arrays (sind das Gleiche wie Lists in Python), Mathematics, …
- Fortschritt teilen: https://www.codewars.com/users/meinbenutzername
- weiter Slides Teil 1: Das Internet
- 2Mdz: weiter mit Slides ab Protokoll zu Tod von Queen
- 2Ma: weiter mit Slides ab Client & Server
- Aufgaben A: Grundlagen Netzwerke (notiere deine Lösungen auf OneNote)
- wenn fertig: Aufgaben auf CodeWars (damit ist immer auch CodinGames gemeint)
- HA:
- Aufgaben A: Grundlagen Netzwerke fertig machen
- Auf http://codewars.com/ Aufgaben lösen für 10' resp. mind. 1 Aufgabe abschliessen
NW 3 - Fr. 03.11.2023 (beide)
- A2 besprechen für $30$ Mia. Geräte
- Slides „Teil 2: Netzwerke im Internet“
- B1 besprechen
- HA: bis und mit B4
NW 4 - Mo. 06.11.2023 (2Mdz) & Di. 07.11.2023 (2Ma)
- Rechnungen auf OneNote: von Hand (empfohlen!), Formel-Editor
- Achtung: Aufgaben ab B5 wurden umgestellt
- Subnetzmaske mit CIDR-Suffix: (20')
- kurze Übersicht an WT
- Aufgaben B5 & B6 lösen (Aufgaben B: IP-Adresse & Subnetzmaske)
- wenn fertig: Zusatzaufgabe Programmieren (super Programmierübung!)
- Slides Teil 3: Schichtenmodell
- HA:
- Aufgaben B5 & B6 fertig
NW 5 - Fr. 10.11.2023 (beide)
- Slides Schichtenmodell fertig:
- 2Ma: ab „Schichtenmodell für Aufruf von Website“
- 2Mdz: ab Zusammenfassung Schichtenmodell Analogie (S.31)
- Falls fertig, wähle aus:
- Zusatzaufgaben in Aufgaben B: IP-Adresse & Subnetzmaske
- HA: Aufgaben C fertig
NW 6 - Mo. 13.11.2023 (2Mdz) & Di. 14.11.2023 (2Ma)
2a 14.11.
- Slides Slides: Kapitel „Teil 4: Vom Subnetz zum Internet“
- Alle Aufgaben D lösen
- HA:
- Aufgaben D1 & D2 fertig lösen
- Lösung von D2 per Teams schicken bis Mi-Abend, Schritte müssen ersichtlich sein (nicht nur Resultat)
2Mdz 13.11.
sca absent, Arbeitsauftrag:
- Slides studieren, Kapitel „Teil 4: Vom Subnetz zum Internet“
- Alle Aufgaben D lösen und …
- … Lösungen der Aufgaben abgeben per Teams-Abgabe (nicht im Chat) bis spätestens 13.11.2023 @23.59
NW 7 - Fr. 17.11.2023 (beide)
sca absent, Arbeitsauftrag:
- Aufgaben D lösen:
- D3 (nur 2Ma, 2Mdz bereits gemacht)
- D4 (nichts neues, nur Repetition)
- D5
- Muss am Freitag 17.11. gelöst werden
- Falls alles klar ist, muss nichts abgegeben werden. Bei Unklarheiten muss man sich am Freitag noch per Teams-Chat an die LP wenden: Schicke deine bisherige Lösung/Rechnung und erkläre, was unklar ist.
NW 8 - Mo. 20.11.2023 (2Mdz) & Di. 21.11.2023 (2Ma)
- Kahoot
- Rückmeldung HA:
- IP(v4) besteht aus 4-Bytes
- lokale vs. globale IP ermitteln
- Slides: Teil 4 (NAT & DNS)
- optional: Kurze Besprechung Adressen in Subnetz: Mit „IP Subnet Calculator“ generiere random IP & Mask plus 2. IP:
- Bestimme ob 2. IP im NW ist
- Bestimmt Netzwerk- & Broadcastadresse
- Verwende Python / TJ
- Zusatzaufgaben Umrechnungen lösen
(Interesse an weiteren solchen Aufgaben? Lasse es mich wissen!) - HA: Falls noch Probleme, Zusatzaufgaben lösen
NW 9 - Fr. 24.11.2023 (beide)
- Slides Routing
- Falls fertig:
- Zusatzaufgaben von letzter Lektion
- Python-Code schreiben:
- der IP binär in IP 4-Byte und umgekehrt umrechnet
- z.B. „11101100.00000011.01111101.11100111“ → „236.3.125.231“
- Tipps:
join
undsplit
(frage LP oder ChatGPT für mehr Infos).
- HA: Aufgabe E1 fertig
NW 10 - Mo. 27.11.2023 (2Mdz) & Di. 28.11.2023 (2Ma)
- Routing-Game I
Fr. 01.12.2023 (beide)
- Routing-Game II
Mo. 04.12.2023 (2Mdz) & Di. 05.12.2023 (2Ma)
- Wireshark Installieren
- kurze Demo: zeige, was bei Seitenaufruf für laralei.ch alles passiert
- selber ausprobieren
- Bemerke: TCP → ?
- Slides TCP & UDP
- HA: Wireshark einrichten, falls noch nicht geklappt hat
Fr. 08.12.2023 (beide)
- Info Prüfung: siehe unten
- kurze Übersicht TCP/IP-Visualisierung
- HA: Aufgabe 3 fertig
Mo. 11.12.2023 (2Mdz) & Di. 12.12.2023 (2Ma)
Q&A
Fr. 15.12.2023 (beide) PRÜFUNG
PRÜFUNG
- IsTest
- 45 min
- Inhalt: Netzwerke (siehe Lernziele dort)
- Hilfmittel: TigerJython (kann beliebig verwendet werden)
Mo. 18.12.2023 (2Mdz) & Di. 19.12.2023 (2Ma)
Fr. 22.12.2023 (beide)
- Besprechung Prüfung
WEIHNACHTSFERIEN / CHRISTMAS HOLIDAYS
Mo. 08.01.2024 (2Mdz) & Di. 09.01.2024 (2Ma)
- neues Thema: Fake News
- Lektion 1: I Troll: Website manipulieren
- HA: Screenshot von manipulierter Seite per Teams schicken bis Mittwochabend.
Fr. 12.01.2024 (beide)
- Fake News der SuS anschauen
- Lektion 2: Warum Fake News?: Slides zusammen durchgehen, Gruppenarbeiten
Mo. 15.01.2024 (2Mdz) & Di. 16.01.2024 (2Ma)
- Lektion 3: Fake News entlarven: Slides zusammen durchgehen, Gruppenarbeiten
Fr. 19.01.2024 (AUSFALL) (beide)
Jahr 1M
Semester 2 (1M,FS)
Prüfungen
Zwei Prüfungen:
- Do 16.3.23 (Programmieren, mit IsTest und TigerJython Online)
- Do 08.6.23
MB L4: Do 29.06.2023
- Slides „Radio“
- Warm-Up Aufgabe (siehe Wandtafel)
MB L3: Fr 23.06.2023 (1Mdz) - Mi 28.06.2023 (1Ma)
Fr. 23.06.: FERNUNTERRICHT
1Mdz:
- Arbeitsauftrag ohne VK, kann irgendwann am Tag erledigt werden
- Fragen an sca per Teams (werden ev. nicht umgehend beantwortet)
Auftrag (beide Klassen):
- Löse Aufgabe B4
- Studiere dann Theorie zu Beschleunigungssensor
- Aufgaben C1-C3
- HA: auf heute Abend: Aufgaben fertig lösen (C2 kann auslassen), C3 Abgabe per Teams (wie immer)
- falls fertig: Weitere Aufgaben C
MB L2: Do 22.06.2023
- FERNUNTERRICHT
- Arbeitsauftrag ohne VK, LP ist aber am Computer und steht für Fragen zur Verfügung (per Chat oder VideoCall)
- Erinnerung TALITs (und alle anderen, denen Programmieren gut läuft) lösen Advanced Aufgaben
- HA: auf heute Abend: Aufgaben fertig lösen, B2 Abgabe per Teams (wie immer)
MB L1: Fr 16.06.2023 (1Mdz) - Mi 21.06.2023 (1Ma)
- Einführung Microbit (Slides)
- Aufgaben A1-A2
- HA: Aufgaben fertig
Do 15.06.2023
(Einige Nachprüfungen)
For-Schleifen 2. Lektion
- Aufgaben B zu for-Schleifen
- Zusatzaufgaben lösen von vorherigen Themen, z.B.
HA: Aufgabe B1 fertig
Fr 09.06.2023 (1Mdz) - Mi 14.06.2023 (1Ma)
(sca abwesend)
For-Schleifen 1. Lektion
Zwei Programme, wähle das passende.
Programm 1: Für alle, die for-Schleifen noch nicht (gut) kennen
- Studiere die Theorie zu for-Schleifen …
- und löse die Aufgaben A1-A4 dazu.
- HA: Aufgaben fertig
Tipps:
- Die Lösungen sind direkt bei den Aufgaben verfügbar. Versuche aber zuerst immer, die Aufgaben ohne Lösungen zu lösen.
- Nicht verstanden, was for-Schleifen sind?
- Helft euch gegenseitig! Es gibt bereits SchülerInnen in der Klasse, die for-Schleifen verstehen!
- Studiere ein YouTube-Tutorial zu for-Schleifen.
- Lasse dir diese von ChatGPT erklären. Möglicher Prompt: „Erkläre mir bitte, was for-Schleifen in Python sind und mache Beispiele dazu.“
Programm 2: Für for-Schleifen Profis
Löse Zusatzaufgaben aus dem Zahlensysteme-Dossier, Kapitel 5
ZS L11: Do (1Ma) 08.06.23, Do (1Mdz) .23 PRÜFUNG
PRÜFUNG
- Themen:
- Suchen und Sortieren
- Zahlensysteme
- Aufgabentypen:
- Wissensfragen, z.B. „Erkläre …“, Multiple Choice, …
- Rechenaufgaben, z.B. „Addiere die beiden Binärzahlen von Hand.“
- Codes (zu Suchen, Sortieren und Zahlensystemen)
- erlaubte Hilfsmittel: keine, also kein TR (dafür TigerJython)
- Lernziele: bei jeweiligen Seiten
- 1Mdz: OHNE Hexadezimalsystem
ZS L10: Mi (1Ma) 07.06.23, --- (nicht für 1Mdz)
Trainingsprogramm:
Option 1 (einfacher)
Schreibe ein Trainingsprogramm, um die binäre Addition zu trainieren. Alternativ: binäre Subtraktion, Multiplikation oder 2er-Komplement. Wichtig: Du benötigst eine korrekte Funktion binary_add
. Falls deine nicht läuft, kannst du die Lösung der Lehrperson nehmen.
- Schreibe eine Funktion, die dir eine zufällige 8-Bit Binärzahl generiert. Stichwort
import random
- Um das Programm beliebig lange spielen zu können, wird Code unten in Endlosschleife
while True
gepackt. - Generiere darin zwei zufällige 8-Bit Binärzahlen, z.B. '10010011' und '10101001' mithilfe deiner Funktion von oben.
- Fordere Benutzerin auf, Summe dieser beiden Zahlen zu berechnen und einzugeben.
- Code berechnet richtiges Resultat (verwende dazu deine
binary_add
Funktion und vergleiche die eingegebene Lösung mit der richtigen. - Gebe Score bisher aus, z.B. „Korrekt: 5, Falsch: 2“
Option 2 (anspruchsvoller)
Schreibe ein Trainingsprogramm, um die Umwandlung Hex → Bin zu trainieren:
Wie Option 1, nur soll Benutzerin zufällig generierte Hex-Zahl in Binärzahl umwandeln.
Optional: Auch Umkehrung Bin → Hex in Game einbauen.
import random def binary_add(b1,b2): b1 = b1.replace(" ","") # remove all blanks b2 = b2.replace(" ","") # remove all blanks # make sure strings have same length while len(b1) < len(b2): b1 = '0' + b1 while len(b1) > len(b2): b2 = '0' + b2 # add binary string summe = '' i = len(b1) - 1 carry = '0' while i >= 0: if b1[i] == '0' and b2[i] == '0' and carry == '0': summe = '0' + summe carry = '0' elif b1[i] == '1' and b2[i] == '1' and carry == '1': summe = '1' + summe carry = '1' elif (b1[i] == '1' and b2[i] == '1' and carry == '0') or (b1[i] == '1' and b2[i] == '0' and carry == '1') or (b1[i] == '0' and b2[i] == '1' and carry == '1'): summe = '0' + summe carry = '1' else: summe = '1' + summe carry = '0' i = i - 1 if carry == '1': summe = '1' + summe return summe def rand_nr(n): nr = '' i = 0 while i < n: nr = nr + str(random.randint(0,1)) i = i + 1 return nr while True: b1 = rand_nr(4) b2 = rand_nr(4) answer = str(input("Berechne: " + b1 + " + " + b2)) # Eingabe von Spielerin result = binary_add(b1,b2) # Korrektes Resultat, berechnet mit meiner binary_add Funktion # vergleiche jetzt Eingabe Spielerin mit korrektem Resultat if answer == result: print("richtig!") else: print("falsch!")
ZS L9: Do (1Ma) 01.06.23, --- (nicht für 1Mdz)
Q&A - Vorbereitungslektion Prüfung
- eigenständiges Vorbereiten
- isTest Probetest (Zahlensysteme II) (Bin Add, Sub, Mul und 2er-Komplement)
- Besprechung Codes (falls Interesse)
ZS L8: Mi (1Ma) 31.5.23, Fr (1Mdz) 02.06.23
1Mdz
Q&A Vorbereitungslektion
- Lösungen zu allen Codes online
1Ma
Hexadezimalsystem
- Warm-Up: Kahoot
- Slides Lektion 8: Hexadezimalsystem
- Aufgaben: 4.1 & 4.2
- Wenn fertig, wähle aus:
- Aufgabe 4.3
- zusätzliche Programmieraufaben in Kapitel 5 (falls nicht in gedruckter Version vorhanden, siehe PDF auf Wiki)
- HA: A4.1 & 4.2 fertig
ZS L7: Do (1Ma) 25.5.23, Do (1Mdz) 01.06.23
binäre Multiplikation
1Ma
- Tipps HA:
- verwende keinen Code (von ChatGPT), den du nicht zu 100% verstehst
- Tipps auf Wiki: konkretes Beispiel zur Subtraktion und Tipps zum zugehörigen Code
- Slides
- Auftrag:
- Aufgabe 3.13 (schriftliche Multiplikation)
- isTest Übung
- 5 Fragen, autocorrect
- wähle „Im Prüfungsmodus absolvieren“
- Hauptziel: Von Hand mit Stift Rechnung lösen
- alte HA verbessern/neu machen (binäre Subtraktion)
- HA: Auftrag fertig:
- Rechenaufgaben selbst korrigieren
- Codes abgeben bis Sa
- isTest ausfüllen bis Sa
1Mdz
- Slides
- Auftrag:
- Aufgabe 3.13 (schriftliche Multiplikation)
- isTest Übung
- 5 Fragen, autocorrect
- wähle „Im Prüfungsmodus absolvieren“
- Hauptziel: Von Hand mit Stift Rechnung lösen
- alte HA verbessern/neu machen (binäre Subtraktion)
- HA: Auftrag fertig:
- Rechenaufgaben selbst korrigieren
- isTest Übung (nicht Test) fertig
ZS L6: Mi (1Ma) 24.5.23, Fr (1Mdz) 26.5.23
- Warm-Up: Binäruhr lesen & Subtraktion
- Aufgaben 3.10 - 3.11 (Negative Zahlen & Subtraktion, keine Codes)
- Aufgaben 3.12 (Codes dazu, siehe Tipps Zahlensysteme)
- HA: Aufgaben oben fertig, Codes Abgabe bis Sa
ZS L5: Mi (1Ma) 17.5.23, Do (1Mdz) 25.5.23
- HA nicht optional, können bei Rundung (nicht zwingend streng mathematisch) berücksichtigt werden (1Mdz am 11.5. mitgeteilt)
- 2. Prüfung um 2 Wochen vorverlegt
- Slides:
- Wamp-Up
- negative Zahlen, 2er-Komplement, Subtraktion
- Besprechung Code: Binäre Addition:
- Tipps zum Fall, dass Summanden ungleiche Länge haben
- Tipps zur Addition / Vorlösen
- Aufgaben:
- 3.9 - 3.11 (keine Codes)
- Code Binäre Addition fertig machen / verbessern
- Zusatzaufgabe: 3.12 (Code für 2er-Komplement & Subtraktion)
- HA:
- Aufgabe 3.9 fertig (auf nächste Lektion, selbst korrigieren)
- Code Binäre Addition mit Summanden ungleicher Länge, Abgabe bis morgen Abend (Adana bis Mo)
ZS L4: Do (1Ma) 11.5.23 und Fr (1Mdz) 12.5.23
- ChatGPT
- Problemthema: Funktionen, siehe Links zu Tutorial Funktionen
- Slides Lektion 4
- Thema: Binäre Addition
- Auftrag:
- Aufgabe 3.7 (Schriftliches Addieren, dezimal und binär)
- Aufgabe 3.8 (Code für binäre Addition), siehe Tipps unten:
- reicht für zwei gleich lange Binärzahlen, z.B. $1110 + 1010$
- HA:
- Aufgaben fertig
- A3.8 Abgabe per Teams bis Fr (1Ma), resp. Sa (1Mdz)
Tipps zu A3.8 (Code bin Add)|
- Tipp 1: Gehe zuerst einmal davon aus, dass die beiden Binärzahlen gleich lang sind (z.B.
binary_add('101010,'111100')
) . Wenn der Code funktioniert, erweitere ihn so, dass er für beliebige Binärzahlen funktioniert. - Tipp 2: Gehe die beiden Binärzahlen gemeinsam von rechts nach links durch. Addiere an jeder Stelle die beiden Ziffern und addiere den Rest des vorherigen Schrittes hinzu.
ZS L3: Mi (1Ma) 10.5.23, Do (1Mdz) 11.5.23
- Lösungen für letztes Thema sind jetzt verfügbar
- Problemthema: Funktionen, siehe Links zu Tutorial funktionen
- Slides Lektion 3
- Auftrag:
- Umrechnung Dezimalzahl → Binärzahl verstehen
- Aufgabe 3.3
- Aufgaben 3.5-3.6
- HA auf heute verbessern
- HA:
- Auftrag von heute fertig
- Abgeben per Teams
- Code A3.3 (falls noch nicht gemacht, bis Fr)
- Code A3.6 (bis heute)
ZS L2: Do (1Ma) 4.5.23, Fr (1Mdz) 5.5.23
- Slides: Warm-Up
- Aufgaben
- A3.4: zu Bytes
- A3.3: Code: Binärzahl zu Dezimalzahl
- Zusatzaufgaben:
- 5.1 & 5.3 (Achtung: nicht im Dossier von 1Ma, siehe digitale Version auf Wiki)
- HA:
- Aufgaben fertig
- Code zu A3.3 abgeben (neue Abgaberegeln) bis Fr. (1Ma), resp. Sa. (1Mdz)
ZS L1: Mi (1Ma) 3.5.23, Do (1Mdz) 4.5.23
- Neues Thema: Zahlensysteme
- Arbeiten mit Dossier auf Papier (immer mitbringen!)
Lektion:
- Gemeinsam durch Slides bis zu Aufgaben
- Aufgaben 2.1,3.1,3.2 lösen
- HA: Aufgaben fertig machen (müssen nicht abgegeben werden)
L15: Do 27.4. (1Ma), Fr 28.4 (1Mdz)
- Abschlusslektion Suchen & Sortieren
- Bubble Sort besprechen (vorprogrammieren)
- Probetest: Selbst Lösungen studieren (isTest), Fragen dazu?
- Allgemeine Fragen?
- Falls fertig: Implementiere den Insertion Sort Algorithmus
- HA: Bubble Sort fertig machen, abgeben bis Freitag (1Ma), Samstag (1Mdz)
L14: Mi 26.4 (1Ma), Do 27.4. (1Mdz)
- Info zu Abgaben:
- bitte ab jetzt nicht mehr per Screenshot …
- … sondern: Formatieren (Button unten links mit 'A' und Stift) / Button </> / Python auswählen / Code einfügen
- alles andere bleibt gleich: per Teams, immer mit kurzer Rückmeldung (funktioniert? Fehler, Probleme?)
- 1Ma: Animationen Selection Sort
- Besprechung Selection Sort (Vorprogrammieren)
- Besprechung Bubble Sort mit Kärtchen (Aufgabe 3, Teil I)
- Auftrag:
- Selection Sort verbessern, abgeben
- Bubble Sort mit Python programmieren (Aufgabe 3, Teil II)
- Falls fertig Zusatzaufgaben:
- einfach: Zufallsliste erzeugen
- anspruchsvoll: Insertionsort
- HA: Aufgaben 2 & 3 fertig (bis heute Abend)
Do 20.04.2023: freiwillige Nachprüfung
freiwilliges Angebot:
- zusätzliche Programmierprüfung (gleicher Inhalt wie letzte Prüfung)
- Durchschnitt der beiden Prüfungen zählt, wird aber bei Note 4 gedeckelt (keine höheren Noten möglich).
- Beispiel: 1. Prüfung: 3, 2. Prüfung: 6, Durchschnitt ist 4.5, tatsächliche finale Note ist aber 4
- Deadline Anmeldung: 31.03.2023, 23.59 (Teams-Nachricht an sca)
- Bei Absenz: Prüfung kann nur nachgeholt werden, wenn ärztliches Zeugnis vorgelegt wird.
L13: Mi 19.4. (1Ma), Fr 21.4. (1Mdz)
- Nach finden: Sortieren, wichtig z.B. für binäre Suche
- Aufgabe 1: Sortieren
- Selection Sort:
- Erklärung und Animation
- Aufgabe 2
- HA: A2 fertig, Python-Code an sca bis Fr (1Ma), resp. Sa (1Mdz)
FRÜHLINGSFERIEN
L12: Do 23.3. (1Ma), Fr. 24.3. (1Mdz)
- Info zu: Freiwillige Repetitionsprüfung (siehe oben)
- Besprechung Algorithmus/Code Binäre Suche in Python
- Aufgaben B4-5 lösen
- HA: Aufgaben bis und mit B5 bis Freitagabend (Abgabe empfohlen)
- Zusatzaufgabe: B6 (Binäre Suche rekursiv)
L11: Mi 22.3 (1Ma), Do 23.3.
- Info zu: Freiwillige Repetitionsprüfung (siehe oben)
- Info:
- Code Testen
- Animation Binäre Suche
- Binäre Suche in Python (B3)
- falls fertig: weitere Aufgaben B4 - …
- HA: B3 fertig (Abgabe bis Freitag)
Prüfung 16.3. (1Ma & 1Mdz)
- Programmierprüfung
- Inhalt:
- Python Grundlagen
- Format:
- IsTest2 & Save Exam Browser
- Programmieren im Webbrowser: https://webtigerjython.ethz.ch
- Zusätzliche Aufgaben zur Vorbereitung:
- Tipps/Listen:
- In Funktionen wird sehr selten geprintet. Resultate werden typischerweise zurückgegeben.
- Funktionen sollen in der Regel allgemein gültig sein. Spezifische Informationen werden deshalb als Argumente übergeben.
- Beispiel: Die Funktion
count_element_in_list(li,el)
soll zählen, wie oft das Elementel
in der Listeli
vorkommt. Die spezifische Liste, in der du Elemente zählen möchtest, soll dann eben nicht in der Funktion vorkommen. Stattdessen übergibst du diese der Funktion im Funktionsaufruf (z.B.count_element_in_list(numbers,'7')
. In der Funktion wird die übergebene Liste (hiernumbers
) dann in der Variablenli
gespeichert.
- Mache keine Verwechslungen zwischen Position/Index und Element in Listen.
Ausnahme: Prüfung Tiya:
- Inhalt:
- TurtleGraphics: alles (ausser optional)
- Python Grundlagen, bis und mit:
- Theorie: bis und „Verzweigungen im Detail“
- Aufgaben: bis und mit Aufgabe D2
- gleiches Format wie oben
L10: Mi 15.3. (1Ma), Fr 17.3. (1Mdz)
- Besprechung: Binäre Suche
- zusammen Aufgabe B1 - B2
- HA: auf erste Lektion nächste Woche: B2
L9: Do 9.3. (1Ma), Fr 10.3. (1Mdz)
- 1Ma: spontane Challenge (siehe ISY), Tipps zur Prüfung
- Besprechung A3 (wichtig: Suchfunktion muss allgemein verwendbar sein.)
- Aufgabe A4
- falls fertig: Zusatzaufgabentextanalyse:
- Passt thematisch sehr gut, da ein String oder gar ein ganzes Dokument nach etwas bestimmtem abgesucht wird.
- HA: A4 fertig und abgeben bis Freitag (1Ma)
L8: Mi 8.3. (1Ma), Do 9.3. (1Mdz)
- Info Prüfung (siehe oben)
- spontane Challenge (siehe ISY)
- Neues Thema: Suchen in Algorithmen II: Suchen & Sortieren
- Zusammen Aufgaben 1 & 2
- Aufgabe 3 (Programmieren)
- Falls fertig: mit Aufgabe 4 beginnen
- HA: A3 fertig (Abgabe bis heute, wie immer)
L7: Mo 27.02.2023 (1Mdz) & Do 02.03.2023 (1Ma)
1Mdz: Vorverlegt von Do auf Mo, als Arbeitsauftrag (sca krank)
- Letzte Lektion vor neuem Thema
- Aufgaben:
- neue Aufgaben H4 & H5
- Zusatzaufgaben
- Fragen klären
- HA: Aufgaben 4 & 5 fertig (Abgabe wie gehabt bis Freitag (1Ma))
L6: Fr 24.02.2023 (1Md) & Mi 01.03.2023 (1Ma)
- Theorie Strings im Detail:
- Kurzer Input: grobe Übersicht
- selbständig Theorie studieren
- Aufgaben H2 und H3 lösen.
- Weitere Aufgaben im Kapitel H lösen
- HA: H2 & H3, Abgabe wie gehabt (1Mdz: bis Samstag, 1Ma: bis heute Mittwoch)
L5: Do 23.02.2023 (1Ma&d)
Ausblick: Mit dieser noch 3 Lektionen für Python Grundlagen. In den Lektionsbeschrieben hier wird jeweils das Minimalziel genannt. Es ist aber empfehlenswert, vorzuarbeiten, damit noch Zeit für Zusatzaufgaben bleibt.
- Aufgaben G zu Listen fertig
- Theorie Logikoperatoren studieren
- Aufgabe H1
- HA: Aufgaben ferig, bis heute abgeben (Teams)
L4: Fr 17.02.2023 (1Md) & Mi 22.02.2023 (1Ma)
- Slides: Listen
- Aufgaben: G1-G3
- HA: G1, Abgabe bis Sonntag (1Mdz), heute (1Ma)
L3: Do 16.02.2023 (1Ma&d)
- Einstieg: Typische Fehler (siehe unten)
- Aufgaben: F4-F6
- Wenn fertig: Theorie zu Listen studieren und Aufgaben aus Kapitel G lösen
- HA: F4-F5 fertig, Abgabe per Teams, Deadline: morgen Freitag
Tipps und typische Fehler zu Funktionen:
Fehler 1: Funktionen müssen in sich geschlossen sein, z.B. i = 0
IN Funktion: Alles was zur Funktion gehört, gehört in diese hinein.
# FALSCH """ Problem: Gibt Fehlermeldung Grund: Variable i wird AUSSERHALB von Funktion deklariert. Innerhalb einer Funktion hat man nicht das Recht, diese zu verändern, was man mit i = i + 1 versucht. """ ... i = 0 def square(l): while i < 4: t.fd(l) t.right(90) i = i + 1 square(120)
# KORREKT ... def square(l): i = 0 while i < 4: t.fd(l) t.right(90) i = i + 1 square(120)
Fehler 2: Überschreiben von Argumenten von Funktion verhindern:
# FALSCH """ Problem: Wert, den man bei Funktionsaufruf (hier: 120) eingibt, ist völlig irrelevant, da die Variable immer mit einer Zufallszahl überschrieben wird, bevor sie verwendet wird. """ ... def circle(r): r = random.randint(50,150) turt.leftArc(r,360) circle(120)
# KORREKT ... def circle(r): turt.leftArc(r,360) radius = random.randint(50,150) circle(radius)
Tipp 1: Zuerst alle Funktionen deklarieren, erst dann aufrufen. Man kann auch zwischen Funktionsdeklarationen Funktionen aufrufen, es macht den Code einfach unübersichtlich (Ist also nicht Fehler, sondern schlechter Programmierstil).
# SCHLECHTER PROGRAMMIERSTIL def square(...): ... square(20,65,100) square(-120,0,34) def circle(...): ... circle(60,60,100) def triangle(...): ... triangle(-200,-150,70)
# GUTER PROGRAMMIERSTIL ## zuerst alle Funktionen def square(...): ... def circle(...): ... def triangle(...): ... ## dann alle Funktionsaufrufe square(20,65,100) square(-120,0,34) circle(60,60,100) triangle(-200,-150,70)
Tipp 2: Weniger (Variablen) ist manchmal mehr:
import math ## Funktionen deklarieren # Option 1: mit zusätzlichen Variablen def pythagoras_1(a,b): c2 = a*a + b*b c = math.sqrt(c2) return c # Option 2: direkt berechnen und ausgeben def pythagoras_2(a,b): return math.sqrt(a*a + b*b) ## Funktionen aufrufen # Option 1: Resultat in Variable speichern (macht Sinn, wenn Resultat nachher noch gebraucht wird) hypo = pythagoras_1(3,4) print(hypo) # Option 2: Direkt ausgeben (macht Sinn, wenn Resultat nachher NICHT mehr gebraucht wird) print(pythagoras_1(3,4))
Tipp 3: Hoch-Operator für Potenzen
# Hoch 3 rechnen, Variante 1: v = x * x * x # Hoch 3 rechnen, Variante 2: v = x**3
L2: Fr 10.02.2023 (1Mdz), Mi 15.02.2023 (1Ma)
- Einstieg:
- Schreibe eine Funktion
area_rectangle(...)
, die die beiden Seitenlängen eines Rechtecks entgegennimmt, dessen Fläche berechnet und in einem formatierten String aus gibt. Beispiel: Der Funktionsaufrufarea_rectangle(4,6)
produziert die Ausgabe „Die Flaeche eines Rechtecks mit Seitenlaengen 4 und 6 ist 24.“ - Falls fertig, studiere Beispiel 3 in https://sca.ksr.ch/doku.php?id=gf_informatik:programmieren_ii_sca#funktionen
- Diskussion: Rückgabewert (Was ist? Und warum in diesem Beispiel sinnvoller?)
- Theorie: Beispiele 3 und 4 unter https://sca.ksr.ch/doku.php?id=gf_informatik:programmieren_ii_sca#funktionen
- Aufgaben F1-F3
- HA:
- Aufgaben fertig
- Abgabe per Teams wie gehabt
- Abgabe bis kommenden Dienstag (1Mdz) / Mittwoch (1Ma) (Teams, Screenshot, Kommentar)
L1: Do 09.02.2023 (1Ma & 1Mdz)
- Einstieg I: Was ist das Problem mit dem Code unten? Wie verbessern?
import random r = random.randint(1,2) def head_or_tail(): if r == 1: print("Head!") else: print("Tail!")
- Aufgaben: restliche Aufgaben E
- HA:
- Aufgaben bis und mit E5 (Challenge Teil optional)
- E4 & E5 per Teams an sca bis Fr. 10.2.23 @23.59 (wie gehabt: Screenshot, Kommentar, …)
Semester 1 (1M,HS)
Do 19.12.22
- Besprechung Prüfung
- Theorie: Funktionen, Live Demo (mit/ohne Argument(e), aber ohne Rückgabewerte)
- Aufgaben: E1 & E2
- HA bis morgen:
- Aufgaben fertig
- E2 per Teams an LP schicken (wie gehabt)
Mo 16.01.23
Prüfung: Python
Info Prüfung:
- Themen: Programmieren I (TurtleGraphics), Algorithmen & Struktogramme, Programmieren II (Grundlagen Python, bis und mit „Verzweigungen im Detail“)
- IsTest
- Fokus auf Programmieraufgaben, auch Fragen zu Struktogrammen oder Theoriefragen möglich
Editor:
- Arbeiten mit Online-Editor (https://webtigerjython.ethz.ch), gibt ein paar kleine Unterschiede zum regulären TigerJython.
- „from turtle import *“ anstelle „from gturtle import *“ (ohne „g“)
- „hideTurtle()“ funktioniert nicht, verwende stattdessen „ht()“
- Die Turtle bewegt sich standardmässig nach rechts anstelle nach oben.
- Kopiere deinen Code vom Online-Editor in das Antwort-Fenster, bevor du zur nächsten Aufgabe gehst oder die Prüfung beendest. Ansonsten verlierst du deine Antworten.
- Gehe immer wieder zurück zur letzten Übung um zu überprüfen, dass das Hineinkopieren der Lösung korrekt geklappt hat.
Regeln:
- Verwende nur die im Unterricht gelernten Elemente. Noch nicht besprochene Elemente wie for, Listen, Funktionen oder verknüpfte Bedingungen (and, or) dürfen nicht verwendet werden.
- Verwende nie repeat sondern while.
- Bewertet wird nicht nur, ob der Code funktioniert, sondern auch wie programmiert wurde (Programmierstil). Wurden z.B. Schleifen verwendet um Codewiederholungen zu vermeiden?
- Die Turtle muss mit dem Befehl
Turtle()
erzeugt werden und nicht mitmakeTurtle
.
Do 12.12.22
- Prüfung Q & A:
- Selbständiges Vorbereiten
- Fragen stellen
- zusammen Aufgaben anschauen
Mo 09.01.23
- Info Prüfung (siehe oben bei Datum von Prüfung)
- Test Prüfung IsTest
- wenn fertig: Selbständiges Vorbereiten auf Prüfung
Do 22.12.22
- Weiter am Auftrag von letzter Lektion
- heute: Deadline Anmeldung Christmas Challenge
Mo 19.12.22
- Info Christmas Challenge (siehe unten)
- Erinnerung: Anmeldung TALIT
- Auftrag 2L:
- Aufgabe D3 fertig
- Aufgabe D4
- optional: Zusatzaufgaben
- Aufgaben alleine programmieren
- Aufgaben D3 & D4 müssen abgegeben werden bis kommenden Freitag (per Teams, Screenshot mit kurzer Rückmeldung)
Christmas Challenge:
- Selber Einsatz bestimmen. Muss 'gezahlt' werden, wenn Challenge nicht zu 100% erfüllt. Beispiel: Muffins backen für ganze Klasse oder andere Personen, die Challenge gemacht haben (inkl. Lehrperson!)
- Freiwillig, bis 22.12.22 bei sca per Teams anmelden (mit Einsatz und welcher Challenge)
- Basics-Challenge:
- von 24.12.22 bis und mit Fr. 06.01.2023 jeden Tag eine Programmieraufgabe lösen
- und am jeweiligen Tag Screenshot mit kurzer Rückmeldung an sca schicken per Teams
- 1 Joker: kann an einem Tag nichts machen, resp. eine Aufgabe verspätet abgeben
- Advanced-Challenge:
- Wähle drei anspruchsvolle Zusatzaufgaben, die du noch nicht gelöst hast und löse diese.
- Bis an folgenden Daten muss ein nächstes Programm abgegeben werden (Code als File inkl. Rückmeldung):
- 28.12.2022 (Abgabe erstes Programm)
- 02.01.2023 (Abgabe zweites Programm)
- 07.01.2023 (Abgabe drittes Programm)
- Sonderlösungen (z.B. kann 3 Tage nichts machen, weil in einem Lager) sind möglich, müssen aber vorgängig abgesprochen sein.
Basic Challenge: 5 SuS
Advanced Challenge: 5 SuS
Do 15.12.22
- Diplome Biber
- Slides „Verzweigungen im Detail“
- HA: bis und mit Aufgabe D3, Teil I
Mo 12.12.22
weiter am Auftrag vom letzten Montag
Do 08.12.22
Info: Matura Talenta IT (TALIT) mit Pacifico
Rubik's Cube
Tutorial Rubik's Cube: https://ruwix.com/the-rubiks-cube/how-to-solve-the-rubiks-cube-beginners-method
Tipps:
- Löse erste Ebene (normalerweise weiss) ohne auswendig gelernte Methode. Beachte, dass auch Seiten stimmen.
- Löse zweite (mittlere) Ebene (Schritt „3 Second Layer“ im Tutorial).
- Löse dritte Ebene (Schritte 4-7 im Tutorial)
Mo 05.12.22
- Abgabe Korrektur Prüfung
- Auftrag:
- Zeit: 2 Lektionen (heute und kommenden Montag)
- Ziel: Grundlagen der Programmieren festigen
- Aufgaben B fertig und …
- Aufgaben C
- Arbeitsform: Alleine programmieren (natürlich darf man mit Kolleg:in sprechen, aber alleine programmieren)
- Sende von jeder Aufgabenserie (B und C) mind. eine deiner Lösungen per Teams an LP
- wenn fertig: Siehe Zusatzaufgabe C (Uhr mit TurtleGraphics)
Do 30.11.22
- Prüfung verbessern:
- Eigentliche Verbesserung (Seite 1 auf Schluss verschieben, auf Struktogramme fokussieren)
- Seite 1 (TigerJython) verbessern
- Struktogramme von Prüfung in Python programmieren
- Weiter an Aufgaben B: B4-…
- HA:
- Prüfungskorrektur fertig (ohne Übersetzung in Python)
- abgeben bis nächste Lektion (falls z.B. in Heft gemacht, kann auch guten Scan machen und per Teams schicken)
Mo 28.11.22
- Gruppenpuzzle zu „Weitere Grundlagne“ (ca. 30')
- Auftrag:
- Aufgaben A korrigieren (Lösungen sind online)
- Aufgaben B1-3
- HA Mi 18.00:
- Lösungen von B1-3 Teams schicken (Screenshot, direkt sichtbar, Kommentar ob funktioniert resp. wo Probleme liegen).
- Schicke mit keinen kopierten Code!
- Prüfung mitnehmen (für Prüfungsbesprechung)
Do 24.11.22
- Besprechung HA (A1-A2)
- Aufgaben A3-A4
- HA:
- A3-A4
- Screenshot von Lösung einer Aufgabe an sca schicken per Teams. Bild so einfügen, dass direkt angezeigt wird.
Mo 21.11.22
- Neues Thema: Programmieren II
- Slides: „Von Strukogrammen zu Python“
- Aufgaben A
- HA: A1-A2
Do 17.11.22
Durchführung Informatik-Biber
Mo 14.11.22
- Ausfall Krankheit sca
- Auftrag: auf Biber vorbereiten
Do 10.11.22
- Info & Vorbereitung Informatik-Biber
Mo 07.11.22
Prüfung: TurtleGraphics & Algorithmen
Info:
- Komplett auf Papier (also nicht am Computer)
- keine Hilfsmittel
Inhalt:
- Alles zu den folgenden Themen
Typische Aufgaben (aber NICHT ausschliesslich!)
- TigerJython: Gegebene Figur reproduzieren (Achtung: Auf Papier!)
- TigerJython: Figur zu gegebenem Code skizzieren (Achtung: Auf Papier!)
- Algorithmus als Struktogramm schreiben
- Struktogramm evaluieren
- Erkennen, welcher Algorithmus in Struktogramm umgesetzt wird.
Tipps:
- Struktogramme: Halte dich zu 100% an die vorgegebenen Notationen und Konventionen.
- Bei diesem Thema kann man nicht viel auswendig lernen. Man muss es verstehen und auf neue Situationen anwenden können. Tipp: Üben, sich selbst Aufgaben ausdenken, mit Kolleg:innen diskutieren, …
- Sende mir (rechtzeitig, nicht zu kurzfristig) Fotos von deinen Lösungen, damit ich dir eine Rückmeldung schicken kann.
Do 03.11.22
Weiter an Auftrag von Montag, Prüfungsvorbereitung
Mo 31.10.22
- Info Prüfung: Siehe Lektion zu Prüfung
- Slides: Evaluation von Struktogrammen
- Besprechung HA (Aufgaben C1-C3)
- Auftrag bis und mit kommende Lektion (alles prüfungsrelevant):
- HA C1-C3 verbessern
- D1-D3
- C4-C5
Do 27.10.22
- Slides (1Ma ab Doppelgleich, 1Mdz ab Ausgabe)
- Aufgaben C: Auf Papier lösen
- Falls fertig:
- Zusatzaufgaben in den Aufgaben C
- HA: Aufgaben C1 bis und mit C3 fertig, falls Probleme, frage rechtzeitig (nicht erst am Tag vor nächster Lektion) per Teams nach
Mo 24.10.22
- Prüfung zurück
- Besprechung HA: B2 & B3
- Verbesserung HA (wenig Zeit in Lektion, Rest HA)
- Slides (Eingabe, Ausgabe, Einzelgleich vs. Doppelgleich, Text/Strings)
- HA:
- Verbesserung B2 & B3
- …
Nächste Lektion:
- 1Ma: weiter Slides, Doppelgleich
- 1Mdz: weiter Slides, Ausgabe
HERBSTFERIEN
Do 29.9.22
- Rückmeldung Prüfung Hardware
- Besprechung HA (Wasserhahn-Algo als Struktogramm)
- Aufgaben B2 & B3 (Struktogramme für Karamell-Bonbons & Subtraction Game)
- HA: Aufgaben B2 & B3 fertig machen
Mo 26.9.22
Werden in nächsten Lektionen auf Papier arbeiten: Bringe Papier mit, Empfehlung: Heft!
- Subtraction Game
- Einführung Struktogramme
- HA:
- Aufgabe A2: Algorithmus Subtraction Game in menschl. Sprache (NICHT Struktogramme) fertig
- Aufgabe B1: Algorithmus Wasserhahn in Struktogramm umwandeln.
Do 22.9.22
neues Thema: Algorithmen I
- Slides zu Algorithmen (Definition, Beispiele)
- Aufgabe Wasserhahn inkl. Zusatzaufgabe
Mo 19.9.22
Prüfung Hardware I
Do 15.9.22
letzte Lektion zu Programmieren I
- Aufgaben besprechen, Probleme lösen
- Kapitel 4 Farben: Theorie studieren
- Kunst machen (Kandinsky-Style)
- Kunstwettbewerb (Abstimmung)
Mo 12.9.22
- Besprechung HA
- Copy-paste vs. repeat
- Aufgabe A4
- Theorie zu Kreisbogen (studiere selbständig)
- Aufgaben B1-B5
- Zusatzaufgaben: optionales Kapitel zu Farben
- HA: bis und mit B5
Do 8.9.22
Neues Thema: Programmieren I: https://sca.ksr.ch/doku.php?id=gf_informatik:programmieren_i
- Einführung:
- Um was geht es?
- Ordner anlegen für Aufgaben, erstes File
- Aufgaben lösen
- HA: bis und mit Aufgabe A3
- Info Prüfung: NUR Hardware I
Mo 05.09.2022
Letzte Lektion Hardware
- Auftrag „Ich und mein Computer“ fertig
- In 4er Gruppen mit LP Computer anschauen
- HA:
- TigerJython muss laufen in nächster Lektion
- Einführung zu Programmieren I lesen
Do 01.09.2022
- Slides Spezifikationen
- Auftrag 3
- HA: 10min weiter an Auftrag (nachher noch 1 Lektion)
Mo 29.08.2022
- Fertig besprechen: Slides zum Innenleben von Computer
- Aufgabe 2 (Speichergrössen)
- HA: Aufgabe 2 fertig (vergleiche selbst am Schluss mit Lösungen auf Slide)
Do 25.05.2022
- Besprechung Schnittstellen (Slides)
- Slides zum Innenleben von Computer (bis und mit Mainboard)
Mo 22.08.2022
- Einführung:
- Vorstellung
- Was ist Informatik? Warum Programmieren?
- Umfrage zu Vorkenntnissen (siehe unten)
- Übersicht 1. Quartal
- Slides: Was ist ein Computer?
- Auftrag „Mein Computer (Teil I)“ https://sca.ksr.ch/doku.php?id=gf_informatik:hardware_i_sca
- HA:
- Umfrage fertig ausfüllen
- Auftrag 1 „Mein Computer (Teil I)“ fertig