Skip to content

Latest commit

 

History

History
164 lines (124 loc) · 4.56 KB

File metadata and controls

164 lines (124 loc) · 4.56 KB

Hackschule Code Bites – Aufgabenübersicht


🟢 1. Grundlagen

🔢 Zahlen

⭐ Einstieg

  • ⭐ Zwei Zahlen addieren
  • ⭐ Zwei Zahlen multiplizieren
  • ⭐ Gerade oder ungerade Zahl erkennen
  • ⭐ Maximum von zwei Zahlen bestimmen

⭐⭐ Leicht

  • ⭐⭐ Fakultät berechnen
  • ⭐⭐ Fibonacci (iterativ)
  • ⭐⭐ Größter gemeinsamer Teiler (GGT)

⭐⭐⭐ Mittel

  • ⭐⭐⭐ Prüfen, ob eine Zahl eine Primzahl ist
  • ⭐⭐⭐ FizzBuzz
  • ⭐⭐⭐ Fehlende Zahl in einer Zahlenfolge finden

⭐⭐⭐⭐ Anspruchsvoll

  • ⭐⭐⭐⭐ Primzahlen bis n erzeugen
  • ⭐⭐⭐⭐ Fibonacci rekursiv berechnen

🔤 Strings

⭐ Einstieg

  • ⭐ String umdrehen
  • ⭐ Anzahl der Vokale zählen
  • ⭐ Längstes Wort in einem Satz finden

⭐⭐ Leicht

  • ⭐⭐ Prüfen, ob ein Wort ein Palindrom ist
  • ⭐⭐ Wörter in einem Satz zählen
  • ⭐⭐ Zwei Wörter auf Anagramm prüfen

⭐⭐⭐ Mittel

  • ⭐⭐⭐ Wort-Häufigkeit in einem Text berechnen
  • ⭐⭐⭐ Namen korrekt formatieren („max mustermann“ → „Max Mustermann“)
  • ⭐⭐⭐ Slug erzeugen („Hello World!“ → „hello-world“)

⭐⭐⭐⭐ Anspruchsvoll

  • ⭐⭐⭐⭐ Caesar-Verschlüsselung
  • ⭐⭐⭐⭐ Einfache E-Mail-Validierung

⭐⭐⭐⭐⭐ Fortgeschritten

  • ⭐⭐⭐⭐⭐ Vigenère-Verschlüsselung
  • ⭐⭐⭐⭐⭐ Passwort-Stärkenprüfung mit Regeln

📦 Arrays / Listen

  1. Schreibe eine Schleife, die jedes Element des Arrays mit ihrem Index ausgibt.
  2. Berechne die Summe aller Elemente im Array.
  3. Bestimme die Anzahl der geraden Zahlen im Array (%2 == 0).
  4. Finde das größte Element im Array.
  5. Wandle ein gegebenes Array in ein neues Array um, in dem jedes Element doppelt enthalten ist.
  6. Entferne alle ungeraden Zahlen in einem Array.
  7. Drehe die Reihenfolge aller Elemente im Array um.
  8. Finde heraus, ob ein Array ein bestimmtes Element enthält.
  9. Schreibe eine Funktion, die ermittelt, ob ein Array aufsteigend sortiert ist.
  10. Rotate left
  11. Swap first and last
  12. Palindrome check

⭐ Einstieg

  • ✅ ⭐ Summe aller Elemente berechnen
  • ✅ ⭐ Größtes Element finden
  • ⭐ Anzahl gerader Zahlen zählen
  • ⭐ Prüfen, ob ein Element enthalten ist
  • ✅ ⭐ Erstes und letztes Element tauschen
  • ✅ ⭐ Reihenfolge umdrehen

⭐⭐ Leicht

  • ✅ ⭐⭐ Array nach links rotieren
  • ⭐⭐ Prüfen, ob ein Array sortiert ist
  • ⭐⭐ Duplikate entfernen

⭐⭐⭐ Mittel

  • ⭐⭐⭐ Häufigstes Element finden
  • ⭐⭐⭐ Zwei sortierte Arrays zusammenführen
  • ⭐⭐⭐ Array flach machen (eine Ebene)

⭐⭐⭐⭐ Anspruchsvoll

  • ⭐⭐⭐⭐ Zwei-Summen-Problem
  • ⭐⭐⭐⭐ Duplikate effizient erkennen
  • ⭐⭐⭐⭐ Binäre Suche implementieren

⭐⭐⭐⭐⭐ Fortgeschritten

  • ⭐⭐⭐⭐⭐ Eigene Sortierung implementieren (Bubble Sort → Quick Sort)

🗂️ Hashes / Dictionaries / Maps

⭐ Einstieg

  • ⭐ Wort-Häufigkeit mit Dictionary zählen
  • ⭐ Werte per Schlüssel abrufen
  • ⭐ Schlüssel-Wert-Paare iterieren

⭐⭐ Leicht

  • ⭐⭐ Wörter nach Länge gruppieren
  • ⭐⭐ Häufigstes Wort bestimmen
  • ⭐⭐ Zwei Dictionaries zusammenführen

⭐⭐⭐ Mittel

  • ⭐⭐⭐ JSON hübsch formatieren
  • ⭐⭐⭐ CSV einlesen und auswerten (Zeilen zählen, Durchschnitt berechnen)

⭐⭐⭐⭐⭐ Fortgeschritten

  • ⭐⭐⭐⭐⭐ LRU-Cache implementieren

🔵 2. Algorithmisches Denken

  • ⭐⭐ Gültige Klammern prüfen
  • ⭐⭐ Array rotieren
  • ⭐⭐⭐ Sudoku-Zeile validieren
  • ⭐⭐⭐ Tic-Tac-Toe Gewinner erkennen
  • ⭐⭐⭐⭐ Zahl raten mit Binärstrategie
  • ⭐⭐⭐⭐⭐ Word Ladder (Graph-Denken)

🟣 3. Mini-Tools (Praxisnah)

  • ⭐⭐ Würfelsimulator
  • ⭐⭐ Einfache To-Do-Liste (In-Memory)
  • ⭐⭐ Einheiten-Umrechner (km ↔ Meilen, °C ↔ °F)
  • ⭐⭐⭐ Textbasiertes Menüsystem
  • ⭐⭐⭐ Römische Zahlen konvertieren
  • ⭐⭐⭐⭐ URL-Shortener-Logik (ohne Netzwerk)

🔴 4. Code-Qualität & Professional Skills

  • ⭐⭐ Unübersichtliche Funktion refaktorieren
  • ⭐⭐⭐ Tests für eine Funktion schreiben
  • ⭐⭐⭐ Langsame Funktion optimieren
  • ⭐⭐⭐ Edge Cases sauber behandeln
  • ⭐⭐⭐ Benutzereingaben validieren
  • ⭐⭐⭐ Fehlerbehandlung einbauen
  • ⭐⭐⭐⭐ Zwei Implementierungen benchmarken
  • ⭐⭐⭐⭐ Code-Smells identifizieren

⚫ 5. Meta-Bites (Constraint Challenges)

  • ⭐⭐ Lösung ohne Schleifen
  • ⭐⭐⭐ Lösung ohne eingebaute sort
  • ⭐⭐⭐ Von O(n²) auf O(n) verbessern
  • ⭐⭐⭐ Lösung rekursiv umschreiben
  • ⭐⭐⭐⭐ Rein funktional lösen
  • ⭐⭐⭐⭐ Memoisierung hinzufügen