Freifach Programmieren, Einstieg
Lerneinheiten
- Beispiel für ein Dialog-Fenster: 15-dialog.zip
Theorie / Dokumentation
Programm
- alias, ssh, scp, ~/.ssh/config, ssh-keys, «git-bash here»
- upload script
- Hello World:
- JS auf der Konsole
- HTML
- JS inline
- JS in separater Datei
- CSS
- Variablen in JS: global, var und let.
- JS mit nur einer oder ohne globale Variablen
- Manipulation von HTML-Elementen
- Event-Loop im Browser, DOM
Übersicht
Wir werden JavaScript im Browser erlernen. Dazu gehören auch grundlegende Kenntnisse in HTML und CSS.
Die Vorteile sind:
- Ein Browser und ein Text-Editor sind auf fast allen Computern standardmässig vorhanden und installiert.
- Die Programme funktionieren auf praktisch allen Geräten, die Webseiten anzeigen können. Und zwar ohne Installation.
- Heutige Browser haben sehr gute und hilfreiche «Developper Tools» integriert, die einem das Programmiererleben vereinfachen.
- Sie lernen en passant, wie moderne Webseiten funktionieren und können das nutzen, um mit Webseiten zu interagieren (Stichworte UserScripts, TamperMonkey).
- Es gibt sehr viele Libraries für fast alles.
Die Nachteile sind:
- JavaScript hat nicht den besten Ruf als Programmiersprache und hat einige Quirks. Es hat sich aber viel getan und es wird noch vieles tun.
- Interaktion vom System mit JavaScript im Browser ist sehr limitiert, z.B. wenn Dateien gelesen oder geschrieben werden sollen. Es gibt mit NodeJS aber auch die Möglichkeit, JavaScript ohne Browser auszuführen.
Vermittelte Grundlagen
Folgende grundlegenden und von der Programmiersprache unabhängige Konzepte sollen vertieft und gefestigt, bzw. erlernt werden:
- Wiederholungen (for und while)
- Selektion und bool'sche Ausdrücke (if, &&, ||, !)
- Funktionen, Gültigkeitsbereich von Variablen (scope).
- Strings vs. Zahlen
- Arrays und Objects (Hashmaps, Dictionaries), JSON
- Events, Konzepte asynchroner Programmierung.
- Verwendung der Object.method() Notation.
- Evtl. Closures und «First class functions».
Beispiele
- Ein kleiner Rechentrainer: https://bloechligair.ch/rechnen/
- Vorlage, um Wordle zu Programmieren: https://ofi.tech-lab.ch/2022/teach/d0571f1e/
- Einstiegsbeispiele (und einige komplexere): https://fginfo.ksbg.ch/~ivo/js/