Open frenzymadness opened 5 years ago
Taky se mi víc líbí ta dvojka, je to takové víc volné a nesvazuje to ruce nějakou implementací.
Podle mě to není úplně ve sporu a těžil bych z obojího.
U implementačních otázek je užitečné předpřipravit část kódu (protože to obvykle dost trvá, má-li člověk udělat všechno bez chyby). Stejně tak validace (která v našem kurzu byla udělaná jako prosté asserty, žádné technicky komplikované řešení) je užitečným nástrojem pro posluchače/-ky, aby si mohli svoje řešení rychle ověřit - to do značné míry sníží nároky na pomocné kouče (jejich počet).
Možnost položit obecnou otázku a nechat pracovat tvůrčím způsobem mi taky nepřijde špatné,V Trinity kurzu jsme to neměli a zpětně bych to určitě zařadil Základní kurzy PyLadies to mají řešené pěkně (se zakrytým oknem). Nevím ale, jak tohle konkrétně udělat v případě notebooků (bez custom CSS a JS volaného někde na začátku sešitu asi nijak).
Co se týče těch notebooků, tak tohle: https://github.com/pyvec/naucse/issues/26 vede směrem k realizaci skrytých oken na webu, ale neřeší to notebooky na počítačí posluchačů :-/
Skrze meta data zjevně (nebo se pletu?) bez custom JS nejde do DOM cokoliv přidávat.
Poor man's solution (které vlastně může vypadat docela cool a jde z něj udělat IPython magic):
def zakoduj_reseni(reseni: str) -> bytes:
return base64.b64encode(reseni.encode())
def ukaz_reseni(encoded: bytes, typ: str = "code"):
decoded = base64.b64decode(encoded).decode()
if typ == "code":
print(decoded)
elif typ in ["md", "markdown"]:
from IPython.core.display import Markdown
return Markdown(decoded)
else:
raise ValueEror(f"Neplatný typ obsahu: {typ}")
ukaz_reseni(b'aW1wb3J0IG51bXB5IGFzIG5wCmltcG9ydCBwYW5kYXMgYXMgcGQKaW1wb3J0IHBhbmRhc19wcm9maWxpbmcKaW1wb3J0IHNlYWJvcm4gYXMgc25z')
K interaktivitě a úkolům: Máme dvě možnosti:
Z následujících důvodů se přihláním k možnosti č. 2: