10. 10. 2011

Jak na diplomku - level 1.

Tento post stručně shrnuje, co zhruba říkám studentům, kterým vedu jejich diplomku (bakalářka je také diplomka). Začnu diplomkou za níž se uděluje Bc. (tedy bakalářkou). Příště krátce o diplomce, za kterou je titul Ing.

Při řešení BP od vás očekávám samostatnost. Máte zadáním definován problém (velmi volně). Já, jako vedoucí vám poradím zejména "filosoficky".

Co a jak dělat. Technicky vám většinou neporadím (až na zpracování řeči). Od toho jsou tu konzultanti - kdokoli z FIT, z vaší firmy, sociální sítě, atd. Pozor na jednu důležitou věc. Vy jste odpovědní za vaši práci a za případné nesmysly co tam napíšete. Proto také ten titul dostanete vy. Takže je dobré konzultovat s někým, kdo problému rozumí a má přehled. Těžko se pak u obhajoby vymlouvat, že vám někdo poradil nějakou blbost na nějakém fóru. BP je (také) o kritickém myšlení.

Na BP se od vás nečeká rocket science (ale i tací se najdou, a velmi to potěší). Musíte být schopni problém analyzovat a zjistit, jak se řeší podobné věci (strávit 1 den na Googlu a hledat). Pak nastudované aplikovat na vaše zadání.

Vaše zadání byste měli dekomponovat na samostatné bloky (síťová komunikace, GUI, logika aplikace, databáze, matematický model, očekávání uživatelů, testování, ...). Jednotlivé bloky pak řešíte "samostatně". Je dobré opět zjistit, jak si stojí současně dostupné věci. Je zřejmá blbost implementovat wxWidgets, DirectX, toolkit pro trénování nějakého klasifikátoru, atd. Spíš byste měli najít dostupná řešení, analyzovat výhody/nevýhody a zvolit to řešení, které nejvíce vyhovuje vašim požadavkům. Zdůvodnění toho všeho se musí objevit v technické zprávě.

Není příjemné, strávit na BP 4 měsíce implementací něčeho, co přímo nesouvisí s tématem (např. grafický engine). Přitom vám nezůstane čas na to, co máte dělat (např. hra). Mimo to oponent nebo člen komise vám může položit otázku: "Proč jste implementovali to a to, když tu jsou minimálně 2 knihovny, které dělají přesně to co potřebujete". A pokud je vaše odpověď "Nevěděl jsem o nich.", tak je něco špatně. Vy si musíte být jistí tím, co jste dělali.

Jakmile máte rozmyšleno a jasno, co a jak propojit a co doimplementovat, doporučuji jít až do konce tou nejjednodušší cestou. Pak můžete v iteracích zdokonalovat - snižujete riziko nesplnění zadání. Zapojte do díla své okolí (zákazníky, kamarády, ...) ať testují a dávají zpětnou vazbu.

Během řešení, tedy ihned po zapsání, si pište poznámky rovnou do LaTeXu, Wordu či jiného editoru dle svých preferencí (přímo do BP šablony). Nechci po vás psaní krásných odstavců (eventuálně copy/pastování odstavců z wikipedií a podobně). Chci po vás odrážky typu:
  • Musím najít nějakou vhodnou knihovnu na GUI. 
    • Měla by být multiplatformí, udržovaná, s velkou komunitou a musí mít objekt tlačítka s vodotryskem
    • Hmm hmm tak jsem našel asi 3 rozumné
      • 1. knihovna A: klady: GUI je pěkné, ... zápory: z pohledu implementace je to humáč.
      • 2. knihovna B: klady.. zápory.. celkově vyhovuje, jen tlačítko s vodotryskem chybí.
      • 3. knihovna C: klady.. zápory.. celkově vyhovuje, jen tlačítko s vodotryskem chybí..
    •  Volím knihovnu B. Má větší komunitu a implementace tlačítka s vodotryskem se zdá jednodušší. Lze případně lehce rozšířit funkcionalitu.
Rozgenerovat odrážky do pěkných odstavců s obrázky je otázkou slohového cvičení. Na to bude čas potom. Tím, že si stručně napíšete co a proč děláte, může se dostavit AHA efekt. Uvědomíte si, že něco nemá logiku, a měli byste to dělat jinak. V květnu se to bude měnit špatně.

Toť stručně vše. Příště něco o DP. Máte jiný názor? Sem s ním!

Žádné komentáře:

Okomentovat