1.1.3 Geeignete Datenstrukturen zur Implementierung von Programmen auswählen und einsetzen
Unterrichtsmaterial zum Lernziel: Die Maturandinnen und Maturanden können geeignete Datenstrukturen zur Implementierung von Programmen auswählen und einsetzen.
Deklarative und funktionale Programmierung mit Python, Elm, Racket und Prolog
Umfassendes Lehrmaterial zur deklarativen Programmierung mit Schwerpunkt auf funktionaler Programmierung in Python, Elm und Racket sowie logischer Programmierung. Das Material deckt Programmierkonzepte, Datenstrukturen, Algorithmen und Webentwicklung ab.
Dijkstra-Algorithmus und Dictionaries in Python
Eine vertiefende Programmier-Challenge, bei der Schülerinnen und Schüler den Dijkstra-Algorithmus und die Verwendung von Python-Dictionaries zur effizienten Repräsentation von Graphen schrittweise implementieren.
Implementierung von Schlangen in Python
Dieses Material erklärt die objektorientierte Implementierung des abstrakten Datentyps Schlange (Queue) in Python anhand einer Klasse. Anhand eines Python-Protokolls wird die Nutzung der Schlangenoperationen demonstriert und mit einer praktischen Aufgabe zum Testen ergänzt.
Einführung in Python-Listen
Dieses Jupyter Notebook vermittelt die Grundlagen zur Arbeit mit Listen in Python anhand von praxisnahen Codebeispielen. Es behandelt das Erstellen von Listen, den Zugriff über Indizes, Slicing sowie das Hinzufügen, Löschen und Verknüpfen von Elementen.
Listen und Listenfunktionen in Python
Dieses Unterrichtsmaterial erklärt anhand von Codebeispielen, wie Listen in Python mit `for`-Schleifen gefüllt, über Indizes bearbeitet und mit `len` ausgewertet werden. Es vermittelt grundlegende Programmiertechniken im Umgang mit Datenstrukturen.
Recursive Segment Trees and Lazy Propagation
Dieses Material erklärt die Implementierung von rekursiven Segmentbäumen und Lazy Propagation in C++. Es beschreibt mathematische Grundlagen wie Assoziativität und Distributivität sowie praktische Code-Beispiele für Bereichsabfragen und Updates.
Fenwick Trees (Binary Indexed Trees) in C++
Dieses fortgeschrittene Dokument behandelt die Theorie und Implementierung von Fenwick-Bäumen (Binary Indexed Trees) in C++. Es werden verschiedene Aspekte wie dynamische Prefix-Summen, multidimensionale Varianten, Bereichsabfragen sowie Koordinatenkompression detailliert erläutert.
C++ Standardbibliothek für die Schweizer Olympiade in Informatik (SOI)
Dieses Skript bietet eine Einführung in die Nutzung der C++ Standardbibliothek für fortgeschrittene Programmieraufgaben, speziell im Kontext der Schweizer Olympiade in Informatik (SOI). Es behandelt wichtige Container wie Vector, Map und Set, fortgeschrittene Datenstrukturen, Iteratoren, Standardalgorithmen sowie nützliche Debugging-Techniken.
The Complete Course of the Raku Programming Language
Ein umfassender, praxisnaher Programmierkurs für die Sprache Raku, unterteilt in fünf Module sowie Tests und Vertiefungsübungen. Er deckt Grundlagen, fortgeschrittene Konzepte, objektorientierte Programmierung, Grammatiken und Webdienste ab.
Lineare Listen in der Informatik
Das Material erklärt das Konzept linearer Listen als verkettete Datenstrukturen. Es definiert die Eigenschaften von Listenelementen wie Listenanfang und -ende und beschreibt den dynamischen Charakter dieses Datentyps.
Sammlung von Unterrichtsmaterialien zu fortgeschrittenen Datenstrukturen, Algorithmen und Java-Programmierung
Eine umfangreiche Sammlung von Materialien, Aufgaben und Programmierprojekten in Java und JavaScript für den Informatikunterricht. Sie deckt Themen wie Datenstrukturen (Listen, Bäume, Graphen), Sortieralgorithmen, objektorientierte Entwurfsmuster und fortgeschrittene Programmierkonzepte ab.
Brief Tour of the Python Standard Library - Part II
Diese offizielle Python-Dokumentation stellt fortgeschrittene Module der Standardbibliothek vor, darunter Formatierung, Templating, Binärdatenverarbeitung, Multithreading, Logging, schwache Referenzen, alternative Datenstrukturen und Dezimalarithmetik.
Dictionaries in Python
Dieses Unterrichtsmaterial führt in die Datenstruktur der Dictionaries (assoziative Arrays) in Python ein. Es erklärt die Syntax, Erstellungsmethoden sowie grundlegende Operationen wie Zugriff, Hinzufügen, Löschen und Iterieren über Schlüssel und Werte.
Python Sets
Dieses Lehrmaterial erklärt die Datenstruktur der Mengen (Sets) in Python. Es behandelt die Definition von Mengen, grundlegende Operationen mit Elementen sowie mathematische Mengenoperationen wie Schnittmenge und Vereinigung.
Zweidimensionale Listen und Arrays in Python
Dieses Lehrmaterial erklärt detailliert die Erstellung, Verarbeitung und Einlesung von zweidimensionalen Listen (Matrizen) in Python. Es behandelt typische Stolperfallen wie Referenzkopien, den Einsatz von geschachtelten Schleifen sowie List Comprehensions (Generatoren).
Lineare Datentypen: Die Liste
Dieses Leitprogramm führt Schülerinnen und Schüler in die Konzepte von Arrays und Listen ein. Sie untersuchen die Speicherdarstellung, lernen den Umgang mit Programmtext für Listen und erstellen eine eigene Kontaktdatenverwaltung in Java.
Binäre Suchbäume
Dieses Leitprogramm bietet eine strukturierte Einführung in das Thema der Datenstrukturen mit speziellem Fokus auf binäre Suchbäume. Es richtet sich an Lernende mit Vorkenntnissen in einer Programmiersprache, verketteten Listen sowie Rekursion.
Bäume in der Informatik
Dieses Leitprogramm bietet eine fundierte Einführung in die Datenstruktur der Bäume sowie verwandte grundlegende Datenstrukturen und deren Anwendung. Es behandelt zudem das Prinzip der Rekursion und erfordert Vorkenntnisse in Java.
Advent of Code: Marble Mania
Eine Programmieraufgabe aus dem Advent of Code, bei der ein komplexes Regelwerk für ein Murmelspiel in einem Kreis simuliert und effizient gelöst werden muss. Dabei wird insbesondere der Umgang mit Datenstrukturen und deren Performance bei grossen Datenmengen geschult.
Einführung in Arrays (JavaScript)
Dieses Lehrmittel erklärt das Konzept von Arrays als zusammengesetzte Datentypen anhand einer anschaulichen Metapher. Es zeigt grundlegende Operationen, Syntax und die Arbeit mit Arrays in JavaScript.
Mehrdimensionale Arrays in Java
Dieses kurze Dokument erklärt die Syntax und Deklaration von mehrdimensionalen Arrays in Java anhand prägnanter Code-Beispiele. Es wird gezeigt, wie innere und äussere Array-Typen definiert und Speicherbereiche alloziert werden.
Einstieg - Warteschlangen und Druckerwarteschlange
Das Material führt anhand des Beispiels einer Druckerwarteschlange und eines Python-Dialogs in das Prinzip von Warteschlangen ein. Anhand einer konkreten Aufgabe sollen die Lernenden die Funktionsweise der verwendeten Liste als Puffer analysieren.
Fachkonzept Stapel (Stack)
Dieses Material erklärt das grundlegende Konzept eines Stapels (Stack) als Datenstruktur anhand alltäglicher Beispiele und führt den abstrakten Datentyp mit typischen Operationen wie Push, Pop und Top ein. Es erläutert das LIFO-Prinzip (Last In, First Out) für den Informatikunterricht.
Der Stapel als Datenstruktur
Das Material führt in das Konzept des Stapels (Stack) als Datenstruktur ein und zeigt, wie dieser mithilfe von Listen und objektorientierter Programmierung zur Lösung von Problemen implementiert und genutzt werden kann.
Persistent Segment Trees und Datenstrukturen
Der Artikel erklärt das Konzept persistenter Datenstrukturen am Beispiel von Segment Trees und zeigt, wie effizient Versionen durch Zeigerstrukturen erhalten bleiben können. Es wird beschrieben, wie Änderungen nur O(log n) Knoten betreffen, wodurch das Kopieren des gesamten Baumes vermieden wird.
Generic datastructure traversals with roles and introspection in Raku
Der Artikel erklärt, wie man generische Datenstruktur-Traversierungen (bekannt als 'Scrap Your Boilerplate') in der Programmiersprache Raku implementiert. Anhand von rollenbasierten Datentypen und Metaprogrammierung (Introspektion) wird gezeigt, wie rekursive Bäume und ASTs ohne redundanten Code durchsucht und modifiziert werden können.
Raku Advanced: Introspecting Containers
Dieses fortgeschrittene Tutorial erklärt das Konzept der Introspektion in Raku mithilfe sogenannter Pseudo-Methoden wie WHAT, VAR, WHO und HOW. Es zeigt auf, wie Variablen und Container in ihrer Typisierung untersucht werden können, und beinhaltet zugehörige Übungen sowie ein Quiz.
Bäume als grundlegende Datenstrukturen
Der Text führt in das Konzept von Bäumen als fundamentale Datenstrukturen der Informatik ein. Es werden Beispiele wie das DOM von Webseiten, die formale Terminologie sowie spezielle Formen wie Binärbäume vorgestellt.
Wortvorkommen zählen
Eine Programmieraufgabe, bei der ein Text eingelesen und für jedes Wort die Anzahl seiner vorherigen Vorkommen bestimmt werden soll. Die Lösung erfordert den Einsatz von grundlegenden Programmierkonzepten und Datenstrukturen.
Turtle Invaders in Python: Modularer Code, Listen und Zufall
Dieses Unterrichtsmaterial zeigt anhand eines kleinen Python-Spiels ('Turtle Invaders'), wie Code auf mehrere Dateien aufgeteilt, Zeitintervalle gesteuert, Listen für Objekte verwendet und Zufallszahlen eingesetzt werden. Es verbindet praktische Programmierkonzepte mit spielerischer Umsetzung.
Multi-dimensional arrays in Java
Das Material erklärt kurz und prägnant mehrdimensionale Arrays in Java, wobei zwischen rechteckigen und ungleichmässigen (jagged) Arrays unterschieden wird. Anhand von Codebeispielen wird gezeigt, wie solche Arrays deklariert, initialisiert und verändert werden.
Course of Raku: Sets, bags, and mixes
Der Text erklärt fortgeschrittene Datentypen in der Programmiersprache Raku, insbesondere Mengen (Sets), Bags und Mixes. Er zeigt anhand von Code-Beispielen, wie diese speziellen Container erstellt und abgefragt werden.
Course of Raku: Advanced Types
Dieses Material bietet eine fortgeschrittene Übersicht über integrierte Datentypen in der Programmiersprache Raku, darunter native und dimensionierte Typen, Strings, Datum und Uhrzeit sowie Mengenstrukturen.
Expression Trees in Programming
Ein kurzer Einstieg in den Aufbau und die Umwandlung von Ausdrucksbäumen (Expression Trees), die weit über einfache Arithmetik hinausgehen. Lernende üben das Erstellen von Bäumen aus Ausdrücken und umgekehrt.
Course of Raku: Lists and Positional Data Types
Das Material erklärt grundlegende Konzepte von unveränderlichen Listen und Arrays in der Programmiersprache Raku. Es zeigt die Indizierung und Zuweisung von Listenelementen anhand kurzer Code-Beispiele.