Domácí úkoly

Domácí úkoly prosím odevzdávejte přes odevzdávátko, přihlašovací údaje jsem poslal všem, kteří mi poslali svou přezdívku.

Zadání domácích úkolů je na stránce cvičení (této), spolu se jménem úkolu, počtem bodů a deadlinem na odevzdání. Tím bude vždy pondělí následující po cvičeních, ve 23:59. Než se ukáže, že odevzdávátko nemá chyby, prosím také ať si vyřešené úkoly někam jistotu uložíte :-)

Zápočet

Zápočet je nutnou podmínkou pro přihlášení na zkoušku a lze získat dvěma způsoby:

Program cvičení

15. Cvičení (navíc) 29.5.2017

Písemkové tipy:
  • Dekompozice – natrénujte dekompozici problémů na menší, samostatně řešitelné části (funkce, skripty, ..).
    • Zkuste identifikovat problémy, jaké bude potřeba vyřešit. Jak načíst vstup, jak reprezentovat data, jak řešit výstup, jaké podprocedury by se hodily, ...
    • Podproblémy by měly mít jasně definované závazky (vstup, výstup, předpoklady) a co nejjednodušší funkcionalitu.
    • Nepospíchejte na sebe, dejte si na začátku čas na rozmyšlenou, neprogramujte hned první nápad.
  • Programujte do šířky (BFS), nikoliv do hloubky; je lepší mít všechno trochu na hrubo a jasně rozmyšlené, než mít jednu věc do detailu a zbytek nemít. Napřed věci důležité, pak zbytek.
  • Rozdělte si kód podle problémů z dekompozice (e.g. každou na svůj papír), pište (stručné, ale jasné) komentáře u top-level podproblémů – co má tenhle podproblém dělat. I zkoušející (ostatní, co čtou váš kód) jsou jen lidé (co si rádi ušetří práci).
  • Když nevíte jak udělat X, představte si, že máte funkci, co X dělá. (popište její vstupy a výstupy, co nejjednodušší funkcionalitu) a pracujte s ní jako s blackboxem. Je lepší mít jeden nedořešený "implementační detail", než se zaseknout a vzdát.
  • Trénink – vyzkoušejte si potrápit se s několika starými zadáními (včetně alokovaného času), i když třeba vůbec nevíte. Právě námaha vytváří užitečné mentální modely a "to znám momenty". Projděte si příklady z jiných cvičení.
  • Materiály – vytiskněte si užitečné věci. Namátkou sed & awk one-liners, ascii tabulka, slidy, probrané příklady. Projděte slajdy, jestli znáte každou z utilit. Namátkou, na cvikách jsem zapomněl na split, taky jsme netrénovali pole v awk, atd.
Mind Blown:

14. Cvičení 23.5.2017

13. Cvičení 16.5.2017

12. Cvičení 9.5.2017

11. Cvičení 2.5.2017

10. Cvičení 25.4.2017

9. Cvičení 18.4.2017

8. Cvičení 11.4.2017

7. Cvičení 4.4.2017

6. Cvičení 28.3.2017

5. Cvičení 21.3.2017

4. Cvičení 14.3.2017

3. Cvičení 7.3.2017

2. Cvičení 28.2.2017

1. Cvičení 21.2.2017

Materiály & odkazy

Anki

Je skvělý program pro efektivní učení pomocí systému kartiček a principů Spaced Repetition a Active Recall. Je k dispozici jak online, tak pro Android, resp IOS.

Během semestru budu rozšiřovat experimentální balíček s kartičkami pro Uvod do Unixu, který si můžete importovat a učit se tak pomocí Anki. A pozor, pamatovat si věci je nástroj; programovat se člověk těžko naučí bez vlastního aktu programování a experimentování. Balíček je tak myšlen jako způsob jak si zapamatovat co dělají základní utility, ale rozhodně doporučuji si všechny věci vyzkoušet.

Ke stažení: UnixCrashcourse_21_03_2017.apkg
Feedback, opravy & rozšíření jsou vítané.

Basic Stuff

Useful Stuff

Other (Useful) Stuff

Kontakt

Máte-li nějaký technický problém či dotaz a nepomáhá ani přemýšlení a Google, napiště mi, nebo si se mnou domluvte konzultaci.

E-mail/Hangout: J.Moudrik@gmail.com