Druhý semestr na Nanyang Technological University

Po měsíčních prázdninách, které jsem strávil cestováním po Taiwanu, Vietnamu a na pláži na tropickém ostrově v Malajsii, jsem se v lednu zase vrátil do Singapuru. Opět jsem si zapsal 5 předmětů. Celkově mi druhý semestr přišel jednodušší, předměty nevyžadovaly tolik práce během semestru, neměl jsem žádné skupinové projekty a také jsem si skoro zvyknul na místní angličtinu.

[CZ2004] Human Computer Interaction → A-

normanNa NTU povinný předmět zaměřený na tvorbu uživatelských rozhraní. Obsahem jsou principy kvalitních uživatelských rozhraní (7 Stages of Action, 8 Golden Rules of Interface Design), návrh prototypů, testování použitelnosti, ale také základy psychologie. Během semestru jsme měli vytvořit low fidelity a high fidelity prototyp pro aplikaci na správu projektů, který splňuje všechny principy dobrého user-centred designu. Předmět by se dal shrnout jako základy UX pro programátory. Mně přišla většina věcí celkem zřejmá, možná proto, že už se tvorbou aplikací několik let zabývám, ale bylo zajímavé poznat teorii za tím, a konečně jsem si přečetl skvělou knihu Design of Everyday Things od Dona Normana.

[CZ4001] Virtual and Augmented Reality → B

Virtuální a rozšířená realita je teď hodně žhavé téma. Vývoji virtuální reality se naplno věnuje Facebook, HTC i Google. Zatímco Oculus Rift od Facebooku a HTC Vive se specializují na hraní her na výkonných PC, pro Google Daydream stačí podporovaný smartphone a levný headset, má tak potenciál pro masivnější adopci. I když prototyp Google Glass se neuchytil, vyvinout brýle se skutečnou rozšířenou realitou je dlouhodobým cílem Microsoftu, Facebooku i Applu.

První polovina předmětu se věnovala VR, nebo spíše deklarativnímu jazyku VRML. Cílem bylo představit prakticky koncepty transformace 3D objektů, aplikace textur, animace a osvětlení. Tahle část byla trochu zklamáním, jelikož zastaralé VRML asi dnes už nemá žádné praktické uplatnění. VRML bych nahradil minimálně jeho nástupcem X3D, nebo WebGL, které se pak dá použít i v kombinaci s novým standardem WebVR. Ale chápu, že mělo jít spíše o představení principů, než o konkrétní technologii.

Druhá polovina semestru byla trochu zajímavjší, věnovali jsme se teorii marker-based tracking pro AR, výpočtu transformačních matic pro vykreslování 3D objektů v souřadnicích reálného světa nebo třeba principu fungování QR kódů. Ukázali jsme si, jak aplikovat AR v praxi pomocí nástrojů ARToolkit nebo Vuforia, ale žádný praktický úkol, kde bychom si to vyzkoušeli, zadán nebyl. Takže předmět byl spíše motivací začít se těmito tématy zabývat nějak více do hloubky samostatně.

artoolkit_pipeline_2 ARToolkit Pipeline

[CZ4002] Visual Information Processing and Management → B+

První část semestru jsme se zabývali kódováním a kompresí obrázků. Prošli jsme všechny základní stavební bloky komprese: aritmetické/Huffmanovo/run-length kódování, kvantizace, prediktivní kódování, diskrétní kosinová transformace. Následně jsme si ukázali, jak jsou všechny principy využity ve formátu JPEG. Nakonec jsme okrajově zavadili o image recognition a detekci hran a významných bodů. V druhém semestru jsme kódování rozšířili o časový rozměr a naučili se, jak funguje kódování videa. Tam jsou principy pro kódování obrázků rozšířeny o algoritmy pro motion estimation. Jako příklad video formátu jsme rozebrali H.264.

