3BIT/ZS: Pátý semestr na FITu

V tomto semestru byly všeobecně zajímavé předměty i projekty, většina týmových. Ačkoli mi povětšinou zadání vyhovovalo a stejně tak i rozsah, jejich množství a fakt, že mám snahu projekt vypracovávat, jak nejlíp dovedu, mi daly pěkně zabrat, a to i na psychiku. Ano, věřím, že tento semestr měli s FITem mnohem méně problémů ti studenti, kteří projekty dělali „jen aby prošli“.

IIS | Informační systémy

Takový patlavý předmět, kde se vyjma HTML/JavaScriptu, které se v přednáškách berou jen okrajově, vlastně nic nenaučíte. Zkouší se z DTD, XLST a převodu XML na JSON podle nějakého náhodného algoritmu; větší zbytečnosti jsem na FITu snad nepotkal. Jediná zajímavá věc v tomto předmětu byl projekt, kde jsme natvrdo měli udělat webový informační systém (ve dvojici) — zadání znělo v podstatě takto, jinak nám byla ponechána volná ruka (muselo to teda ještě být HTML+PHP). Já jsem HTML, CSS, PHP apod. už nějakou tu dobu uměl, takže to pro mne byla spíš rutinní práce (i tak toho ale bylo docela dost). Udělal jsem to sám ve víře, že snaha o kolaboraci by věci spíše zkomplikovala, a stále si myslím, že jsem neudělal špatně. Hodnocení projektu mohlo být lepší — odevzdal jsem projekt a po nějaké době se mi ve WISu objevily body; žádné informace, žádná zpětná vazba, nic. Dělali jsme celkem velké informační systémy, spousta lidí dělala něco takového poprvé. Neposkytnout na takovýto velký projekt zpětnou vazbu je podle mě velký nedostatek.

IMP | Mikroprocesorové a vestavěné systémy

Tohle byl pro mne zajímavý předmět.  Nějaký rok předtím jsem začal bastlit s Arduinem a učivo z IMP značně prohloubilo znalosti v tomto oboru, u kterých jsem navíc viděl jasnou aplikovatelnost v praxi. I vstřícnost vedení mě potěšila — jako projekt (u kterého bylo mnoho zajímavých variant) mi dovolili vlastní zadání. Chtěl jsem udělat vlastní procesor k arisoftce, něco jako toto. Měl jsem spájený obvod, napsaný firmware (procesor byl Attiny85 na desce za doláč z aliexpressu), ale bohužel mi něco brickovalo procesor a nikdo mi (pomocí poněkud omezených komunikačních kanálů) nebyl schopný poradit, co.

A tak jsem týden před odevzdáním zažádal o změnu zadání; a bylo přijato! Šlo opět o vlastní zadání, tentokrát o vytvoření dotykového ovládacího panelu, kterým se ovládala relátka, která měla spínat výhybky na modelové železnici, opět postaveno na Arduinu. Pro zvědavce dávám k dispozici dokumentaci projektu (nedávno jsem se v tom vrtal a vypadá to na to, že levnej čínskej posuvnej registr je hodně citlivej na EM pulzy; pokud se mi to podaří opravit, dám na tyhle stránky nějaké video a tak). Musím se přiznat, dát to za ten čas dokupy byla celkem makačka (nejvíc mi dalo krimpování dupontů, těch tam mám tak kolem 70ti). Nu, opět jsem všechno spájel, sestavil, naprogramoval… A opět to nechodilo 😀 Neměl jsem daleko ke zhroucení. Naprázdno všechno fungovalo, jak mělo, ale jakmile jsem k relátkům připojil trafo a výhybky, tak se relátka náhodně spínala, procesor se restartoval, … Ale jelikož to v zásadě fungovalo, tak jsem sepsal dokumentaci a odevzdal to. Nakonec jsem za to dostal plný počet bodů 🙂 Ale bylo to snad nejdražších 19 bodů za bakalářské studium 😀 Jmenovitý dík patří doktoru Bidlovi, jednak za jeho vstřícnost v poskytnutí hned dvou vlastních zadání, jednak za to, že mi věnoval svůj čas a zkusil mi pomoct s vyřešením problému s tou airsoftkou, i když to bylo mimo jeho obor a nakonec jsme stejně na nic nepřišli.

