User Tools

Site Tools


codeq:hints

Namigi

Prolog

Python

Prikaz

Glede na način prikaza ločimo tri tipe namigov:

  • znotraj urejevalnika
    • “popover” namig
      • označimo del kode in prikažemo sporočilo (mehurček z besedilom), ko uporabnik z miško pokaže na označeno kodo (na tablicah ob kliku ali kako drugače)
      • webapp dobi npr. (obseg, barva za highlight, besedilo)
      • trenutno te namige generira AI, kadar zna popraviti program
        • tudi tipkarske napake prikažemo na isti način; npr. pobarvamo besedo paret in prikažemo sporočilo “Ali si mislil parent?”
    • “autocomplete” oziroma predlaganje sprememb
      • prikaže meni možnih sprememb / popravkov
      • zahteva jih uporabnik, npr. s posebnim gumbom; webapp pošlje kodo in lokacijo kurzorja
      • webapp dobi seznam možnosti (obseg, nova koda)
      • če uporabnik izbere neko možnost, se v editorju zamenja besedilo v obsegu z novo kodo
  • v posebnem (“streaming”) oknu
    • vsi namigi, ki niso vezani na lokacijo v kodi
    • webapp dobi tag, za kateri namig gre, in vse potrebne parametre
    • namigi lahko imajo posebne lastnosti
      • če je v namigu testni primer, ga lahko uporabnik s klikom prenese v interpreter
      • če je v namigu animacija (GIF oz. SVG), jo lahko uporabnik po koncu predvajanja znova zažene

Triggerji

  • na zahtevo
    • uporabnik klikne gumb “Daj mi namig” ali “Predlagaj popravek”
  • glede na število neuspelih oddaj
    • po N (npr. N = 3) neuspelih poskusih omogočimo prvi namig (prikaže se napis/ikona “namig je na voljo”)
    • po 2*N neuspelih poskusih omogočimo drugi namig
  • ob testiranju glede na testne primere
    • za vsak statični namig imamo nabor testnih primerov - če program ne reši pravilno nobenega od teh primerov, je namig ustrezen

Vprašanja

  • ali uporabnika tikamo ali vikamo?
  • gumb “prikaži več” ob namigu?
  • ko uporabnik zahteva namig, ali zmeraj najprej testiramo program? (zelo verjetno ja)
  • kje / kdaj / kako se izpisujejo protiprimeri - failed unit testi / naključno generirani?

Razno

Še nekaj idej:

  • Sistem uporabniku pove, na kateri “stopnji” namigov je trenutno - prvi namig je res le “namig”, zadnji pa praktično že poda rešitev. Mogoče lahko z barvo (zelena/rumena/rdeča) prikažemo stopnjo namiga.
  • pri predikatih za delo z množicami izriši Vennova diagrama za pravilno in uporabnikovo rešitev.
codeq/hints.txt · Last modified: 2016/01/19 13:52 by timotej