Během semestru nebyly žádné úkoly, až na závěr jsme měli napsat recenzi 2 paperů. První byl z oblasti zpracování videa: „A New Diamond Search Algorithm for Fast Block-Matching Motion Estimation“. Druhý paper jsme si měli najít sami z oblasti image compression and processing, já si vybral „FLIF: Free lossless image format based on MANIAC compression“.

jpeg_pipeline
JPEG Encoder

[HH2017] History of Information Technology → B+

Tento předmět nabízený fakultou Human and Social Studies jsem si zapsal na poslední chvíli, doslova pár minut před první přednáškou. Historie mě sice nikdy moc nebavila, ale přednášky v podání prof. Hallama Stevense z Harvardu byly dost zajímavé, má velký nadhled a o technologických objevech mluví v širokém historickém a sociologickém kontextu. Navíc za celý rok jediný přednášející s normální angličtinou.

Prezentace se skládaly jen z obrázků, bylo tedy potřeba chodit na přednášky a dělat si zápisky. Začíná se historií záznamu a přenosu informací, přes mechanické kalkulátory 19. století, rozvoj počítačů v období 2. světové války až k nedávné minulosti osobních počítačů a historii internetu. Předmět využívá Technology Enhanced Learning, což znamená, že po každé přednášce následovaly jako domácí úkol různé online aktivity, např. provést určité početní operace na simulátorech mechanických kalkulátorů (Arithmometer, Difference Engine), dešifrovat zprávu na simulátoru Enigmy nebo něco naprogramovat na simulátoru Altair 8800.

Během semestru jsme měli ve dvojicích prezentace na technologie z aktuálně probíraného období, já prezentoval historii modemu. Semestrální prací bylo vytvořit multimediální prezentaci rozebírající historií vybrané technologie v průběhu času, já zpracovával historii mobilních telefonů.

babbage-difference-engine-2_700 Charlese Babbage’s Difference Engine

[LC9002] Chinese Language Level 2 → A

V druhé úrovni čínštiny jsme dále rozšiřovali slovní zásobu, zaměřenou hlavně na časové údaje, nakupování, konverzace v restauraci a názvy jídel. Přišlo mi to jednodušší než první semestr. Když člověk umí základy, už to jde rychleji. Kromě 2 testů měl každý asi 10minutovou prezentaci na libovolné téma, já představil Českou republiku. Na konci semestru jsme pak měli ve dvojicích natočit několikaminutové video s dialogem a ideálně nějakým příběhem. Zpestřením bylo, když poslední hodinu učitel přinesl těsto, mleté krevety, přenosný vařič a učili jsme se vařit čínské knedlíky 饺子 (jiaozi).

charles-deluvio-271645 (1)
Čínské knedlíky

Po poslední zkoušce jsem po 9 měsících odletěl ze Singapuru, ale ještě před opuštěním Asie jsem navštívil Hong Kong, Shengzhen a Šanghaj. Využil jsem tak trochu roční studium čínštiny a poznal jedno z největších měst světa.

Teď už jsem přes měsíc doma. Jelikož mi ještě chybí na FITu pár předmětů, které se na NTU neučí, budu muset o rok prodloužit studium. Ale určitě se ten rok vyplatil, kromě studia celkem zajímavých předmětů jsem poznal lidi z celého světa, naučil se porozumět různým přízvukům angličtiny, procestoval kus Asie a koukám na svět zase s trochu větším nadhledem. Pokud máte možnost studia v zahraničí, určitě toho využijte!

První semestr na Nanyang Technological University

Přicházím k odletové bráně na Letišti Václava Havla a předkládám svůj palubní lístek. Po oskenování kódu se ale rozsvítí červená kontrolka a ozve chybový tón. Asi pro mě už není v letadle místo? Free upgrade! Dostávám nový palubní lístek s titulkem BUSINESS. Bez čekání ve frontě nastupuji do letadla a hned po usazení mě letuška vítá jménem a na stolku mi přistává sklenka šampaňského.