EDIT: Ovladač výhybek se mi podařilo rozchodit! Dokumentace projektu zde.

IMS | Modelování a simulace

Předmět, který si u mne získal velký kredit. Veškeré učivo bylo srozumitelné, koherentní, zajímavé a v praxi využitelné. Demonstrační cvičení s trochu cynickým doktorem Hrubým byla (pro mne, pro někoho asi ne 😀 ) byla také zajímavá, učila další látku mimo přednášky (ze které byla půlsemestrálka) a ve druhém cvičení do procesu zapojil studenty (k hrůze některých).

U projektu (který se zpracovával ve dvojicích) bylo více variant zadání, které byly ale přiřazovány automaticky (tedy si student nemohl vybrat sám). Na projektu (o který se staral výše zmíněný doktor Hrubý) bylo za mne veliké plus, že zadání bylo dosti volné; já s kolegou jsme konkrétně měli nasimulovat nějaký zdokumentovaný výrobní proces. U tohoto zadání byl problém sehnat nějaká data, protože takové informace o podniku, jako jak dlouho trvá například cyklus nějakého stroje, jak velký má zásobník, jak dlouho trvá přeprava polotovarů mezi jednotlivými stroji atp., protě nenajdete. Nakonec mě zachránil bratránek spásnou myšlenkou, že bych měl hledat mezi bakalářkami a diplomkami, že by tam někdo něco takového mohl zpracovávat. A vskutku, něco jsem opravdu našel. Nebyla to žádná sláva, někde autorovi neseděly součty v tabulkách, někde neměl pořádně popsané sloupce a já nemohl přijít na to, co tím chtěl básník říci, některá data, která jsem potřeboval, tam neměl, ale ve výsledku to bylo něco, na čem se aspoň trochu dalo stavět. Koneckonců, s takovýmito podmínkami od nás doktor Hrubý nemohl čekat žádné zázraky. Stejně jako v IIS projekt neměl žádnou zpětnou vazbu, pouze počet bodů. Na žádost studentů ale byly vypsány konzultace.

A nakonec mě velice potěšil přístup doktora Peringera k reklamacím zkoušek. Doktor PePe mi ochotně uznal i takové řešení, které v zásadě fungovalo, i když to nebylo úplně tak, jak jsme se učili. Takovýto nedostatek hnidopišství mi byl velice milý (pro kontrast uvedu například doktora Janouška z předmětu ISA ze stejného semestru, u kterého se u trochu se odchylujících řešení nedalo vůbec diskutovat).

IPZ | Periferní zařízení

Takový historický předmět, ale učivo mělo také něco do sebe. Prakticky je to celé o sběrnicích. Do přednášek se docent Kotásek pustil tak nějak zprostředka a moc jsem z nich neměl (během semestru jsem ale prakticky zcela upustil z navštěvování přednášek celkově). K předmětu jsou přibalena dvě cvičení. Každé za dva body, takže v podstatě dobrovolná, ale není na škodu na ně zajít.

ISA | Síťové aplikace a správa sítí

Jak jsem zmiňoval v mých minulých příspěvcích, sítě moc nemusím jako téma. Učiva bylo hodně, ikdyž vesměs relevantního. Zajímavou položkou byl projekt. Na výběr bylo z 9ti variant, já si vybral napsání vlastního DHCP serveru. V mém projektu s námi tedy nebylo zacházeno v rukavičkách. Dostali jsme zadání s požadavky, co to má umět, a veškeré podklady jsme si museli nalézt sami (jednalo se o věci daleko detailnější, než jaké byly zmiňovány na přednáškách). Problémem bylo, že se k implementaci DHCP serverů dalo na internetu nalézt jen velice málo. Musel jsem se tedy uchýlit k prolézání RFCček v tomto stylu. Jejich dešifrování a vyhledávání relevantního obsahu byla hrozná práce.

