Nickname ändern

1.1.2 Programmierkonzepte und -paradigmen (z.B. Objektorientierung, Modularisierung, Rekursion) nennen, unterscheiden, vergleichen und anwenden

Unterrichtsmaterial zum Lernziel: Die Maturandinnen und Maturanden können Programmierkonzepte und -paradigmen (z.B. Objektorientierung, Modularisierung, Rekursion) nennen, unterscheiden, vergleichen und anwenden.

1.1 Programmierkonzepte · 1. Algorithmen und Programmierung

Wie wird sortiert?
agil ▲0/3algorithmen ▲0/3app-entwicklung ▲0/3assembler ▲0/3augmented-reality ▲0/3

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.

95AI-Score

Sokoban programmieren in Python

Eine umfassende Anleitung und Projektdokumentation zur Entwicklung des Klassikers Sokoban in Python unter Verwendung von objektorientierten Konzepten, Dateiverarbeitung und der Bibliothek Pygame.

90AI-Score

Objektorientierte Programmierung (OOP) Grundprinzipien in Python

Dieses Unterrichtsmaterial führt anhand eines durchgehenden Geometrie-Projekts in Python in die vier Grundprinzipien der objektorientierten Programmierung ein: Abstraktion, Vererbung, Datenkapselung und Polymorphie. Es enthält Definitionen, Analogien, Programmieraufgaben und vollständige Code-Lösungen.

90AI-Score

Datenkapselung und Sichtbarkeit in Python

Dieses Unterrichtsmaterial führt in das Konzept der Datenkapselung und objektorientierten Sichtbarkeiten (public, protected, private) in Python ein. Anhand praktischer Code-Beispiele mit Klassen wie Sheep und Person lernen die Schülerinnen und Schüler den Einsatz von Gettern, Settern und Namenskonventionen.

90AI-Score

Objects-First with Java (BlueJ Edition)

Dieses Lehrbuch vermittelt die objektorientierte Programmierung in Java anhand von praxisnahen Projekten und der Entwicklungsumgebung BlueJ. Es verfolgt einen reinen 'Objects-First'-Ansatz und enthält integrierte Übungen zum direkten Programmieren.

90AI-Score

Umwandlung iterativer Algorithmen in rekursive Algorithmen

Dieses Unterrichtsmaterial behandelt detailliert die Umwandlung von iterativen Algorithmen in rekursive Algorithmen am Beispiel der Potenzfunktion. Es enthält Programmierbeispiele in Python, Analysen von Ablaufprotokollen sowie praktische Programmieraufgaben zur Simulation von Programmausführungen.

90AI-Score

Übungen zur Rekursion und Programmentwicklung in Python

Eine Sammlung von Programmieraufgaben und Übungen, bei denen rekursive Algorithmen in Python analysiert, angewendet, schrittweise entwickelt und getestet werden. Die Lernenden nutzen problemreduzierende Ansätze und visualisierende Hilfsmittel wie Aufrufbäume, um rekursive Funktionen für Listenoperationen zu verstehen und zu programmieren.

90AI-Score

Arbitrarily Large Data and Lists in Programming

Dieses Lehrmaterial behandelt die Verarbeitung von Daten beliebiger Größe mithilfe von Listen und selbstbezüglichen Datenstrukturen. Anhand von Beispielen wird das Entwurfsrezept für rekursive Programme (Templates, Basisfälle, natürliche Rekursion) in einer funktionalen Programmiersprache eingeführt.

90AI-Score

GameGridKara 2.0 – Java lernen mit Kara

Dieses Unterrichtsmaterial führt spielerisch und anschaulich in die Programmierung mit Java ein, indem der Marienkäfer Kara in einer grafischen Mini-Umgebung gesteuert wird. Es enthält strukturierte Handouts, Programmierübungen sowie vollständige Lösungen für mehrere Lektionen.

88AI-Score