Takhle nějak před 6 měsíci začala moje cesta do Singapuru. Co tam? Díky ČVUT se mi naskytla možnost ročního studijního pobytu na Nanyang Technological University. Jak probíhá takové přijímací řízení, jsem popsal v minulém článku. Teď už mám nějakou dobu za sebou konec prvního semestru, tak se pokusím trochu přiblížit, jak to vypadá na jedné z nejlepších univerzit v Asii.

Kampus

Areál NTU se rozléhá na ploše 200 hektarů a je považován za jeden z nejhezčích kampusů na světě. I přes to, že se skládá z více než 100 budov, všude je spoustu zeleně a připadáte si spíše jako v zahradě. Probíhá zde také iniciativa EcoCampus, jejíž vizí je být nejekologičtějším campusem na světě. Cílem je do roku 2020 snížit o 35 % množství používané energie, vody a odpadu. V praxi to znamená třeba větší pokrytí střech solárními panely, efektivnější systém klimatizace nebo nasazení samořiditelných elektrických autobusů pro přesun po areálu.

Trochu nevýhoda je poloha na úplném západě ostrova a izolace od zbytku města, do centra se jede autobusem a metrem přes hodinu. Od místních tak můžete slyšet výraz Pulau (malajsky ostrov) NTU. Dál na západ už je jen džungle a občas se stane, že vás v koupelně překvapí krajta nebo se dveřmi prokouše luskoun.

Na druhou stranu, pokud bydlíte na kolejích, do města skoro není potřeba jezdit, na kampusu je vše potřebné – supermarket, restaurace, food courty, fast-foody (McDonald’s, Subway, KFC, Dunkin‘ Donuts), kavárny (Starbucks, The Coffee Bean & Tea Leaf), kadeřnictví i pobočka banky. Pro sportovní rekreaci je k dispozici stadion, posilovna, tenisové kurty, bazén a běžecká trasa.

IMG_20161117_115350
Hall of Residence 3

IMG_20161116_185422
North Hill Food Court

IMG_20170119_194041
Školní McDonald’s

NTU se skládá z několika fakult, většina jich sídlí ve společné budově a sdílí přednáškové místnosti. Hlavní a nejstarší budova je rozdělena na 2 propojené části – North Spine a South Spine. Chodby jsou většinou z jedné strany otevřené, takže můžete přecházet mezi místnostmi nebo sedět u stolku a být pořád na čerstvém vzduchu. Architektonicky zajímavá je budova The Hive, otevřená v roce 2015. Vzhledem připomíná včelí úl nebo košíky s dim sum (tradiční čínské chuťovky). Uvnitř jsou menší třídy vybavené interaktivními tabulemi a kulatými stoly, u kterých sedí studenti po skupinách. Netradiční rozložení tříd má pomoci realizovat tzv. flipped classroom model, styl výuky založený na větší interaktivitě mezi studenty a učitelem. Za zmínku stojí ještě budova School of Art, Design & Media, která má na celé ploše střechy trávník.

IMG_20170127_121017 (2)
The Hive, „dim sum building“

IMG_20161124_115854
School of Art, Design & Media

Výuka

Délka bakalářského studia v Singapuru je obvykle 4 roky a pak jde většina rovnou pracovat, na magisterský program pokračuje málokdo. Doporučený průchod programem Computer Science je na NTU takový, že první 3 roky se studují povinné předměty, z toho jeden semestr je vyhrazen pro povinný internship. Poslední rok má každý specializované předměty podle svého oboru a pracuje na závěrečném projektu.

Styl výuky u většiny předmětů jsou klasické přednášky a cvičení. U některých předmětů jsou cvičení po menších skupinách, někde jen formou přednášky, kde učitel ukazuje řešení příkladů. Všechny přednášky jsou automaticky nahrávány a můžete si je kdykoliv pustit, ale cvičení se nenahrávají a odpovědi se nezveřejňují, takže se hodí tam být, protože podobné příklady se pak objeví ve zkoušce. V každém technickém předmětu jsme měli nějaký skupinový projekt, jehož výstupem bylo zpracovat několikastránkový report, popisující jak jsme postupovali a jakých jsme dosáhli výsledků.

