
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.