Einführung in die Objektorientierte Programmierung mit Python und Turtle

Dieses Unterrichtsmaterial führt in die Grundlagen der objektorientierten Programmierung (OOP) in Python ein. Anhand von Beispielen wie einer Turtle, Schafen und rationalen Zahlen werden Klassen, Objekte, Konstruktoren, Vererbung und Datenkapselung praxisnah vermittelt.

85AI-Score

Prüfung zu Python-Grundlagen und Objektorientierter Programmierung

Dieses Dokument beschreibt eine zweiteilige Prüfung zu den Grundlagen von Python, einschliesslich Kontrollstrukturen, Datentypen und Funktionen, sowie zu grundlegenden Konzepten der objektorientierten Programmierung (OOP).

85AI-Score

Objektorientierte Programmierung: Vererbung und Polymorphie in Python

Dieses Unterrichtsmaterial führt in die Konzepte der objektorientierten Programmierung (OOP) wie Vererbung, Überschreiben von Methoden und Polymorphie an konkreten Beispielen in Python ein. Es enthält kurze Erklärungen, Code-Beispiele und eine praktische Programmieraufgabe inklusive Lösung.

85AI-Score

Eigene Klasse für rationale Zahlen in Python programmieren

Die Lernenden schreiben eine eigene Python-Klasse für rationale Zahlen (Brüche), um das Konzept der objektorientierten Programmierung und das Erstellen von Methoden und Konstruktoren zu üben. Dabei implementieren sie mathematische Operationen und optional auch Operatorüberladungen.

85AI-Score

Einführung in die objektorientierte Programmierung mit Python

Dieses Unterrichtsmaterial führt anhand eines einfachen Beispiels (Klasse Sheep) in die Grundlagen der objektorientierten Programmierung mit Python ein. Es behandelt das Erstellen von Klassen, das Instanziieren von Objekten sowie die Definition und Nutzung von Attributen und Methoden.

85AI-Score

Einführung in die Objektorientierung mit Python und Turtle

Das Unterrichtsmaterial führt in die grundlegenden Konzepte der objektorientierten Programmierung (Klassen, Objekte, Eigenschaften und Methoden) anhand der Programmiersprache Python und der Turtle-Grafik ein. Es beinhaltet Erklärungen zur Abstraktion sowie praktische Aufgaben zum Erzeugen von Objekten und zum Setzen von Eigenschaften.

85AI-Score

Auffrischung und Erweiterung der Python-Kenntnisse

Dieses Kapitel dient der Repetition und Vertiefung grundlegender Python-Kenntnisse sowie der Einführung in die objektorientierte Programmierung. Anhand praktischer Aufgaben werden Daten aus Textdateien eingelesen, analysiert, aufbereitet und dargestellt.

85AI-Score

Implementierung des Amb-Operators in verschiedenen Programmiersprachen

Das Material präsentiert Code-Beispiele und Erklärungen zur Implementierung des nicht-deterministischen Amb-Operators (ambiguous) in verschiedenen Programmiersprachen wie C#, C++, Ada und Pseudocode. Anhand eines Wortketten-Rätsels wird demonstriert, wie Such- und Backtracking-Probleme elegant gelöst werden können.

85AI-Score

15 Puzzle Solver

Dieses Material präsentiert Implementierungen in ARM-Assembler und einer weiteren Programmiersprache zur automatischen Lösung des klassischen 15-Puzzles mittels Suchalgorithmen. Es demonstriert fortgeschrittene Programmierkonzepte und Algorithmik anhand eines konkreten Problembeispiels.

85AI-Score

Advent of Code: Memory Maneuver (Baumstrukturen und Rekursion)

Eine Programmieraufgabe im Rahmen von Advent of Code, bei der ein hierarchischer Baum aus Zahlen eingelesen, repräsentiert und rekursiv ausgewertet werden muss. Das Material eignet sich hervorragend, um fortgeschrittene Programmierkonzepte wie rekursive Datenstrukturen und Baum-Traversierung praktisch anzuwenden.

