Zkouška LS 2015 - 17.6.

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".
darthdeus
Matfyz(ák|ačka) level I
Příspěvky: 6
Registrován: 24. 2. 2014 16:49
Typ studia: Informatika Ph.D.
Bydliště: Praha
Kontaktovat uživatele:

Zkouška LS 2015 - 17.6.

Příspěvek od darthdeus »

Ze zkoušky jsem odcházel jako první, tak píšu jenom svoje dojmy. Jak dopadli ostatní to bohužel nevím :)

Jako jazyk jsem si vybral C++. Kryl říkal, že mi dá "standardní otázku", a to porovnat jak funguje OOP v C++ se zbytkem světa (ale nechtěl, abych vysvětloval co je to OOP, spíš jaké specifičnosti má v C++.) Po chvíli si ke mě sednul, a začal zpovídat ... relativně dost mě nechal mluvit, spíš když jsem domluvil tak se na něco zeptal, a bylo relativně dopředu vidět, na co se asi tak bude ptát (v závislosti na tom co jsem říkal.)

- vícenásobná dědičnost - co to je, jak to funguje, k čemu to je a co to má za problémy
- abstraktní třídy/virtuální metody (jak se to udělá a co to je)
- problémy u vícenásobné dědičnosti - jeho oblíbený diamond (ku*****a) pattern, kdy nastane
- jak se diamond pattern řeší virtuální dědičností, co je to virtuální dědičnost a jak to vypadá v paměti
- jak obecně vypadá dědičnost v paměti
- slicing a jak mu zabránit (na tohle se neptal přímo, ale nějak mě tam nasměroval to zmínit ... tak nevím jestli očekával že to víme, nebo myslel něco jiného)
- kdy potřebuju copy konstruktor/assignment, jestli má defaultní chování, jak funguje, kdy ho chci a kdy ho nechci, kdy se zavolá který z nich (ukázat kód)
- jak vynutit konkrétní konstruktor při inicializaci member proměnných
- a poslední relativně offtopic chtěl popsat v čem se liší C++ šablony od generics v C#/Javě (nevim jestli by se na tohle normálně zeptal, reagoval na to, že jsem to zmínil během předchozích otázek)

Zkouška byla relativně příjemná, docela se snažil abych odpověděl na všechno. Celkově to trvalo tipuju tak 15 minut, po kterých mě propustil s jedničkou. Docela mě překvapilo, jak u některých věcí šel do hloubky, ale když jsem občas nad nečím přemýšlel, tak říkal že nevadí pokud to nebudu vědet.
Odpovědět

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