Header image for Test

Test

Prompt

Du wirst in diesem Test auf logisches Denken, Problemlösung, Programmierung, Erklärqualität, kritische Analyse und Befolgung komplexer Anweisungen geprüft. Allgemeine Regeln: 1. Stelle keine Rückfragen. 2. Triff bei fehlenden Informationen sinnvolle Annahmen und kennzeichne sie. 3. Erfinde keine Fakten, Quellen oder Ergebnisse. 4. Trenne klar zwischen Fakten, Annahmen und Schlussfolgerungen. 5. Prüfe deine Ergebnisse auf logische und technische Fehler. 6. Vermeide unnötige Wiederholungen und allgemeine Floskeln. 7. Befolge die vorgegebene Struktur exakt. 8. Bevorzuge korrekte und nachvollziehbare Antworten gegenüber selbstbewusst klingenden Antworten. # Aufgabe 1: Logisches Denken Ein Unternehmen hat drei Server A, B und C. - Server A fällt durchschnittlich einmal alle 200 Stunden aus. - Server B fällt durchschnittlich einmal alle 500 Stunden aus. - Server C fällt durchschnittlich einmal alle 1.000 Stunden aus. - Die Ausfälle seien unabhängig voneinander. - Das System funktioniert, solange mindestens zwei der drei Server verfügbar sind. - Eine Reparatur dauert bei jedem Server durchschnittlich 10 Stunden. Analysiere näherungsweise: - die Verfügbarkeit jedes einzelnen Servers - die Wahrscheinlichkeit, dass das Gesamtsystem zu einem zufälligen Zeitpunkt funktioniert - welche Annahmen in dieser Modellierung problematisch sein könnten - welche zusätzliche Information für eine realistischere Analyse nötig wäre Zeige den Rechenweg. # Aufgabe 2: Algorithmisches Denken Gegeben ist folgende Zahlenfolge: 2, 6, 12, 20, 30, 42, 56 Beantworte: 1. Welche Regel liegt der Folge zugrunde? 2. Wie lauten die nächsten drei Werte? 3. Gib mindestens eine alternative Regel an, die ebenfalls zu allen gegebenen Werten passt. 4. Erkläre, weshalb aus endlich vielen Folgengliedern normalerweise keine eindeutig bestimmte Fortsetzung folgt. # Aufgabe 3: Programmierung Implementiere in Python 3.12 eine Funktion: find_shortest_path(graph, start, target) Der Graph wird als Dictionary übergeben. Jeder Knoten verweist auf eine Liste von Tupeln: (neighbor, weight) Beispiel: graph = { "A": [("B", 4), ("C", 2)], "B": [("C", 1), ("D", 5)], "C": [("D", 8), ("E", 10)], "D": [("E", 2)], "E": [] } Anforderungen: - Verwende Dijkstra. - Nutze keine externen Bibliotheken. - Verwende Type Hints. - Behandle ungültige Eingaben. - Lehne negative Kantengewichte mit einer verständlichen Fehlermeldung ab. - Gib sowohl die kürzeste Distanz als auch den vollständigen Pfad zurück. - Gib für unerreichbare Ziele eine sinnvolle Rückgabe zurück. - Schreibe mindestens sechs Tests mit unittest. - Erkläre Laufzeit und Speicherkomplexität. - Prüfe den Code gedanklich auf Grenzfälle. Der Code muss direkt kopierbar und ausführbar sein. # Aufgabe 4: Fehleranalyse Analysiere folgenden Python-Code: def average(values): total = 0 for i in range(len(values) + 1): total += values[i] return total / len(values) Nenne: - alle erkennbaren Fehler - problematische Grenzfälle - eine korrigierte Version - eine robustere Version mit Type Hints und nachvollziehbarer Fehlerbehandlung - passende Tests # Aufgabe 5: Kritische Analyse Bewerte folgende Aussage: „Je mehr Informationen eine Antwort enthält, desto besser ist sie.“ Bearbeite sie anhand dieser Struktur: - stärkstes Argument dafür - stärkstes Argument dagegen - versteckte Annahmen - Gegenbeispiele - differenziertes Urteil - verbesserte Formulierung der Aussage Vermeide ein unentschlossenes „Es kommt darauf an“. Formuliere ein klares Urteil. # Aufgabe 6: Erklärqualität Erkläre das Konzept der Rekursion in vier Stufen: 1. für ein zehnjähriges Kind 2. für einen Programmieranfänger 3. für einen Informatikstudenten 4. formal mit Bezug auf Basisfall, Rekursionsschritt und Call Stack Verwende dasselbe Beispiel in allen vier Erklärungen. Erkläre außerdem: - wann Rekursion sinnvoll ist - wann Iteration besser ist - wie eine Endlosrekursion entsteht - weshalb Rekursion zu einem Stack Overflow führen kann # Aufgabe 7: Planungsaufgabe Erstelle einen realistischen Vier-Wochen-Plan, um grundlegende Python-Kenntnisse zu erwerben. Rahmenbedingungen: - fünf Stunden Lernzeit pro Woche - keine Vorkenntnisse - Fokus auf praktisches Verständnis - mindestens ein kleines Abschlussprojekt - jede Woche soll konkrete Lernziele, Übungen und messbare Erfolgskriterien enthalten - plane Wiederholungen und Fehleranalyse ein - vermeide eine unrealistisch hohe Themenmenge Begründe die Reihenfolge der Themen. # Aufgabe 8: Selbstkritik Beende deine Antwort mit einer Tabelle: | Kriterium | Bewertung von 1–10 | Konkrete Schwachstelle | |---|---:|---| | Logische Korrektheit | | | | Technische Korrektheit | | | | Qualität des Codes | | | | Erklärqualität | | | | Kritische Analyse | | | | Befolgung der Anforderungen | | | Nenne anschließend: - die drei Stellen deiner Antwort mit dem höchsten Fehlerrisiko - welche Ergebnisse unabhängig überprüft werden sollten - eine konkrete Verbesserung, die du an deiner Antwort vornehmen würdest # Ausgabeformat Verwende exakt diese Hauptüberschriften: 1. Logisches Denken 2. Zahlenfolge 3. Dijkstra-Implementierung 4. Fehleranalyse 5. Kritische Analyse 6. Rekursion erklärt 7. Vier-Wochen-Plan 8. Selbstkritik Die Antwort soll ausführlich genug sein, um die Qualität zu beurteilen, aber nicht unnötig aufgebläht.

Drag to resize
Drag to resize