[CZ4031] Database System Principles → A

Předmět zabývající se principy, na kterých funguje většina relačních databázových systémů. Ne z pohledu uživatele, ale vnitřního fungování databázového stroje. Vše od typů indexů (B+ Tree a Hash index), přes různé algoritmy pro implementaci databázových operátorů (selekce, projekce, vektorový součin, spojení) a optimalizace dotazů prováděné databázovým strojem. Posledním tématem byla správa transakcí a jak mohou být realizovány jejich ACID vlastnosti (atomicita, konzistence, nezávislost, trvanlivost) pomocí logování, zámků a dalších mechanismů. Součástí byly 2 skupinové projekty, které spočívaly v konstrukci SQL dotazů nad relativně velkou databází a následně vytvořením vhodných indexů, aby provedení dotazů bylo co nejrychlejší. Celkem zajímavý předmět, díky kterému jsem pochopil, co všechno probíhá mezi tím, co se předá databázi SQL dotaz a tím, kdy se vrátí výsledek.

pgadmin_query_plan
Vizualizace prováděcího plánu v pgAdmin

[CZ4032] Data Analytics And Mining → B+

Jaké je nejvíc trendy povolání pro 21. století? Data mining, nebo-li vytěžování znalostí z dat, je v současnosti hodně populární oblast, překrývající se statistikou, strojovým učením a databázovými systémy. Je možné ho využít třeba k optimalizaci marketingových kampaní, doporučování podobných produktů v e-shopech, detekci zneužití kreditních karet nebo v bioinformatice. Běžný postup spočívá v předzpracování dat, aplikaci vhodných algoritmů (typickými úlohami jsou vytěžování asociačních pravidel, klasifikace, regrese, shlukování a detekce anomálií) a vyhodnocení výsledků. V rámci skupinového projektu jsme si celý proces vyzkoušeli v praxi, náš tým se zabýval predikcí úspěchu studentů na základě demografických a sociálních ukazatelů a dalších atributů. Obsah přednášek a cvičení je založen na knížce Introduction to Data Mining.

infographic

[CZ4042] Neural Networks → B

Výzkum v oblasti umělých neuronových sítí (výpočetní model inspirovaný lidským mozkem) probíhá tak rychle, že obsah tohoto předmětu musí být každý rok upravován, aby zůstal aktuální. Jen během posledního roku se objevily následující aplikace: samořiditelná auta, přirozený překlad cizích jazyků, převod textu na řeč nebo přenesení uměleckého stylu na fotky. Naučili jsme se různé architektury neuronových sítí: Perceptron, Multi-layered Perceptron, Deep Convolutional Neural Network, Autoencoder, Self-Organizing Feature Maps, Principle Component Analysis, Hopfield Networks. Co se matematiky týče, stačila znalost vlastních čísel, parciálních derivací a násobení matic. Některé koncepty jsme si vyzkoušeli i v praxi. Využití MLP pro klasifikaci e-mailového spamu, predikce ceny nemovitostí v Kalifornii na základě jejich dispozic a polohy, rozpoznávání ručně psaných číslic pomocí konvoluční neuronové sítě a využití autoencoderu pro kompresi obrázků. Na přednáškách se probírala většinou jen teorie, ale byly dostupné ukázkové programy pro Matlab. Ten byl i doporučený k řešení úloh, ale mohli jsme se naučit a použít cokoliv. Já si na první úlohy nejdřív vyzkoušel Python s TensorFlow, ale konvoluční síť jsem musel kvůli výkonu trénovat na GPU v laboratoři, kde byl jen Matlab s Neural Network Toolboxem. Od příštího roku má předmět kompletně přejít na Python, který se většinou používá i v praxi.

lenet5
Konvoluční neuronová síť LeNet 5

[HE9091] Principles of Economics → B+