Nepříjemným překvapením pro mne potom bylo, když byla moje práce oceněna 5ti body z celkových patnácti — nebyl jsem si vědom žádných nedostatků v mém řešení, které by tento pokles bodů mohly způsobit. Ve WISu se mi objevil takovýto log k hodnocení (studenti museli lézt do zdrojového kódu stránky, protože nové řádky byly vloženy jako \n a ne jako <br>. Jestli se dobře pamatuju, jednalo se o chybu v testovacím skriptu (log tedy nebyl validní), i tak jsem měl ale ve výsledku velice málo bodů. Tedy jsem zašel na konzultaci. Z Ing. Pluskala se vyklubal velice příjemný a rozumný člověk (musím se přiznat, že jsem z internetové komunikace nabyl dojmu, že se jedná o despotu) a zjistilo se, že jednak při udělování hodnocení nastala aritmetická chyba a jednak že testovací soubory, které byly mému programu předkládány, obsahovaly tzv. BOM, který nebyl v zadání nijak zmíněn a který knihovna, kterou jsem používal na parsování zonefiles, nebyla schopná zpracovat (tento problém se mnou na konzultaci aktivně řešil a poskytl mi relevantní testovací podklady). Ing. Pluskal poté ještě obeslal mail, ve kterém na věc upozorňoval a ve kterém vyzýval studenty, kterých se to týká, aby mu napsali a on že se na to podívá. Z konzultace jsem tedy odešel se čtrnácti body — jeden mi chyběl za nějaké menší chyby.

Menší nepříjemností na závěr byly reklamace zkoušky, kde mi doktor Matoušek odmítl uznat třeba i jen část bodů za příklad. Jednalo se o vyhledávání pomocí bitového vektoru, kde se moje řešení od toho učeného lišilo v tom, že jsem bity zapisoval v obráceném pořadí (tedy bit s indexem nula jsem měl napravo, ne nalevo; nebo to bylo obráceně?). Šlo pouze o konvenci, na výsledku to zbla nic neměnilo, ale to bylo doktoru Matouškovi jedno.

ISP | Semestrální projekt

Aneb studenti, radši byste měli na bakalářce začít makat už v zimním semestru. Předmět není hodnocený, má pouze zápočet. Někteří vedoucí (možná i všichni, nevím) požadují prezentaci o vaší práci během zimního semestru, která bývá během zkouškového. Pokud vím, tak to nikdo moc nehrotí.

ITU | Tvorba uživatelských rozhraní

Celkem zajímavý a užitečný předmět, který měl ale daleko větší potenciál. Každé cvičení se věnuje jiné platformě — na jedné jsme pracovali s Qt (ale „mobilácké“ QML rozhraní, ne solidní widgety, které jsou podle mě užitečnější; mimochodem Qt vřele doporučuji, umí toho hodně, jede všude a je zadarmo), WPF, webová rozhraní (dělali jsme AJAXový chat), aji staré škaredé Windows Forms. Na jedno cvičení jsem přišel asi o deset minut pozdě (kvůli reklamaci půlsemestrálky z ISA, na kterou se čeká klidně tři hodiny) a doktor Beran mě již nedovolil se ho účastnit, protože se jednalo o práci ve dvojicích (myslím, že na mě nezbyl partner; šlo o simulaci komunikace s klientem — specifikace požadavků na aplikace a vytvoření návrhu) a navíc se mu to (zřejmě) nechtělo znovu vysvětlovat. Řekl mi, že mám přijít další den v osm ráno (poslední termín daného cvičení). No jo, jenže my měli v deset ráno půlsemestrálku z IPZ. Na cvičení jsem tedy nešel a přišel jsem o pět bodů, které mi nakonec chyběly na áčko (protože doktor Beran za projekt plné počty nedává :D).

Cvičení tedy byla v zásadě fajn, člověk nakoukl do všech možných platforem na tvorbu GUI aplikací (i když se toho za ty dvě hodiny samozřejmě nedalo moc stihnout). Přednášky ale byly v zásadě zabité, protože se tam učilo to, co jsme brali na cvikách — tedy různé frameworky. Upřímně, takové věci typu výčet událostí u WinForms, výčet druhů komponent, si nikdo nebude pamatovat a kdo to bude potřebovat, tak si to najde na netu. Navíc přesně to (tedy hledání na netu) jsme dělali na cvikách. Čas přednášek se mohl využít na daleko zajímavější a důležitější věci — principy návrhu GUI, různé metodiky, něco o uživatelských testech, věci z praxe; kam dávat prvky, aby je uživatel našel, jaké prvky se na co hodí, klávesové zkratky, principy undo-redo, je toho tuna, o čem by se dalo zajímavě mluvit a co by studentům hodně rozšířilo obzory. Výjimkou byla poslední přednáška, která byla o gamifikaci a celkem zajímavá (i když se v druhé polovině doktor Beran dost opakoval).

Gró předmětu byl projekt — jednalo se o návrh GUI pro nějakou aplikaci. Na výběr bylo nepřeberné množství (117) variant (každé mělo omezenou kapacitu) a připouštěla se i vlastní zadání (za to chválím). Projekt se vypracovával v týmech o 1-3 členech. Během semestru se měla odevzdávat postupně se rozšiřující technická zpráva, která měla popisovat postup při řešení projektu (byly dány milestones, které se měly během semestru plnit). Já jsem si s kamarádem vybral vlastní zadání (jak jinak 😛 ); šlo o vylepšení GUI do softwaru, který jsme vyvýjeli o prázdninách. Šlo o systém pro časomíru závodů, který běžel po síti, postavený na Qt (klient) + PHP (server, komunikace pomocí JSON zpráv v podobě HTTP dotazů). Pro zájemce dávám k dispozici moji technickou zprávu. Za toto zadání jsem byl velice rád, protože jsme tím dostali čas a motivaci dolaďovat náš program (komerční, tedy alespoň teoreticky), tedy dělat něco 100% užitečného. Během zkouškového pak byly prezentace našich projektů před doktorem Beranem. Tam jsme byli celý den (doktor Beran jel takto čtyři dny), měli jsme tedy možnost shlédnout i práce ostatních studentů. Ve svém hodnocení byl vesměs mírný pro horší projekty, ale na druhou stranu nevím o tom, že by někomu dal plný počet bodů.

O ITU projektech by se dal nejspíš napsat samostatný článek. Mě osobně dal projekt hodně — měl jsem prostor se opravdu zamyslet nad tím, jak tvořím GUI, zamyslet se nad tím, jak takové GUI testovat a k čemu je to dobré. Část studentů to ale vzala za špatný konec. Zdůrazňuji, že projekt byl jenom o GUI; teoreticky jste nemuseli napsat ani řádek kódu (samozřejmě jde o nadsázku, demonstrace GUI vyžaduje alespoň částečnou funkčnost, třebas i emulovanou). Z obhajob si pamatuju studenty, kteří měli dělat správce oken (tzn něco například na přepínání oken, nějaké dokování do mřížky, launcher, nebo tak). Ti navrhli jakýsi overlay s tlačítky, který se měl zobrazovat u každého okna. Pohořeli ale na tom, že to nezvládli implementovat (byli v ten den obhajob myslím jediní, kteří neprošli). O tom ale projekt nebyl; projekt mohli například vyřešit i tak, že se vůbec nemuselo pracovat s OS okny, ale mohli si udělat vlastní aplikaci s vlastními okny, které mohly být představovány třebas i jen obdélníky (nebo obrázky, chápete mě). Podobně testy. Spousta týmů měla testy typu kolik procent byste dali přehlednosti, intuitivnosti, kráse, atp. GUI. Někteří tam ani neměli pole pro komentáře uživatelů. Nedokážu si představit, že by někdo z těchto testů mohl získat nějaká zajímavá data. Nejsem žádný GUI profík, ale přijde mi rozumné dávat pro testování úkoly „ze života“ (tedy ne příliš jednoduché a takové, které by uživatelé opravdu mohli potřebovat udělat a poté buď uživatele pozorovat a sledovat, kde se zasekne, když něco nemůže najít, atp. nebo dávat do formulářů otázky typu „jaké akce pro vás byly obtížné vykonat“ nebo „byla nějaká funkcionalita, kterou jste měl problém najít“, tedy testovací subjekty vybízet ke kritice. Taky je dobré jim před testem říct, že se testuje uživatelské rozhraní, ne uživatelé, a že jakékoli problémy s obsluhou programu jsou důsledek špatného návrhu aplikace, ne neschopnosti uživatele.

Tak, koukám, že o ITU jsem se celkem rozepsal. Ať slouží. Taktéž uvítám komentáře a kritiku nad texty, které jsem zde stvořil.

 


 

VUT FIT | Rozcestník

Bakalářské studium

Magisterké studium (obor MIN | Inteligentní systémy)

 


 

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *