<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://wiki.bzz.ch/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://wiki.bzz.ch/feed.php">
        <title>BZZ - Modulwiki - modul:m323:learningunits:lu07:aufgaben</title>
        <description></description>
        <link>https://wiki.bzz.ch/</link>
        <image rdf:resource="https://wiki.bzz.ch/_media/wiki/logo.png" />
       <dc:date>2026-09-09T13:24:38+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/m323/learningunits/lu07/aufgaben/profiling?rev=1788954840&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/m323/learningunits/lu07/aufgaben/performance?rev=1788954823&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/m323/learningunits/lu07/aufgaben/characterization?rev=1788954807&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/m323/learningunits/lu07/aufgaben/purerefactoring?rev=1788954790&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/m323/learningunits/lu07/aufgaben/langefunktion?rev=1788954773&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/m323/learningunits/lu07/aufgaben/eigenesprojekt?rev=1788945586&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/m323/learningunits/lu07/aufgaben/review?rev=1788945491&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/m323/learningunits/lu07/aufgaben/datenstruktur?rev=1788945428&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/m323/learningunits/lu07/aufgaben/pipeline?rev=1788945266&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/m323/learningunits/lu07/aufgaben/einordnen?rev=1788945190&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/m323/learningunits/lu07/aufgaben/steckbrief?rev=1788945158&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/m323/learningunits/lu07/aufgaben/smelldetektiv?rev=1788945124&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://wiki.bzz.ch/_media/wiki/logo.png">
        <title>BZZ - Modulwiki</title>
        <link>https://wiki.bzz.ch/</link>
        <url>https://wiki.bzz.ch/_media/wiki/logo.png</url>
    </image>
    <item rdf:about="https://wiki.bzz.ch/modul/m323/learningunits/lu07/aufgaben/profiling?rev=1788954840&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-09T11:54:00+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>LU07.A11 - Den echten Hotspot finden - Repo-Verlinkung korrigiert: nodisp im Footer statt Link im Text</title>
        <link>https://wiki.bzz.ch/modul/m323/learningunits/lu07/aufgaben/profiling?rev=1788954840&amp;do=diff</link>
        <description>LU07.A11 - Den echten Hotspot finden

Tippen Sie zuerst, welche Funktion die Zeit frisst. Messen Sie danach mit cProfile - und vergleichen Sie mit Ihrer Vermutung.

Ausgangslage


GESPERRT = [f&quot;user{i}&quot; for i in range(5000)]


def normalisieren(name):
    return name.strip().lower()


def ist_gesperrt(name):
    return name in GESPERRT


def pruefen(namen):
    return [n for n in namen if ist_gesperrt(normalisieren(n))]</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/m323/learningunits/lu07/aufgaben/performance?rev=1788954823&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-09T11:53:43+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>LU07.A08 - Vorgegebene Massnahmen umsetzen - Repo-Verlinkung korrigiert: nodisp im Footer statt Link im Text</title>
        <link>https://wiki.bzz.ch/modul/m323/learningunits/lu07/aufgaben/performance?rev=1788954823&amp;do=diff</link>
        <description>LU07.A08 - Vorgegebene Massnahmen umsetzen

Setzen Sie vier vorgegebene Performance-Massnahmen um und belegen Sie jede mit einer Messung vorher und nachher.

Die vier Massnahmen
 Nr.  Funktion  Vorgegebene Massnahme  1  gesperrte_anfragen  geeignetere Datenstruktur wählen</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/m323/learningunits/lu07/aufgaben/characterization?rev=1788954807&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-09T11:53:27+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>LU07.A07 - Sicherheitsnetz zuerst - Repo-Verlinkung korrigiert: nodisp im Footer statt Link im Text</title>
        <link>https://wiki.bzz.ch/modul/m323/learningunits/lu07/aufgaben/characterization?rev=1788954807&amp;do=diff</link>
        <description>LU07.A07 - Sicherheitsnetz zuerst

Schreiben Sie Characterization Tests für eine Funktion, deren Verhalten niemand mehr kennt - und refactoren Sie sie erst danach.

Ausgangslage

Diese Funktion läuft seit zwei Jahren im Notensystem. Dokumentation gibt es keine, Tests auch nicht.</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/m323/learningunits/lu07/aufgaben/purerefactoring?rev=1788954790&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-09T11:53:10+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>LU07.A06 - Unpure wird pure - Repo-Verlinkung korrigiert: nodisp im Footer statt Link im Text</title>
        <link>https://wiki.bzz.ch/modul/m323/learningunits/lu07/aufgaben/purerefactoring?rev=1788954790&amp;do=diff</link>
        <description>LU07.A06 - Unpure wird pure

Entfernen Sie den globalen Zustand aus einer kleinen Lagerverwaltung und trennen Sie Berechnung von Ein- und Ausgabe.

Ausgangslage


lager = {}
protokoll = []


def einlagern(artikel, menge):
    global lager
    if artikel in lager:
        lager[artikel] += menge
    else:
        lager[artikel] = menge
    protokoll.append(f&quot;+{menge} {artikel}&quot;)
    print(f&quot;{artikel}: {lager[artikel]}&quot;)


def entnehmen(artikel, menge):
    global lager
    if lager.get(artikel, 0…</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/m323/learningunits/lu07/aufgaben/langefunktion?rev=1788954773&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-09T11:52:53+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>LU07.A04 - Lange Funktion zerlegen - Repo-Verlinkung korrigiert: nodisp im Footer statt Link im Text</title>
        <link>https://wiki.bzz.ch/modul/m323/learningunits/lu07/aufgaben/langefunktion?rev=1788954773&amp;do=diff</link>
        <description>LU07.A04 - Lange Funktion zerlegen

Zerlegen Sie die Funktion bericht in benannte Teilfunktionen. Die Ausgabe muss zeichengenau dieselbe bleiben.

Ausgangslage


BESTELLUNGEN = [
    {&quot;kunde&quot;: &quot;  Meier &quot;, &quot;artikel&quot;: &quot;Maus&quot;,     &quot;menge&quot;: 3, &quot;preis&quot;: 25.0,   &quot;status&quot;: &quot;offen&quot;},
    {&quot;kunde&quot;: &quot;keller&quot;,   &quot;artikel&quot;: &quot;Laptop&quot;,   &quot;menge&quot;: 1, &quot;preis&quot;: 1200.0, &quot;status&quot;: &quot;bezahlt&quot;},
    {&quot;kunde&quot;: &quot;MEIER&quot;,    &quot;artikel&quot;: &quot;Tastatur&quot;, &quot;menge&quot;: 2, &quot;preis&quot;: 80.0,   &quot;status&quot;: &quot;bezahlt&quot;},
    {&quot;kunde&quot;: &quot;Suter&quot;, …</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/m323/learningunits/lu07/aufgaben/eigenesprojekt?rev=1788945586&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-09T09:19:46+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>LU07.A12 - Refactoring im eigenen Projekt - LU07.A12 - Refactoring im eigenen Flask-Projekt (neu, Portfolio-Brücke)</title>
        <link>https://wiki.bzz.ch/modul/m323/learningunits/lu07/aufgaben/eigenesprojekt?rev=1788945586&amp;do=diff</link>
        <description>LU07.A12 - Refactoring im eigenen Projekt

Refactoren Sie eine echte Stelle in Ihrer Flask-Applikation und sichern Sie dabei das Material, das Sie im Portfolio für D1I und D1A brauchen.

Detaillierte Aufgabenstellung

Teil 1: Refactoring (D1I)

	*  Suchen Sie in Ihrem Projekt die</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/m323/learningunits/lu07/aufgaben/review?rev=1788945491&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-09T09:18:11+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>LU07.A10 - Refactoring-Review - LU07.A10 - Refactoring-Review (neu, D1A)</title>
        <link>https://wiki.bzz.ch/modul/m323/learningunits/lu07/aufgaben/review?rev=1788945491&amp;do=diff</link>
        <description>LU07.A10 - Refactoring-Review

Sechs Kolleginnen und Kollegen behaupten, ein Refactoring gemacht zu haben. Prüfen Sie: Stimmt das? Bei welchen hat sich das Verhalten heimlich geändert?

Detaillierte Aufgabenstellung

Beurteilen Sie jedes Paar. Notieren Sie:</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/m323/learningunits/lu07/aufgaben/datenstruktur?rev=1788945428&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-09T09:17:08+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>LU07.A09 - Datenstruktur begründet auswählen - LU07.A09 - Datenstruktur begründet auswählen (neu, D1A)</title>
        <link>https://wiki.bzz.ch/modul/m323/learningunits/lu07/aufgaben/datenstruktur?rev=1788945428&amp;do=diff</link>
        <description>LU07.A09 - Datenstruktur begründet auswählen

Lösen Sie dieselbe Aufgabe mit drei Datenstrukturen, messen Sie alle drei und sprechen Sie eine begründete Empfehlung aus - inklusive der Fälle, in denen Ihre Empfehlung falsch wäre.

Die Aufgabe

Eine Bibliothek führt eine Sperrliste. Zu jeder Ausleihe muss geprüft werden, ob das Konto gesperrt ist; bei gesperrten Konten wird zusätzlich der Sperrgrund angezeigt.</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/m323/learningunits/lu07/aufgaben/pipeline?rev=1788945266&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-09T09:14:26+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>LU07.A05 - Schleife zur Pipeline - LU07.A05 - Schleife zur Pipeline (neu)</title>
        <link>https://wiki.bzz.ch/modul/m323/learningunits/lu07/aufgaben/pipeline?rev=1788945266&amp;do=diff</link>
        <description>LU07.A05 - Schleife zur Pipeline

Bauen Sie fünf Schleifen deklarativ um - oder begründen Sie, warum die Schleife bleiben soll. Eine der fünf ist eine Falle.

Ausgangslage


eintraege = [
    {&quot;name&quot;: &quot;meier&quot;,  &quot;punkte&quot;: 42, &quot;aktiv&quot;: True},
    {&quot;name&quot;: &quot;keller&quot;, &quot;punkte&quot;: 17, &quot;aktiv&quot;: False},
    {&quot;name&quot;: &quot;suter&quot;,  &quot;punkte&quot;: 88, &quot;aktiv&quot;: True},
    {&quot;name&quot;: &quot;wyss&quot;,   &quot;punkte&quot;: 55, &quot;aktiv&quot;: True},
]</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/m323/learningunits/lu07/aufgaben/einordnen?rev=1788945190&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-09T09:13:10+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>LU07.A03 - Refactoring oder nicht? - LU07.A03 - Refactoring oder nicht? (neu)</title>
        <link>https://wiki.bzz.ch/modul/m323/learningunits/lu07/aufgaben/einordnen?rev=1788945190&amp;do=diff</link>
        <description>LU07.A03 - Refactoring oder nicht?

Ordnen Sie acht Änderungen ein: Refactoring, Bugfix, neues Feature, Optimierung oder Rewrite. Begründen Sie jede Einordnung in einem Satz.

Detaillierte Aufgabenstellung

Die entscheidende Frage bei jeder Zeile lautet:</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/m323/learningunits/lu07/aufgaben/steckbrief?rev=1788945158&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-09T09:12:38+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>LU07.A02 - Technik-Steckbrief - LU07.A02 - Technik-Steckbrief (neu, Portfolio-Vorbereitung D1B)</title>
        <link>https://wiki.bzz.ch/modul/m323/learningunits/lu07/aufgaben/steckbrief?rev=1788945158&amp;do=diff</link>
        <description>LU07.A02 - Technik-Steckbrief

Erstellen Sie einen Steckbrief mit drei Refactoring-Techniken und zwei Massnahmen zur Leistungsverbesserung, je mit Zweck und einem Vorher/Nachher-Beispiel.

Detaillierte Aufgabenstellung

Diese Aufgabe ist die direkte Vorbereitung auf das Pflicht-Artefakt</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/m323/learningunits/lu07/aufgaben/smelldetektiv?rev=1788945124&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-09T09:12:04+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>LU07.A01 - Smell-Detektiv - LU07.A01 - Smell-Detektiv (neu)</title>
        <link>https://wiki.bzz.ch/modul/m323/learningunits/lu07/aufgaben/smelldetektiv?rev=1788945124&amp;do=diff</link>
        <description>LU07.A01 - Smell-Detektiv

Benennen Sie in sechs Codeausschnitten je den Code Smell und die passende Refactoring-Technik. Sie schreiben in dieser Aufgabe keinen Code.

Detaillierte Aufgabenstellung

Notieren Sie für jeden Ausschnitt:

	*  Smell: Wie heisst er?</description>
    </item>
</rdf:RDF>