Základy mikroekonomie a makroekonomie podle knížky Principles of Economics. Prošli jsme většinu základních ekonomických pojmů – posuny nabídky a poptávky, elasticita poptávky, maximalizace zisku, externality, ekonomika veřejné politiky, výpočet HDP, nezaměstnanost, finanční trhy, bankovní systém, hospodářský cyklus, mezinárodní obchod a mnoho dalšího. Zase jsem si trochu rozšířil obzory a nějaké ty základy ekonomie by měl znát asi každý.

IMG_20170127_120534
Uvnitř The Hive, kde probíhala cvičení z ekonomie

[LC9001] Chinese Language Level 1 → B+

Singapur má 4 oficiální jazyky. Většinou se dá všude domluvit anglicky, druhým nejpoužívanějším je mandarinská čínština. Ta je zároveň i nepoužívanějším jazykem na světě vůbec. Za semestr jsme se naučili něco přes 100 základních znaků/slov. Gramatika je velmi jednoduchá, jazyk nemá žádné skloňování a časování, v podstatě stačí jen znát slova a skládat je za sebe ve správném pořadí. Výzva jsou čínské znaky, na závěrečný test ale naštěstí stačilo umět pinyin (přepis výslovnosti znaků do latinky). Další komplikací je, že čínština je tónový jazyk, každá slabika se dá vyslovit 4 různými tóny (tón udává, jak by se měla měnit výška hlasu při vyslovování slabiky – konstantní, nahoru, dolů, dolů a nahoru) a tím dostane úplně jiný význam. Hodiny byly celkem zábavné, občas jsme nahlédli do čínské kultury, ale hlavně jsme procvičovali poslech, konverzaci, gramatiku, v domácích úkolech i psaní.

IMG_20170127_121434
Chinese Heritage Centre

Zkoušky

Jak tu probíhají zkoušky? Zkouškové období trvá 3 týdny, každý předmět má předem daný termín a je jen jeden pokus. Zkouška většinou tvoří 60 % výsledného hodnocení, zbytek je práce v semestru. Hodnocení probíhá aplikací Gaussovy křivky, takže záleží, jak dopadnou ostatní. Během semestru tak nikdo netuší, jak na tom je, motivuje to tedy k co nejlepším výsledkům, ale také větší soutěživosti.

Může to vypadat, že jsem se pořád jen učil. Ale o víkendech jsem poznával Singapur, stihl jsem i výlet do Kuala Lumpur a na Pulau Bintan v Indonésii. V polovině semestru je tu tzv. recess week, kdy si místní studenti opakují učivo. Já mezitím jezdil na skútru a surfoval na Bali. #YOLO. Trochu mě tak překvapily docela dobré známky, které přišly měsíc po konci zkouškového.

Z ČVUT do Singapuru

Už před nástupem na VŠ jsem přemýšlel o tom, že bych si nějaký ten semestr vyzkoušel studovat v zahraničí. Je to skvělá příležitost rozšířit si obzory, poznat nové lidi, jinou kulturu a v neposlední řadě také zlepšit angličtinu.

Možnost hlásit se na mezinárodní programy je na ČVUT otevřená pro studenty od druhého ročníku. Způsobů, jak vycestovat, je více. Přes celoevropský program Erasmus se dá dostat na zajímavé školy po celé Evropě. Ale kdo by se chtěl podívat trochu dál, ČVUT má také tzv. mimoevropské bilaterální dohody (MBD) se školami po celém světě – od USA, Kanady, Austrálie až po Japonsko a Čínu.

Výběrové řízení pro MBD probíhá ve 4 kolech, kde v každém kole jsou v nabídce jiné země. Na přihlášce se uvádí vždy 3 školy, seřazené podle priority. Já se přihlásil na podzim minulého roku hned do prvního kola a z nabízených univerzit vybral:

  • Nanyang Technological University, Singapore – Nejrychleji rostoucí univerzita v žebříčku TOP 50, má velký moderní campus s množstvím zeleně a učí se tu celkem zajímavé předměty z oblasti machine learningu i s přesahem do ekonomie. V USA bych asi sice byl vystaven kvalitnější angličtině, ale Singapur mě lákal víc také kvůli své poloze a vlivu asijské kultury.
  • University of Wisconsin–Madison, USA – Největší a nejstarší univerzita ve Wisconsinu, asi nejprestižnější v USA, se kterou má ČVUT dohodu. Madison je celkem malé pěkné univerzitní město.
  • Union College, Schenectady, USA – Relativně malá, ale v USA také docela uznávaná univerzita.

Podle čeho se rozhodne, zda a kam vlastně pojedete? Hodnotí podle několika kritérií. Tím prvním je motivace. Součástí přihlášky je motivační dopis v angličtině, kde je potřeba vysvětlit, proč chcete jet do zahraničí, a ke každé univerzitě připsat nějaký smysluplný důvod, proč zrovna tam.

Dalším kritériem je písemný test z angličtiny. Ten obsahoval několik úkolů především na slovotvorbu, doplňování slov do textu, a nakonec jsme měli napsat esej na téma “old vs. modern, large vs. small universities”. Přišlo mi to celkem jednoduché, z testu jsem získal 19 bodů z 20. Následoval anglický pohovor ve dvojicích, kde jsme měli nejdříve říct něco o školách, které jsme si vybrali, a potom jsme se bavili o nějakém tématu souvisejícím s naším oborem, u mě to bylo konkrétně o tom, co je machine learning a kdo stál u zrodu počítačů. Z pohovoru jsem dostal 17 bodů z 20. Posledním kritériem je pak průměr za celé dosavadní studium.

Výsledek přijímacího řízení jsem se dozvěděl koncem ledna. Vyšla mi hned moje první volba, NTU v Singapuru, což mě celkem potěšilo. Tím jsem však byl pouze nominován ze strany ČVUT a nastalo ještě dlouhé čekání na vyjádření o přijetí od NTU. Měla by to být jen formalita, přesto nám ale bylo doporučeno, ať s nákupem letenek ještě počkáme. Uvítací dopis nakonec dorazil koncem května.

Tak jsem si koupil letenku, kufr, průvodce Lonely Planet, zařídil očkování, která se do asijských zemí doporučují, a odletěl. Všechno to bylo dost narychlo. Teď už jsem týden v Singapuru. Semestr tady totiž začíná už v srpnu a končí v listopadu, celý prosinec jsou prázdniny a druhý semestr začíná v lednu. A jelikož tu zůstávám na oba semestry, snad dokážu dostatečně proniknout do místní kultury. Určitě budou tedy následovat články o výuce na NTU a životě v Singapuru, lah!

Čtvrtý semestr na FIT ČVUT

Další semestr ukončen. Je vidět, že nejtěžší předměty už mám asi za sebou, protože tentokrát jsem zakončil zatím nejlepším průměrem za celé studium. Ale úplně bez práce to také nebylo. A co že jsem tento semestr studoval?

[BI-BEZ] Bezpečnost → B

Předmět se zabývá především kryptografií (věda o šifrování). Nejdříve se proberou matematické principy různých typů historických i v současnosti běžně používaných šifer, nahlédne se i do budoucnosti úvodem do kvantové kryptografie. Potom se prakticky jednotlivé šifrovací techniky vyzkouší při programovacích úlohách v C s využitím knihovny openssl, např. k zašifrování obrázkového souboru nebo ručnímu navázání šifrovaného spojení přes internet.

[BI-EP2] Efektivní programování 2 → A

Volné pokračování volitelného předmětu EP1. Tentokrát témata velmi úzce souvisí s paralelně zapsaným předmětem BI-GRA, takže jeho absolvování pomůže pochopit většinu algoritmů probíraných na přednáškách v onom předmětu. Forma je stejná jako u první části předmětu – řešení úloh z minulých ročníků programovací soutěže a následná diskuse různých řešení studentů. Předmět je ukončen semestrální prací, která spočívá ve vytvoření zadání vlastní úlohy, napsání referenčního řešení a přípravě testovacích dat. Je zajímavé se podívat na věci i z té druhé strany.

