Zkouška LS 2015

Přednáška je vhodná především pro studenty informatiky - jak odborného, tak i učitelského studia, mohou ji však navštěvovat i posluchači jiných oborů, kteří se hlouběji zajímají o programování. Přednáška předpokládá u posluchačů znalosti základů programování, programovacích jazyků Pascal (včetně objektového programování v něm), C a C++ a některého neprocedurálního jazyka - nejlépe Prologu. Složení příslušných zkoušek však není vstupní podmínkou. Na přednášce se společně zamyslíme nad vývojem metodiky programování (strukturované, modulární, objektové, event-driven, logické, funkcionální,... programování) a nad tím, jak se tyto koncepty projevily v nejdůležitějších programovacích jazycích. Půjde nám o souvislosti, ne o detaily nebo přesný historický popis vývoje. Při výběru programovacích jazyků budeme větší pozornost věnovat těm, které se skutečně "ujaly v praxi".
Uživatelský avatar
petrroll
Matfyz(ák|ačka) level I
Příspěvky: 12
Registrován: 23. 5. 2015 22:27
Typ studia: Informatika Bc.

Zkouška LS 2015

Příspěvek od petrroll »

Pár věcí obecně:

1) Všech se nás první zeptal jak hodně v tom jazyku umíme. Když člověk řek', že v něm spíš programoval, tak dostal víc praktickou otázku, vice versa.
2) Dokud člověk nedělal chyby & vyčerpával téma, tak šlo vcelku určovat kam se bude diskuze ubírat.
3) Jamile ale člověk začal dělat chyby / Krylovi se zdálo, že něco přeskočil (např. řekl, že jsou v python lib. dlouhá čísla ale už neřekl, jak jsou implementovaná), tak ho přerušil a žádal vysvětlení.
4) Při vysvětlování je lepší se zastavit a pořádně promyslet. Když člověk hned na začátku řekne nějakou (byť jen částečně) blbost, tak už nemusí dostat možnost se opravit; Kryl přeskočí na další téma.
5) Je velká výhoda mluvit (v Pythonu) o věcech co nezná, daleko míň pak člověka přerušuje. Jinak má (byť k věci) vcelku dloubavé otázky.
6) Člověk měl libovolně dlouho na přípravu na papír, následně si k němu Kryl sedl a povídal si s ním. Když se člověk zasekl, tak odešel k jinému člověku, a případně se pak vrátil.

A teď konkrétně:

Na základě toho, že znám python spíš teoreticky jsem dostal za otázku: "Typy v pythonu, jak a proč jsou tak implementované, a obecně v čem je python jiný (lepší / horší)". Začal jsem o tom, že je tam všechno objekt, že každý objekt je v podstatě namespace (dictionary), jak funguje dědičnost, lookup funkcí a proměnných v namespacech, zabalování funkcí do metod, speciální třídy, build in třídy, ... O tomhle jsem (s jedním drobným vyrušením) mluvil asi 15-20 minut v kuse a odešel s jedničkou.

Kolega (nevím přesně jak to bylo):

Na základě toho, že zná python tak nějak pratkicky/teoreticky na půl dostal otázku "Datové typy v pythonu". Začal povídat o tom jaké tam jsou, u čísel ho kryl dostal na to, jak přesně jsou reprezentovaná dlouhá čísla, obdobně pak u desetiných čísel (jestli je jinak udělaná vědecká & normální notace). U kolekcí vcelku dobré, jen ho nenechal moc rozpovídat o zajímavostech např. slicing (které mě docela prošly). Dále u dědičnosti ho dostal na to, jak se liší vícenásobná dědičnost v Pythonu a C++ (nevíme jak je to v C++, ale prý je to obecná znalost). Podut mu řekl, že prý má z té první části 1-2, ale ještě se ho zeptá na nějaké další otázky.

Zeptal se na rozdíl mezi předávání parametrem & hodnotou, na což mu nebylo sice odpovězeno špatně, ale tak nějak, že z toho nebylo úplně jasné co tím bylo myšleno. To kryl odbyl s tím, že je to blbost, a že si to má ještě rozmyslet. V ten moment byl bohužel už kamarád trochu vykolenej a řek' mu ještě jednu blbost. To Kryl (jak už to bývá) odbyl a nedal mu možnost se opravit na něco rozumnějšího a raději si řekli, že se uvidí příště.

Další kolega (už vůbec nevím jak to bylo):

Protože umí Python hodně prakticky, tak dostal za úkol naprogramovat krátké příklady, které ukáží sílu a slabiny vestavěných python typů. Nevím jak mu to šlo, ale vyhodil ho na tom, že neuměl vícenásobnou (pořádně) dědičnost.

Předposlední kolega:

Jedinej měl C++, dostal otázku na to, jak je v Cpp implementované OOP (ne, co je to OOP, ale jak to v Cpp). Dal to na 1, jak si vedl netuším (ale asi ne špatně, že).

Poslední kolega:

Z Pythonu dostal za úkol vysvětlit základy Pythonu, jako kdyby to říkal někomu, kdo Python nikdy neviděl. Jak dopadl netuším, protože už jsem odešel.
Odpovědět

Zpět na „PRG003 Metodika programování a filozofie programovacích jazyků“