AutoFeedback API

Result 02dd5dfd-4888-49bc-a299-a25da69f59e0

{
  "llm" : {
    "feedback" : "# Exercise: todo\n\n### Correctness\n- Du hältst dich nicht an die Vorgabe „in ToDoApp ein **Array** für Task-Objekte zu erstellen“: Du verwendest eine `ArrayList` statt eines Arrays.\n- `listTasks(true)` gibt bei dir **nicht** `(No tasks)` aus, wenn die Liste leer ist (die Anforderung gilt für „Falls keine Tasks ausgegeben werden“, also auch bei `list all`).\n- Deine `ToDoApp.java` wirkt nicht kompilierbar: `import ch.fhnw.prog1.exercise.todo.task;` passt nicht zu deiner `task.java` (Package ist zwar `ch.fhnw.prog1.exercise.todo`, aber Klassennamen und Import/Schreibweise sind inkonsistent), außerdem fehlen Imports für `ArrayList` und `Scanner` im Attempt-Ausschnitt.\n- Die Übungsbeschreibung verlangt explizit eine Klasse **Task**; du implementierst eine Klasse `task` (falscher Name/Case), was i. d. R. in so einer Aufgabe als nicht erfüllt gilt.\n\n### Suggestion\n- Schau dir die TODOs/Kommentare genau an: dort wird „Task-Array“ explizit gefordert. Überlege, wie du dieselbe Logik (erste freie Position = ID) mit einem `Task[]` abbildest.\n- In `listTasks`: Überlege, wann „keine Tasks ausgegeben werden“ zutrifft. Das ist nicht nur beim Filter `list to do`, sondern auch dann, wenn insgesamt noch keine Tasks existieren.\n- Prüfe, ob dein Projekt nach Java-Konventionen und mit den richtigen Imports/Packages überhaupt baut: Package-Deklaration, Import-Zeilen, Klassenname und Dateiname müssen zueinander passen.\n- Wenn die Aufgabe „Task“ sagt, ist meist genau diese Klasse (inkl. Name) gemeint. Benenne/strukturiere so, dass `IO.println(task);` wirklich auf einem `Task`-Objekt arbeitet.\n\n3. Code Style:\n- Klassenname `task` sollte in Java UpperCamelCase sein (`Task`), genauso die Datei dazu (Dateiname = Klassenname).\n- `done` ist bei dir `public`; besser kapseln (z. B. Feld nicht öffentlich und über Methoden ändern), damit nicht überall direkt daran herumgeschrieben wird.\n- In `toString()` baust du Strings teils mit `+` innerhalb von `append(...)`; bleib konsistent (entweder alles über `append` oder formatieren).\n- In `listTasks` ist `counter` nur für einen Teilfall genutzt; ein einheitliches „wurde etwas ausgegeben?“-Flag wäre lesbarer.\n- Unklarer/fehleranfälliger Import: `import ch.fhnw.prog1.exercise.todo.task;` (Case) und fehlende Standardimports (`java.util.*`).\n\n\n# Exercise: energymeter\n\n### Correctness\n- Der Konstruktor initialisiert `level` nicht explizit auf `0`; die Tests könnten erwarten, dass der Anfangszustand bewusst gesetzt wird (und nicht nur implizit über den Default-Wert entsteht).\n\n### Suggestion\n- Setze im Konstruktor den Start-Füllstand ausdrücklich auf den gewünschten Anfangswert und überlege, ob du damit auch späteren Änderungen (z. B. wenn `level` nicht mehr automatisch 0 wäre) vorbeugst.\n\n### Code Style\n- In den `IllegalArgumentException(/* Fehlermeldung */)`-Aufrufen sind Platzhalter-Kommentare; entweder eine sinnvolle Message angeben oder den parameterlosen Konstruktor verwenden, damit der Code “fertig” wirkt.\n- Bei den Feldzugriffen mischst du `capacity` und `this.capacity`; wähle eine einheitliche Variante für bessere Lesbarkeit.\n\n\n# Exercise: pong\n\nLlm Evaluation ist für diese Aufgabe deaktiviert. Entferne die .llmignore Datei vom Package der Aufgabe.\n\n\n# Exercise: stepstats\n\n### Correctness\n- In der Aufgabenstellung werden die Attributnamen `averageSteps`, `minSteps`, `maxSteps` und `successDays` genau so gezeigt, aber im Beispiel wird für den Durchschnitt `avgSteps` verwendet; wenn eure Tests/Client-Code strikt auf die vorgegebenen Namen (`averageSteps` vs. `avgSteps`) prüfen, könnte es bei dir zu einem Namens-Mismatch kommen (du hast `averageSteps`, die Aufgaben-Skizze erwartet `averageSteps`, das Beispiel nutzt `avgSteps` – kläre, was in eurer Vorlage/Tests gefordert ist).\n- `StepTracker.java` ist in deiner Version nicht im Package `ch.fhnw.prog1.exercise.stepstats;` und hat auch keine klassische `public static void main(String[] args)`-Signatur; falls die Übungsumgebung genau diese Struktur erwartet (wie im Beispiel), wird das so evtl. nicht als lauffähiges Java-Programm erkannt.\n\n### Suggestion\n- Schau in der Aufgabenbeschreibung/Tests nach, welche Attributnamen wirklich erwartet werden (insb. der Name für den Durchschnitt) und richte deine Feldnamen exakt danach aus.\n- Vergleiche den Kopf deiner `StepTracker`-Datei mit der Vorlage/Beispiel: Package-Deklaration und die exakte `main`-Methode sind oft Teil der automatischen Ausführung. Orientiere dich an dem, was eure Code-Vorlage diese Woche verwendet.\n\n### Code Style\n- `totalSteps` als `public`es Feld nach außen zu geben ist unnötig, weil es nur ein Zwischenresultat für die Durchschnittsberechnung ist; besser nur die Resultate exponieren, die wirklich gebraucht werden.\n- Du verwendest mehrfach `this.` obwohl es nicht nötig ist (z. B. bei `this.successDays++`); kann man machen, aber einheitlich und sparsam verwenden erhöht die Lesbarkeit.\n- In `StepTracker` castest du `minSteps`/`maxSteps` zu `(int)`, obwohl sie bereits `int` sind – das ist redundant.\n",
    "status" : "SUCCESS"
  }
}