[BI-GRA] Grafové algoritmy a základy teorie složitosti → B

Docela zajímavý oborový předmět zabývající se různými grafovými algoritmy, které mají v praxi široké využití, od hledání nejkratší cesty na mapě po optimální rozvržení přednášek do místností. Bojoval jsem s ním však do poslední chvíle. Testy na cvičeních během semestru mi přišly dost těžké, především tím, že se na ně nedalo moc připravit. Nakonec jsem ale body dohnal na dvou programovacích úlohách, teoretickém midtermu a první části zkoušky. Na druhou část zkoušky se totiž také moc připravit nedalo, úkolem bylo analyzovat problém a navrhnout algoritmus pro co nejefektivnější řešení. Problém byl ale dost nepřiměřený tomu, co jsme dělali v semestru. A nebyl to jen můj pocit, úplně správné řešení totiž neměl nikdo.

[BI-OSY] Operační systémy → A

Základní principy fungování všech operačních systémů – komunikace mezi procesy a vlákny, přidělování výpočetního výkonu vláknům, stránkování operační paměti, principy fungování různých souborových systémů. Součástí hodnocení byly 2 programovací úlohy – implementace vícevláknového programu typu producent–konzument a simulace stránkování paměti. U zkoušky pak počítací příklady zaměřené na přesné pochopení jednotlivých oblastí.

[BI-PJP] Programovací jazyky a překladače → A

Další oborový předmět, kde pochopíte, k čemu byla všechna ta teorie v BI-AAG. Výstupem je semestrální práce, jejíž náplní je implementace frontend části překladače pro zjednodušený jazyk Pascal – tedy vytvoření lexikální analyzátoru, syntaktického analyzátoru a překlad do abstraktního syntaktického stromu backendu gcc. Pro plné bodové hodnocení bylo potřeba v jazyce podporovat základní konstrukty jako deklarace a přiřazení proměnné, pole, podmínky, cykly, funkce s parametry a rekurzivní volání.

[BI-PSI] Počítačové sítě → B

Tady jsme se naučili, jak funguje internet a prošli detailně všechny vrstvy modelu ISO/OSI. V laboratořích jsme pak teorii procvičovali konfigurací Cisco routerů. Programovací úlohy spočívaly v napsání TCP klienta a UDP serveru.

Zbývá mi teoreticky poslední rok, ale už teď vím, že si studium ještě o rok prodloužím. Na další dva semestry totiž odjíždím studovat do zahraničí. O tom ale asi napíšu více v dalším článku.

Třetí semestr na FIT ČVUT

Mám za sebou třetí semestr, což také znamená, že už jsem v polovině bakalářského studia. Třetí semestr je doba, kdy je dobré mít vybraný svůj studijní obor, protože tady se začínají lišit doporučené průchody studijním programem. Ještě před nástupem na FIT jsem měl představu, že budu studovat Softwarové inženýrství, praktický obor zaměřený na práci v týmu na reálných projektech.

Nakonec jsem se ale rozhodl pro obor Teoretická informatika. Proč? Nevěnuje se tu tolik času tomu, jak programovací jazyky a nástroje používat k tvorbě aplikací, ale spíše jak skutečně fungují a třeba i jak si vytvořit jazyk vlastní nebo rozšířit existující. Neučí se tedy věci, které mohou být jinak ještě než školu vystudujete, ale základy, na kterých to všechno stojí. Naučit se postavit něco nad tím už je pak podle mě záležitost samostudia a praxe.

[BI-AAG] Automaty a gramatiky → C

aag-strip Z tohoto předmětu je mezi studenty asi největší respekt. Jeho cílem je seznámit s hierarchií formálních jazyků, gramatik, kterými se dají tyto jazyky zapsat, a výpočetních modelů, které tyto jazyky přijímají. Od konečných automatů, přes zásobníkové automaty až k Turingovu stroji. Nakonec základy teorie složitosti a vymezení problémů, které už počítač vyřešit neumí.

