Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ~~NOTOC~~ <!-- ''https://ofi.tech-lab.ch/2024'' --> ====== Informatik Schuljahr 2023/24, 2eNP, 2dNP, 2pG ====== Ich entschuldige mich für das teilweise Sprachkauderwelsch, aber die deutschen Begriffe klingen in der Informatik oft etwas seltsam ... ====== 5. Bits and Bytes: Wie funktioniert ein Computer? ====== ==== Lernziele ==== Leicht aktualisiert, Erstellen einer logischen Schaltung mit Logisim kann auch drankommen. Voraussichtlich findet in diesem Fall der Hauptteil der Prüfung auf Papier statt, der Logisim-Teil als letzte Aufgabe am Computer. Wer Logisim nicht installiert hat, muss das dann in der Prüfung nachholen. {{ :lehrkraefte:snr:informatik:glf23:lernziele-bits-and-bytes.pdf |}} ==== Stoff ==== Logisim Download: https://sourceforge.net/projects/circuit/ * {{ :lehrkraefte:snr:informatik:glf23:bits-and-bites:bits-and-bytes-sv.pdf |Skript, Seiten 1-4}} * {{ :lehrkraefte:snr:informatik:glf23:bits-and-bites:bits-and-bytes-seiten-5-8.pdf |Skript, Seiten 5-8}} * {{ :lehrkraefte:snr:informatik:glf23:bits-and-bites:bits-and-bytes-sv-9-10.pdf |Skript, Seiten 9-10}} Lösungen einiger Aufgaben (eventuell muss man noch das "numeric python package" ''numpy'' installieren; das sollte in VS Code im Terminal der Befehl ''pip install numpy'' erledigen): {{ :lehrkraefte:snr:informatik:glf23:bits-and-bites:loesungen-bits-and-bytes-bis-aufgabe-15.py |}} Einige Links: * Exploring how computers work (bis 6:16, Binärzähler einschliesslich): https://www.youtube.com/watch?v=QZwneRb-zqA * 2023: ca. 160 Millionen Transistoren pro Quadratmillimeter: https://en.wikipedia.org/wiki/Transistor_count#Transistor_density <hidden Zum Bau des 4-Bit-Addierers, einige Logisim-Screenshots> Drehen von Bauteilen (Pins, And, Or, ...) durch Anklicken (im Konstruktionsmodus) und Menüpunkt "Facing" im Fenster links. Folgende Abbildung: XOR {{:lehrkraefte:snr:informatik:glf23:bits-and-bites:xor-logisim.png?200|}} Folgende Abbildung: Halbaddierer HA: Addiert zwei Bits (= 1-stellige Binärzahlen) {{:lehrkraefte:snr:informatik:glf23:bits-and-bites:halbaddierer.png?100|}} Folgende Abbildung: Volladdierer VA: Addiert drei Bits (= 1-stellige Binärzahlen) {{:lehrkraefte:snr:informatik:glf23:bits-and-bites:volladdierer.png?100|}} Folgende Abbildung: 4-Bit-Addierer: Addiert zwei 4-stellige Binärzahlen, https://de.wikipedia.org/wiki/Carry-Ripple-Addierer Die Hexadezimalanzeigen sind optional. Man findet sie in Logisim unter "Input/Output". Zum Anschliessen benötigt man Splitter, die man unter "Wiring" findet. {{:lehrkraefte:snr:informatik:glf23:bits-and-bites:4-bit-addierer.png?400|}} </hidden> ====== 4. Webprojekt: Webseiten erstellen mit HTML und CSS ====== * [[lehrkraefte:snr:informatik:glf23:abgabe-webprojekt|Abgabe des Webprojekts inklusive Abgabetermin]] Das Ziel ist, dass du eine Website (= mehrere, thematisch zusammengehörende Webseiten) erstellst, die dann lokal im Schulnetz für alle zugänglich ist. Am Ende der Projektphase stellst du deine Website in der Klasse in einer kurzen Präsentation vor.((Code aus dem Internet und KI dürfen verwendet werden (bei grösseren Codefragmenten mit Quellenangabe), jedoch musst du in der Lage sein, mir deinen Code zu erklären (im Zweifelsfall Zeile für Zeile).)) * 4.0: [[lehrkraefte:snr:informatik:glf23:webseiten-allgemein|Allgemeines zu Webseiten]] * 4.1 (1 Doppellektion): [[lehrkraefte:snr:informatik:glf23:html|Einführung in HTML]] * 4.2 (1 Doppellektion): [[lehrkraefte:snr:informatik:glf23:css|Einführung in CSS]] * 4.3 (gemeinsam): [[lehrkraefte:snr:informatik:glf23:html-css:filezilla|Hochladen der Website auf den Tech-Lab-Server]] * Nach dem erfolgreichen Hochladen findest du deine Website via ''https://ofi.tech-lab.ch/2024''. (Wenn Veränderungen nicht sofort sichtbar werden: ''Ctrl+Shift+r'' für "hard refresh".) * 4.4 [[lehrkraefte:snr:informatik:glf22:html-css:projekt-anregungen|Anregungen für die Projektphase]] Bemerkungen für nächstes Mal (auskommentiert): <!--- Bootstrap anschauen? Mal ganzes Beispiel von W3schools durchschauen. In 2dNP: Erkläre, wie man Dateien auf Tech-Lab-Server spielt. in anderen beiden Klassen: bisschen weiter machen mit HTML. Vor CSS: Erkläre, dass auf W3-schools und im Internet oft alles per "style" (und "script" für Javascript) im html-File. (Teste, ob JavaScript wirklich nur per Live-Server geht.) Beispiel vormachen, wie man das in drei Dateien aufdröselt. Erstmal mit 2 Dateien, zum Beispiel css grid! z.B. Sidebar from w3-schools! Ivo empfiehlt Live Server VSCode: Click auf Explorer-Icon to hide/show left bar Grundgerüst per Hot-Key alle HTML-Elemente per Auswahl! Nur ein Body pro Datei, nur ein head: Validator! (Browser sind grosszügig) * [[lehrkraefte:snr:informatik:glf23:html-css:projekt|Projektphase]], {{:lehrkraefte:snr:informatik:glf22:html-css:ansagen-beginn-webprojekt.png?linkonly|Hinweise zu Projektbeginn}} * [[lehrkraefte:snr:informatik:glf23:html-css:projekt-anregungen|Anregungen für die Projektphase]] ---> ===== 3. Python-Programmierkurs ===== * 3.1 (2 bis 2.5 Doppellektionen) [[lehrkraefte:snr:informatik:glf23:python:variablen-input-output|Ausgabe, Eingabe und Variablen]] * 3.2 (1 Doppellektion) [[lehrkraefte:snr:informatik:glf23:python:if-statements|if-statements]] * 3.3 (1 Doppellektion) [[lehrkraefte:snr:informatik:glf23:python:while-loops|while-loops]] * 3.4 (Lektion nach den Herbstferien): * Python-Wiederholung {{ :lehrkraefte:snr:informatik:glf23:python:python-wiederholung-arbeitsblatt.pdf | Arbeitsblatt}}, {{ :lehrkraefte:snr:informatik:glf23:python:python-wiederholung-musterloesung.pdf | Lösung}} * [[lehrkraefte:snr:informatik:glf23:biber|Biber ausprobieren und Infos]] * 3.5 (1 Doppellektion) [[lehrkraefte:snr:informatik:glf23:python:turtle|Turtle-Grafik]] * 3.6 (1 Lektion nach Biber + 1 Doppellektion) [[lehrkraefte:snr:informatik:glf23:python:funktionen|Funktionen ]] * 3.7 (1 Doppellektion) [[lehrkraefte:snr:informatik:glf23:python:listen|Listen]] * 3.8 (1 Doppellektion) [[lehrkraefte:snr:informatik:glf23:python:rekursion|Rekursion]] * 3.9 (1-2 Doppellektionen) [[lehrkraefte:snr:informatik:glf23:python:pygame|Spielprogrammierung mit PyGame]] ===== 2. Algorithmisches Denken: Vom Problem zum Pseudo-Code zum Python-Programm ===== * 2.1 (1 Doppellektion) [[lehrkraefte:snr:informatik:glf23:python:vom-pseudocode-zum-programm-teiler-einer-zahl|Teiler einer Zahl]] (inklusive Installation von Python, Installation von Python extensions in VS Code, Ausführen eines Python-Programms in VS Code) * 2.2 (1 Doppellektion) [[lehrkraefte:snr:informatik:glf23:python:vom-pseudocode-zum-programm-umwandlung-zweiersystem|Zahl im Zweiersystem (= Binärsystem = Dualsystem) ausgeben]] <!-- * 2.3 (1 Doppellektion) [[lehrkraefte:snr:informatik:glf23:python:vom-pseudocode-zum-programm-primzahlen|Liste von Primzahlen]]--> ===== 1. HTML-Seite mit Visual Studio Code erstellen (1 Doppellektion) ===== * Vorstellung meinerseits und Organisatorisches (Prüfungstermine, Themen in Informatik) * Kurze Geschichte der Informatik anhand wichtiger Persönlichkeiten: https://gi.de/persoenlichkeiten ((vgl. auch [[https://de.wikipedia.org/wiki/The_Imitation_Game_%E2%80%93_Ein_streng_geheimes_Leben|The Imitation Game - Ein streng geheimes Leben]], [[https://www.imdb.com/title/tt4400588/|The Queen of Code]] und [[https://de.wikipedia.org/wiki/Hidden_Figures_%E2%80%93_Unerkannte_Heldinnen|Unerkannte Heldinnen]])) * Grobe Unterscheidung: * ICT: Anwendungen/Apps verwenden * Informatik: Anwendungen selbst erstellen, "digital mündig werden" * Was ist [[https://de.wikipedia.org/wiki/Informatik|Informatik]]? * [[lehrkraefte:snr:informatik:glf22:html-startseite|Vorbereitungen, Installation von Visual Studio Code, Erstellen einer HTML-Startseite]] * diverse Hotkeys erklärt: etwa ''Alt-Tab'', ''Windows+Pfeiltaste'', teilweise ''Alt+Pfeiltaste hoch/runter'' in VS Code. ===== Lernziele Python-Prüfung ===== Allgemein: Wer in den Lektionen gut mitgearbeitet hat, sollte in der Prüfung gut abschneiden können. Die Prüfung findet auf Papier statt und wird vom Stil her ähnlich aussehen wie das unten verfügbare Wiederholungsblatt nach den Herbstferien (siehe 3.4). Der Schwerpunkt liegt auf dem Leseverständnis von Python-Programmen. <hidden Bitte anklicken> Wissen (angegeben ist meist das abstrakte Konzept und die konkreten Begriffe bzw. Zeichen, die in der Programmiersprache Python dafür verwendet werden): Grundkenntnisse der Programmierung am Beispiel der Programmiersprache Python, genauer: * Kenntnis der wesentlichen [[https://de.wikipedia.org/wiki/Kontrollstruktur|Kontrollstrukturen]] in Computerprogrammen: * if (else) statements (bedingte Anweisung/Verzweigung); ''if'', ''else'', ''elif'' (Doppelpunkte beachten) * while loops ("Solange"-Schleife, bedingte Wiederholung); ''while'' (Doppelpunkt beachten) * Funktionen (mit und ohne Rückgabewert); ''def'', return (Doppelpunkt beachten) * Code-Blöcke/Blockstruktur: Bedeutung von Einrückungen in Python (vier/acht/zwölf/etc. Leerschläge am Zeilenanfang) * Variablen (= Speicherplätze mit Namen, deren Inhalt sich während des Programmablaufs ändern kann) * Ein- und Ausgabe (''input'', ''print'') * Unterscheidung zwischen Datentyp "Zahl" (genauer integer (= ganze Zahl) und float (= Kommazahl) und Datentyp "Zeichenkette" (= string) * Umwandlung von integer in string (per ''str'') und von (als ganze Zahl auffassbarem) string in Zahl (per ''int'') * Rechnen mit Zahlen (insbesondere Symbole für Rechenzeichen, d.h. ''+'', ''-'', ''*'', ''/'', ''<nowiki>//</nowiki>'', ''%'', ''<nowiki>**</nowiki>''. * Rechnen mit Strings: String ''+'' String, Zahl ''*'' String * Unterschied zwischen Zuweisungszeichen ''='' und Vergleichszeichen ''==''; weitere Vergleichszeichen sind ''<'', ''<='', ''>'', ''>=''. * Logisches Oder (''or'') und logisches Und (''and'') * Turtle-Grafik, Grundfunktionen (''forward'', ''left'', ''right'') * (nur Klassen 2dNP und 2eNP): Grundlagen zu Listen: Definition einer Liste, Zugriff auf Elemente, Länge einer Liste, Schleifen über Listen * algorithmisches Denken: Vom Problem zum [[https://de.wikipedia.org/wiki/Algorithmus|Algorithmus]] (den man etwa in Pseudocode oder in einer Programmiersprache wie Python angeben kann), siehe Abschnitt 2, insbesondere 2.1 unten. Können * (kleine) Python-Programme, die die oben aufgeführten Konzepte verwenden, verstehen können. * "Computer spielen" können: * Ausgabe eines Programms ermitteln können. * In einer Tabelle eintragen können, wie sich die Variablen während eines Programmablaufs ändern. * Fehler in Python-Programmen finden und korrigieren können (oder statt Fehlern Lücken in einem Programm-Code ausfüllen ("Lückenprogramm" statt "Lückentext")) * Herausfinden können, was ein Python-Programm tut. * (vermutlich maximal zwei Aufgaben am Ende:) selbst ein (kleines) Python-Programm oder eine Funktion schreiben können, das ein vorgegebenes Problem löst, und dabei algorithmische Denkfähigkeit demonstrieren (etwa Ausgabe aller Quadratzahlen von $1^2$ bis $n^2$ für eine am Programmanfang definierte Variable ''n''). </hidden> ====== Biber-Wettbewerb ====== * [[lehrkraefte:snr:informatik:glf23:biber-wettbewerb|Biber-Wettbewerb]] lehrkraefte/snr/informatik/glf23.txt Last modified: 2024/05/09 08:08by Olaf Schnürer