Selbststudium: Aufgaben 0–10

Vorbereitungsübungen aus Selbstudium.ipynb: Algorithmen, Sortierung und kritisches Refactoring.

Aufgaben 0 bis 8 im Überblick Jupyter Notebook

0 & 1: Hello World & Kommentare

Textausgabe und Steuerung des Sprachmodells über Intent-Kommentare.

2: Variablen & Summe

Summation zweier Variablen summand1 + summand2.

3 & 4: Gerade Zahlen filtern

Funktion summe_von_geraden_zahlen(arr) mit Modulo-Filter.

5: Test-Generierung

Generierung von begleitenden Assertions und Testfällen.

6: For- & While-Schleifen

Iteratives Aufsummieren mit Zwischenstands-Logging.

7: Semantische Benennung

Zufallszahlen-Generator: Präziser Funktionsname führt zu saubererem Code.

8: Bubblesort & Insertionsort

Sortierung eines Arrays mit Ausgabe aller Zwischenzustände zur Verifikation der Konvergenz.

Aufgabe 9: Fibonacci-Refactoring Code-Audit
Original-Vorlage (Kryptisch, O(N) RAM)
task9_original.py
def x(n):
    a = [1, 1]
    for _ in range(n - 1):
        a += [a[-1] + a[-2]]
    return a[n]

# Schwächen:
# 1. Name 'x' verrät Intent nicht
# 2. Crasht bei n=0 (IndexError)
# 3. Allokiert Liste im RAM (O(N))
Refactored (O(1) Speicher, Type Hints)
task9_refactored.py
def fibonacci(n: int) -> int:
    if n < 0:
        raise ValueError("n muss >= 0 sein")
    if n in (0, 1):
        return n
        
    a, b = 0, 1
    for _ in range(n - 1):
        a, b = b, a + b
    return b
= 55
Aufgabe 10: Bugfixing in Code-Schnipseln Fehler-Korrektur

Bug 1: SyntaxError (Zuweisung im if)

def check_if_even(number):
-   if number % 2 = 0:  # SyntaxError: '=' statt '=='
+   if number % 2 == 0: # Korrekter Vergleichsoperator
        return "Even"
    else:
        return "Odd"

Bug 2: TypeError (int + str)

def add_numbers(a, b):
    return a + b

x = 5
- y = "2" # TypeError: int + str
+ y = 2   # Integer-Wert