Zkouška se skládá z rozstřelu, písemné části a ústní zkoušky. Je to první předmět, u kterého je ústní zkouška povinná součást a neslouží jen k vylepšení známky. Je tedy potřeba opravdu dobře všemu rozumět, umět formálně zapsat, ale i vysvětlit.

[BI-DBS] Databázové systémy → A

Calkem jednoduchý předmět pro každého, kdo někdy pracoval s databází. Začne se uvedením formálního systému relační algebry, která poskytuje teoretický aparát, který je základem všech relačních databázových systémů. Hlavním cílem předmětu je pak naučit se jazyk SQL a vyzkoušet si návrh a implementaci databáze v databázovém stroji Oracle.

[BI-EFA] Efektivní algoritmy → B

První oborový předmět, pojmenoval bych jej spíše Datové struktury. Po zopakování polí a spojových seznamů jsme se vrhli na rozptylovací tabulky, binomiální a Fibonacciho haldy, vyvažované vyhledávací stromy (B–stromy, AVL a Červeno-černé stromy). Během semestru nás čekaly 3 domácí úlohy v Progtestu, při kterých jsme si některé struktury zkusili implementovat. Jsou to sice věci, které člověk neprogramuje každý den, ale hodí se vědět, díky čemu fungují indexy databází nebo file systémů.

[BI-EP1] Efektivní programování 1

Na povinných programovacích předmětech mi vadilo, že nikdy nebylo zveřejněno vzorové řešení. Člověk tedy skoro vždy za úlohy nějaké body získal, ale nikdy se vlastně nedozvěděl, v čem spočívalo efektivní řešení. A říká se, že nejvíce se člověk naučí právě čtením cizího kódu.

I z tohoto důvodu se mi tak líbil tento volitelný předmět. Každých 14 dní je zveřejněno několik úloh převzatých z mezinárodní programovací soutěže ACM. První týden je na každém, aby zkusil vyřešit, co zvládne. Poté jsou na přednášce vysvětleny principy možných řešení, včetně ukázky kódu, a zveřejněna vstupní data. Další týden je pak možnost za menší počet bodů úlohy dopsat.

[BI-SI1] Softwarové inženýrství 1 → B

flowchartNa začátku semestru jsme se rozdělili do týmů, ve kterých jsme si pak vyzkoušeli kompletní proces vývoje informačního systému od sběru a analýzy požadavků, přes návrh až po jeho implementaci. Pro některé studenty je to asi první zkušenost s prací v týmu, používáním verzovacího nástroje a vývoje nějaké reálné aplikace. Já si z toho odnesl jen seznámení s UML notací a potvrdilo se mi, že Softwarové inženýrství jako obor by pro mě nebyla šťastná volba. Většinu těhle věcí se člověk zvládne naučit sám, nebo během prvních pár dní práce ve firmě.

[BI-ZDM] Základy diskrétní matematiky → B

Oproti předchozím semestrům celkem pohodová matematika. Prochází se základy z různých oblastí matematiky, které se nám mohou hodit v jiných předmětech. Matematická indukce, teorie množin, binární relace, kombinatorika, rekurentní rovnice a základy teorie čísel.

[BI-3DT] 3D Tisk → A

Zábavný volitelný předmět, kde si zkusíte postavit 3D tiskárnu, naučíte se programovat parametrické modely v OpenSCAD a pomocí slicovacího nástroje Slic3r připravovat modely pro tisk. Po absolvování předmětu se vám otevřou dveře do 3Dprint Labu, kam si můžete přijít cokoliv vytisknout.

Abych to shrnul, třetí semestr mi přišel v mnohém jednodušší a zajímavější než druhý, ale nic není zadarmo. Pokud však něčemu věnujete dostatečný čas, i zprvu obtížná látka nakonec začne dávat smysl a všechno do sebe zapadne.