Hej hou, letní semestr skončil a prázdniny začínají. O části letošního zkouškového už jsem psal, ale jelikož až nyní znám výsledek všech zkoušek, tak tyto informace doplním a zhodnotím absolvované předměty v tomto semestru. Předměty seřadím podle toho, jak se mě celkově líbily a rozdělím do kategorií podle toho, jak moc bych je ostatním doporučil v případě, kdy by uvažovali o jejich zaregistrování. Projekty se příliš zabývat nebudu, protože plánuji samostatný příspěvek na toto téma.
Předměty
Předměty, které určitě doporučuji si zaregistrovat každému, kdo má o danou oblast alespoň minimální zájem.
- POS - Pokročilé operační systémy (P) - Zřejmě nejlepší předmět tohoto semestru - především z toho důvodu, že jsem se konečně naučil (alespoň základy) paralelní programování na úrovni vláken pomocí POSIXových vláken (také jsme probírali paralelní programování na úrovni procesů a synchronizaci pomocí jiných prostředků, než jsou semafory, např. zasílání signálů). Takhle nějak by měl předmět vypadat. Ing. Lampa je velmi dobrý přednášející, materiály byly spolu se zápisky z přednášek velmi dobrým zdrojem informací. Celkově jsme se v tomto předmětu zabývali jádrem, synchronizací (to tvořilo největší část předmětu), správou paměti, V/V a souborovými systémy. Veliká výhoda byla ta, že jak půlsemestrální, tak semestrální zkouška byla "fulltextová", čili se nejednalo o test a odpovídalo se slovně. Na obou písemkách byl i příklad na nějaký zajímavý synchronizační problém (např. rytíří a čeleď jí v jedné místnosti, ale zároveň mohou jíst pouze buď rytíří, nebo čeleď s tím, že rytíři mají přednost, ale jak se naplní místnost, tak se musí vystřídat), který se měl naimplementovat pomocí POSIXových typů a operací. Mě tento styl písemek vyhovuje daleko více, než testy, protože tady nejde o to, kdo správně pochopí zadání a možnosti testových otázek a co po něm autor chce (i když je fakt, že dané synchronizační problémy šly mnohdy pochopit různě, ale naštěstí ing. Lampa při písemkách neúnavně odpovídal na naše upřesňující otázky :)). U projektů se člověk dozvěděl, co měl špatně (teda alespoň podle emailů ing. Kašpárka - já měl vše v pořádku, takže mně nic nepřišlo). U zkoušek bylo napsáno, kolik bodů z dané otázky student dostal.
Záporů mě moc nenapadá - snad možná by mohlo být více projektů (např. další dva, které by byly i na jiná témata než synchronizace a spouštění procesů) a jejich zadání by mohlo být přesnější, ale ing. Kašpárek naštěstí pohotově odpovídal na naše otázky v diskusním fóru. Dále mě občas přišlo zvláštní, že byl zaveden nějaký formalismus, který se pak ale nevyužíval v plné míře, takže proč jej vlastně zavádět... Jako velikou výhodu bych viděl to, že jak na půlsemestrální, tak na závěrečnou zkoušku bylo dostatek času, takže se člověk nemusel nervovat kvůli času.
Jak už jsem psal, tak ze skoušky mám 64 bodů z 65, celkem 99 bodů a bylo to nejlepší skóre, jakého kdo v předmětu dosáhnul (100 bodů neměl nikdo). "A" mělo po prvním termínu 5 lidí (ze 169).
- FPR - Funkcionální a logické programování (V) - Ať si kdo chce co chce říká, tak doc. Kolář letos velice příjemně překvapil (oproti PDB v minulém semestru) a nebýt POS, tak je tento předmět letošním nejlepším předmětem :). Naučil jsem se (základům) programování ve funkcionálním jazyce Haskell, osvěžil a vylepšil zkušenosti s programováním v logickém jazyce Prolog a dozvěděl se i o jiných logických jazycích, jako je Goedel a CLP(R). V rámci funkcionálního paradigmatu jsme se zabývali lambda kalkulem jakožto formální bází funkcionálních jazyků. Přednášky byly zajímavé, cvičení s dr. Křivkou taky (mohlo jich být ale klidně víc). Projekty byly celkem dva - jeden program v Haskellu (GHC), druhý v Prologu (SWI-Prolog). Já jsem dělal HTTP server (Haskell) a hledání všech nejkratších cest v orientovaném multigrafu (Prolog), ale o tom až jindy (zadání do Haskellu si mohl každý zvolit, jinak mu bylo nějaké přiděleno). Doc. Kolář byl celkově velice příjemný a byla s ním rozumná řeč.
Mezi zápory (ale také mezi klady) bych uvedl, že jak půlsemestrální zkouška, tak semestrální zkouška probíhala stylem programování v Haskellu a Prologu na papír. Výhoda je ta, že tento předmět se tak stal vysoce prakticky orientovaným (teorie byla požadována pouze pasivně), ale zase na druhou stranu člověk při programování na papír na dost věcí zapomene a dělá víc chyb, než při normálním programování, protože si nemá možnost program odzkoušet a otestovat. Každopádně, zkouška rozhodně nebyla triviální a bylo třeba opravdu umět programovat jak v Haskellu, tak v Prologu (schválně si můžete zkusit napsat program v Prologu, který v zadaném lambda výrazu najde všechny volné proměnné a provede zadanou substituci, pokud je platná :)). Co se mě líbilo, tak bylo to, že doc. Kolář každému k půlsemestrální a závěrečné zkoušce napsal, co měl dotyčný špatně. Škoda jen toho, že u závěrečné zkoušky to nebylo moc detailní...
Ze zkoušky jsem dostal 51 bodů z 60, po dozkoušení 53 a celkově tedy 90 bodů (na půlsemestrální zkoušce jsem zapomněl napsat rekurzivní volání v jedné funkci, které jsem tam sice slovně uvedl, ale do kódu jsem ho jaksi nenapsal, za což jsem ztratil 6 bodů). "A" měli po prvním termínu 4 lidé (z 9), což bylo důsledek toho, že letos si tento předmět zapsal jen ten, kdo o něj měl opravdu zájem - příští rok má být tento předmět povinný pro několik nových oborů, takže ho bude mít zapsáno 200-300 lidí, což nepovažuji za příliš moudré. Tento předmět by měl zůstat undergroundový, čili pouze pro nadšence - do mainstreamu určitě nepatří a nejsem si jistý, co to s předmětem udělá...
Předměty, které sice nepatří mezi ty "must register", ale jejichž zaregistrováním rozhodně nic neztratíte, ba naopak se spoustu věcí naučíte.
- PRL - Paralelní a distribuované algoritmy (P) - Od tohoto předmětu jsem nic neočekával, ale velice příjemně mě překvapil. Doc. Hanáček je výborný přednášející - nejen, že měl výborný přehled o tom, o čem přednáší a co na slajdech má, ale uváděl i do souvislostí, upozorňoval na možné problémy a pochybnosti co se týče analýzy jednotlivých algoritmů a problémů a velice mě bavily jeho narážky :). 3 přednášky pak měl místo doc. Hanáčka mladý dr. Zbořil. První polovinu předmětu jsme se zabývali paralelními algoritmy a jejich analýzou, druhá část předmětu se zabývala synchronizací, jazyky pro paralelní programování a distribuovanými systémy. Za přednášky a obsah předmětu dávám jednoznačně plus.
Mezi nevýhody bych zařadil to, že doc. Hanáček záznam ze svých přednášek nezpřístupňuje studentům a ve slajdech hodně podstatných informací (které přednášel) chybělo, takže přítomnost na přednáškách (a dělání zápisů) byla naprosto nezbytná, jinak před sebou máte hromadu algoritmů, které vám dají zabrat, než je sami pochopíte. Další nevýhodu bych viděl v prostředí, ve kterém jsme dělali projekty - jednalo se o programovací jazyk PM2 (jazyk typu Modula) a emulátor PRAM. Horší překladač jsem ještě neviděl - mnohdy hlásil naprosto nesmyslné chybové hlášky, někdy prostě spadl na porušení ochrany paměti a na mém 64b systému nešel ani spustit (hlásilo to nějakou interní chybu překladače). Toto mě stálo hodně nervů :). Obtížnost předmětu byla taky poměrně vysoká, protože jen na řazení jsme si uvedli kolem 11 algoritmů, včetně jejich zápisu a analýzy časové složitosti - celkem jsme v tomto předmětu probrali kolem 40 algoritmů. Ale náročné předměty jsou fajn :).
Ze zkoušky jsem dostal 67 bodů ze 70 (nejlepší písemka, nikdo jiný z ní neměl více než 64 bodů), celkově 97 bodů. "A" mělo po prvním termínu 5 lidí (z 205 lidí).
- DJA - Dynamické jazyky (V) - Předmět s velmi zajímavou tématikou a kvalitním přednášejícím (ať si kdo chce co chce říká, tak přednášet umí :)). Zabývali jsme se dynamickými jazyky obecně, OOJ, Lispem, Smalltalkem a Selfem, především z hlediska koncepce, principů, možností a implementace těchto jazyků. Jako projekt jsme měli napsat krátký (6-8 stránek) článek na vybrané téma z oblasti dynamických jazyků, takže žádné programování se nekonalo.
Největším problémem u tohoto předmětu bylo malé množství přednášek - z celkových 13 přednášek jsme jich měli 7 a z toho 2 přednášky byly zaměřené na prezentace našich esejí. Dr. Janoušek se rozhodl místo 2 hodin každý týden mít jednu 3-4 hodinovou přednášku co dva týdny, ale délka těchto přednášek byla většinou 2 hodiny čistého času. Škoda, že těch přednášek nebylo víc... Další nevýhoda byly slajdy, které byly převzaté od jiných autorů, ale alespoň dr. Janoušek věděl, co na nich je a co k nim říct.
Zkouška byla z témat, která jsme měli označená jako "co je třeba znát", takže žádné podrazy se nekonaly. Do písemky jsem napsal všechno a nejsem si jist, že bych něco napsal špatně či opomenul, ale dostal jsem jen 60 bodů ze 70, celkově tedy 90 bodů (byli jsme tam jen 2 lidi, co měli >= 60 bodů). "A" jsme měli po prvním termínu tedy jen 2 (z 12, celkem nás bylo 21, ale 9 lidí se na tenhle předmět vybodlo).
Předměty, které si zaregistrujte pouze v případě, že už žádné lepší nejsou. Něco se z nich sice naučíte, ale pokud uvažujete nad jinými předměty, tak si raději zapište ty jiné předměty.
- WAP - Internetové aplikace (V) - Pokud jste absolvovali IIS, tak jste prakticky absolvovali i tento předmět, protože se v mnoha věcích příliš neliší :). Studijní materiály jsou stejné, přednášející taky, jediné, co se trochu liší, je anotace předmětu, ale ve výsledku jde skoro o to samé. Tenhle předmět by se měl podle mě jmenovat spíše "PSZ - Příběhy Starého Zbrojnoše", protože tak na mě prof. Hruška působil. Nechápu, jak může člověk, který se zabýval programovacími jazyky a překladači, skončit u webovek. Výklad předmětu se pak opírá o to, co prof. Hruška prožil při vyváření webových aplikací. Tenhle předmět by měl spíše učit někdo, kdo má s tvorbou webových aplikací alespoň 10 let praxe a je to jeho hlavní profese. Také by se tento předmět mohl zabývat pokročilejšími technikami, které se současně využívají, jako je MVC, šablonovací systémy, webové frameworky, bezpečnost webových aplikací, SEO apod. "Programovat" v PHP a HTML dnes umí každý druhý středoškolák... (No dobře, to jsem trochu přehnal, ale určitě víte, co tím myslím.)
Z toho vyplývá první nevýhoda - předmět toho moc nového nenaučí a opakuje známé (a již probrané) věci. Ke každému tématu jsou sice studijní opory, ale jedná se o spíše jakýsi pokus o referenční příručky, takže tyto studijní materiály jsou poměrně nezáživné čtení. Co mě potěšilo, tak byla jedna přednáška ing. Rába, která do toho stereotypu vnesla alespoň něco nového. Formát zkoušky (50 otázek s odpovědmi ANO/NE) se mně příliš nelíbil.
Ze zkoušky jsem dostal 48 bodů z 50, celkově tedy 94 bodů. "A" mělo po prvním termínu 34 lidí (z 216).
- GJA - Grafická uživatelská rozhraní v Javě (V) - U tohodle předmětu jsem si myslel, že by mohl být záživnější, ale nebyl. Přednášející ing. Schmidt je velice chytrý člověk, ale své znalosti nedokáže předat ostatním v podobě přednášení dostatečně kvalitně, takže jsem byl jen na asi 2 přednáškách (před zkouškou jsem si ale všechny přednášky pustil ze záznamu). Z předmětu jsem si sice poměrně dost vědomostí odnesl, ale určitě to mohlo být lepší a v porovnání s ostatními předměty to není nic moc...
Největší problém byl u slajdů, které sice byly v angličtině, ale bylo tam celkem dost chyb (jak gramatických, tak faktických, např. místo "override" se tam používalo "overload", což je úplně něco jiného a neznalého to zmate) a někdy příliš informací na jednom slajdu. Spousta slajdů se také týkala přehledu metod jednotlivých tříd, což není dvakrát záživné. Projektem bylo vypracování nějaké aplikace s obhajobou, ale byla to pouze fraška, jelikož nakonec byl z projektu průměr kolem 39.9 bodů ze 40, což naprosto nereflektuje rozdílnou kvalitu jednotlivých projektů. Formát zkoušky (stejný jako u WAPu) se mně také příliš nelíbil.
Ze zkoušky jsem dostal 50 bodů, celkově tedy 100 bodů (vzhledem k tomu, že jsem odpověděl na 47 otázek z 50 a některé jsem měl určitě špatně, tak museli přidávat bonusové body - některé zdroje hovoří až o 10-12 bonusových bodech, ale těžko říct). "A" mělo po prvním termínu 33 lidí (z 221).
Předměty, které si určitě nezapisujte.
- PDS - Přenos dat, počítačové sítě a protokoly (P) - Hned ze začátku musím říct, že se jednalo o jeden z nejhorších předmětů, které jsem na FITu zažil. Slajdy k předmětu vznikly tak, že se vzaly slajdy ke knížce "An Engineering Approach to Computer Networking" od S. Keshava a zřejmě nějaký středoškolák, který nevěděl, o co jde, je (jako brigádu) přeložil do "češtiny" (ano, do "češtiny", protože takové množství gramatických chyb jsem ještě nikde neviděl). Výsledek byl naprosto otřesný, protože mnoho věcí bylo přeloženo naprosto nesmyslně. Přednášející pak pouze četl, co bylo na těchto slajdech, i když to mnohdy nedávalo smysl. Opora vznikla tak, že se daly 2-3 slajdy na jednu stránku, takže naprosto stejně nepoužitelný materiál. Ja bych se za takové materiály styděl...
Z (ne)kvality slajdů pak vyplývala rovněž (ne)kvalita přednášek. Většinu přednášek měl prof. Švéda, který tomu sice rozuměl, ale neuměl to podat. Pár přednášek měl mgr. Trchalík, který ukázal, že přednášet může opravdu kdokoliv... Celkově jsem byl asi na polovině přednášek, ale před zkouškou jsem je zkouknul všechny. Když teda pominu otřesnou úroveň slajdů, tak se mně dále nelíbilo to, že v prvních dvou přednáškách byl dán i teoretický podklad, který se po nás ale nijak nevyžadoval a přišel mně tak naprosto zbytečný (což je možná na druhou stranu dobře, protože z těch materiálu se to chápalo dost špatně). V předmětu byl jeden větší projekt (programovací) a jeden menší (napsat článek). Když pominu to, že těch 200 článků určitě nikdo nečetl, tak u toho programovacího projektu bylo dost věcí nejasných a ani zadávající podle mě nevěděl, co po nás vlastně chce a také mně spíš než projekt do síťového předmětu přišel jako projekt do předmětu o konkurentním programování. Testování (resp. "testování", protože se, podle dostupných informací, zkoušelo jen několik málo základních věcí) proběhlo na osobním notebooku zadavatele, což také nechápu, protože školní projekty by se měly testovat a opravovat na školních počítačích, které jsou studentům dostupné.
Ze zkoušky jsem dostal 60 bodů ze 60, celkově tedy 100 bodů, což mě vzhledem k tomu, že tento předmět patří do jiného oboru, potěšilo. "A" mělo po prvním termínu 7 lidí (ze 191).
Jak je vidět, tak pořadí předmětů téměř odpovídá tomu, jak jsem se na jednotlivé předměty těšil.
Závěr
Semestr končím s průměrem 1.0, celkově první ročník tedy s průměrem 1.08 a 2. místem v oboru (ze 147 lidí; zdravím kamaráda, co je první :]). Celkově se mně letošní semestr a předměty v něm líbily. Předměty jako byl WAP a GJA bych už si asi nikdy nezapsal, ale nic (pro mě) zajímavějšího letos na registraci nebylo (škoda, že jsme si nemohli registrovat předměty, které nám jsou nabízeny na příští letní semestr) a já (po zkušenostech z bakaláře) potřebuju co nejvíce kreditů.
Nakonec přidávám pár "nej":
- Nejlepší přednášející: doc. Hanáček (PRL)
- Nejhorší přednášející: mgr. Trchalík a prof. Švéda (PDS)
- Nejjednodušší předmět (na zisk A): GJA
- Nejobtížnější předmět (na zisk A): FPR, PRL a POS
- Nejjednodušší zkouška: WAP
- Nejobtížnější zkouška: FPR, PRL a POS
- Nejzajímavější předmět: FPR
- Nejméně zajímavý předmět: PDS
Co vy - jak se vám líbil letní semestr (na libovolném oboru) a předměty v něm?