85AI-Score

Course of Raku: Rekursion

Dieses Unterrichtsmaterial aus einem Raku-Programmierkurs führt in das Konzept der Rekursion als Teil der funktionalen Programmierung ein. Es enthält Erklärungen, Quizzes sowie Programmierübungen zur Funktionsweise und Anwendung rekursiver Unterprogramme.

webseiteprojekt 1.1.2
85AI-Score

Course of Raku: Inheritance

Ein kompakter und verständlicher Lehrmittelabschnitt zur objektorientierten Programmierung mit Fokus auf Vererbung in der Programmiersprache Raku, inklusive Praxisbeispielen und Übungen.

85AI-Score

Type objects and instances in Raku

Das Unterrichtsmaterial erklärt anhand von Beispielen in der Programmiersprache Raku den Unterschied zwischen Typobjekten (Klassennamen) und konkreten Instanzen. Es behandelt die Konzepte von Definition, Zustand und Objekterstellung im Rahmen der objektorientierten Programmierung.

webseiteoop 1.1.2
85AI-Score

Objects, I/O, and exceptions in programming

Dieses Unterrichtsmaterial deckt fortgeschrittene Programmierkonzepte wie objektorientierte Programmierung mit Klassen und Rollen, Ein- und Ausgabeoperationen sowie Fehlerbehandlung ab. Es enthält zahlreiche strukturierte Übungen und Quiz zu Themen wie Vererbung, Dateihandling und externen Programmen.

webseiteoop 1.3.11.1.2
85AI-Score

Course of Raku: Advanced - Modules and Code Organization

Dieses fortgeschrittene Material behandelt die Strukturierung, Organisation und das Teilen von Code in Raku. Es fokussiert sich auf das Schreiben und Importieren von Modulen, Introspection, Paketmanagement und Software-Distribution.

85AI-Score

Implementierung von Graphen in Python

Dieses Unterrichtsmaterial erklärt, wie Graphen mithilfe von Adjazenzmatrizen und Adjazenzlisten repräsentiert werden. Die Konzepte werden praktisch in Python und objektorientiert umgesetzt.

85AI-Score

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.

85AI-Score

Exkurs: Umwandlung rekursiver Algorithmen in iterative Algorithmen

Dieses Unterrichtsmaterial behandelt die Umwandlung von rekursiven in iterative Algorithmen anhand von Beispielen wie der Fakultätsfunktion und der Ackermann-Funktion. Anhand von Python-Code und Aufgaben wird gezeigt, wie Zustände mithilfe von Stapeln simuliert und iterative Alternativen entwickelt werden können.

85AI-Score

Rekursion und Iteration

Dieses Unterrichtsmaterial erklärt die grundlegenden Konzepte von Rekursion und Iteration als Modellierungswerkzeuge für wiederholte Berechnungen. Es zeigt die Vorzüge beider Ansätze auf und thematisiert die systematische Umwandlung zwischen rekursiven und iterativen Algorithmen.

85AI-Score

Exkurs: Grenzen der rekursiven Verarbeitung bei realen Systemen an der Leibniz-Reihe

Das Material behandelt die Annäherung der Kreiszahl Pi mithilfe der Leibniz-Reihe. Anhand von Codebeispielen in Python werden iterative und rekursive Lösungsansätze verglichen und die Grenzen der Rekursionstiefe bei realen Systemen thematisiert.

85AI-Score

Exkurs: Rekursive Berechnungen mit hohem Aufwand

Das Material behandelt rekursive Funktionen in Python anhand des Galtonbretts und der Ackermann-Funktion. Es analysiert die Ineffizienz kaskadenartiger und verschachtelter Rekursionen durch Beobachtung der Funktionsaufrufe und Reduktionsketten.

85AI-Score

Übungen zu rekursiven Algorithmen mit dem RecursionTutor

Dieses Unterrichtsmaterial enthält praktische Programmier- und Analyseaufgaben zur Rekursion anhand konkreter Anwendungsbeispiele wie Zinseszins, Medikamentenabbau und geometrischen Wachstumsprozessen. Lernende nutzen einen interaktiven Tutor zur Visualisierung von Aufrufbäumen, um rekursive Algorithmen zu entwickeln, zu testen und zu verstehen.

85AI-Score

Natürliche Zahlen als rekursive Datenstruktur

Das Unterrichtsmaterial erklärt anhand des Beispiels der Summenbildung, wie natürliche Zahlen als rekursive Datenstruktur aufgefasst und verarbeitet werden können. Es zeigt die Entwicklung und Ausführung rekursiver Algorithmen sowie deren Umsetzung in Python.

85AI-Score

Wege im Galton-Brett

Dieses Unterrichtsmaterial führt anhand des Galton-Bretts in die mathematisch-informatische Modellierung und Untersuchung von Rekursionen ein. Die Lernenden bestimmen Anzahl von Wegen, analysieren Eigenschaften der entsprechenden Funktion und vergleichen verschiedene rekursive Implementierungen.

85AI-Score

Einstieg in geschachtelte Listen anhand einer Hochzeitsgästeliste

Dieses Unterrichtsmaterial führt anhand eines praktischen Beispiels zur Verwaltung einer Gästeliste in Python in die Verarbeitung von Listen und insbesondere geschachtelten Listen ein. Die Lernenden vergleichen iterative und rekursive Ansätze zur Ausgabe von Datenstrukturen und analysieren den dazugehörigen Quelltext.

85AI-Score

Rekursive Algorithmen für selbstähnliche Figuren und Fraktale in Python

Das Unterrichtsmaterial enthält praktische Programmierübungen zu rekursiven Algorithmen und Selbstähnlichkeit. Die Lernenden sollen geometrische Figuren wie das Sierpinski-Dreieck oder den Pythagoras-Baum in Teilprobleme zerlegen, entsprechende Algorithmen entwickeln und diese in Python implementieren.

85AI-Score

Fallstudie - Selbstähnliche Figuren

Dieses Material behandelt die rekursive Problemreduktion am Beispiel von selbstähnlichen Figuren. Lernende entwerfen rekursive Algorithmen und setzen diese mithilfe von Turtlegrafik praktisch um.

85AI-Score

Exkurs: Implementierung von Rekursion und den Türmen von Hanoi in Python

Das Material führt anhand des Konzepts der Rekursion und des Beispiels der 'Türme von Hanoi' in die Implementierung rekursiver Algorithmen in Python ein. Lernende schreiben und testen eigenständig rekursive Programme und untersuchen deren Komplexität.

85AI-Score

Rekursive Problemreduktion am Beispiel der Türme von Hanoi

Dieses Unterrichtsmaterial erklärt das Konzept der rekursiven Problemlösung und der rekursiven Algorithmen anhand des klassischen Beispiels der Türme von Hanoi. Es führt schrittweise von der manuellen Lösung über die Problemreduktion bis hin zur Formulierung eines allgemeinen rekursiven Algorithmus.

85AI-Score

Sierpiński Triangle and Recursion

Dieses Unterrichtsmaterial führt in das Konzept der Rekursion am Beispiel des Sierpiński-Dreiecks ein. Lernende implementieren eine rekursive Funktion, um Fraktale zu zeichnen, und erkunden dabei algorithmische Prinzipien.

85AI-Score

Weihnachtslieder singen mit Raku: Das Metaobject Protocol (MOP) verstehen

Der Artikel erklärt anhand eines spielerischen Beispiels mit Weihnachtsliedern fortgeschrittene Programmierkonzepte in der Programmiersprache Raku. Dabei wird gezeigt, wie Klassen, Rollen und insbesondere das Metaobject Protocol (MOP) sowie Metamethoden zur Laufzeit manipuliert werden können.

85AI-Score

Deklarative APIs in Raku entwerfen

Der Artikel erklärt, wie man in der Programmiersprache Raku elegante und deklarative APIs mithilfe von Blöcken, Signaturen und dynamischen Variablen baut. Anhand eines praktischen Beispiels zur Verzeichnisüberwachung wird gezeigt, wie Bibliotheksautoren boilerplate-armen Code für Endbenutzer ermöglichen.

85AI-Score

Becoming a Time Lord in Raku

Der Artikel beschreibt praxisnah und mit viel Humor, wie man in der Programmiersprache Raku fehlende Zeitzonen-Unterstützung für DateTime-Objekte durch fortgeschrittene Techniken wie Method Wrapping, Mixins (Roles) und Fallbacks nachrüstet.

85AI-Score

Typed Raku, Part 1: Taming State

Der Artikel erklärt anhand eines Schach-Beispiels das strenge Typsystem von Raku, einschliesslich Laufzeit-Typüberprüfungen, Variablentypen, Typsmileys, objektorientierter Datenmodellierung mit Klassen, Enums und Subsets.

85AI-Score

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.

85AI-Score

Divide and Conquer on Ranges and Segment Trees

Der Text erklärt detailliert die theoretischen Grundlagen und die Implementierung von Segmentbäumen (Segment Trees) in C++. Dabei werden Divide-and-Conquer-Algorithmen, Bereichsanfragen (Range Queries) und effiziente Array-Updates behandelt.

85AI-Score

Generative Recursion and Algorithms

Dieses Lehrmaterial behandelt das Konzept der generativen Rekursion im Gegensatz zur strukturellen Rekursion anhand von Beispielen wie Quick-Sort und dem Erstellen von Algorithmen. Es erläutert das Entwurfsrezept für generative Rekursionen inklusive Terminierungsargumenten.

85AI-Score

Interscheded Data, S-Expressions and Trees in Racket

Dieses Lehrmaterial behandelt fortgeschrittene Programmierkonzepte in Racket mit Fokus auf ineinander verschränkte Datenstrukturen (intertwined data), wie z.B. Bäume, Wälder, S-Expressionen und binäre Suchbäume (BSTs). Es zeigt, wie man parallele Funktionen für komplexe Datenstrukturen entwirft und bestehende Implementierungen durch den Einsatz von Abstraktionen wie map oder local vereinfacht.

85AI-Score

Programmierung und Abstraktion in Scheme (How to Design Programs)

Dieses Lehrmaterial behandelt fortgeschrittene Programmierkonzepte wie funktionale Abstraktion, parametrische Datendefinitionen und Funktionen als Werte anhand von Beispielen in einer Scheme-artigen Sprache. Es zeigt, wie man Redundanzen in Code und Datendefinitionen durch das Einführen von Parametern systematisch eliminiert.

85AI-Score

Das Strategy Design Pattern in Perl am Beispiel von SOLID

Der Blogbeitrag erklärt das Strategy-Entwurfsmuster anhand eines Beispiels in Perl und zeigt, wie es im Sinne der SOLID-Prinzipien (insbesondere des Open/Closed-Prinzips) zu sauberem und erweiterbarem Code führt. Anhand von Textformatierungen wird demonstriert, wie bedingte Verzweigungen durch objektorientierte Strategien ersetzt werden.

webseiteoop 1.3.11.1.2
85AI-Score

SOLID Design Principles in Perl

Der Blogbeitrag erklärt die fünf SOLID-Prinzipien der objektorientierten Softwareentwicklung anhand von praktischen Beispielen in der Programmiersprache Perl. Für jedes Prinzip wird eine Verletzung des Konzepts gezeigt und anschliessend durch Refactoring eine saubere Lösung demonstriert.

85AI-Score