Zkouška 24.5.2019

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
awk
Matfyz(ák|ačka) level II
Příspěvky: 56
Registrován: 21. 5. 2018 18:54
Typ studia: Informatika Bc.

Zkouška 24.5.2019

Příspěvek od awk »

Na zkoušce jsem byl sám — individuální domluva s Krylem.

Před zkouškou:
Zadal mi stejnou otázku viz http://forum.matfyz.info/viewtopic.php?f=211&t=10528. Neptal se jestli umím jazyk prakticky nebo teoreticky.
Jako již na poslední přednášce Kryl opět opakoval, že očekává souvislý přednes od nejpodstatnějšího k nejméně podstatnému, dal mi papír s neomezeným časem na přípavu a zdůraznil, že nehodnotí obsah na papíru, avšak, že ho nepovinně mohu použít k nějakým ukázkám kódu, když se mi bude zdát, že je to vhodné.

Průběh zkoušky:
Vzhledem k tomu, že jsem si před zkouškou pročítal fórum :D tak jsem tuto otázku očekával (Kryl ji skoro vždy zadává pokud zkouší pouze jednoho člověka z C++). Na papíru jsem prakticky měl pouze osnovu mého povídání vytvořenou na základě odkazu výše. Bod po bodu jsem jednotlivé témata popisoval do všech detailů, které jsem znal. To se Krylovi velmi líbilo, a tak jsem do povídání přidal i nějakou novinku z nových standardů, nevadilo mu ani zabývat se nějakými "corner cases", polemizovat o nich a říct na ně svůj vlastní názor. To trvalo okolo 15 minut, po kterých měl propustil s jedničkou.

Pozorování:
  • Kryl nedefinuje co je podstatné a není, ale u C++ to je viz odkaz (je třeba vždy nakreslit ku*****u a popsat ji).
  • Kryl se uplně nevyzná ve standardech C++{11,14,17}, pravděpodobně by se mu nelíbilo, kdyby jste pouze popisovali věci týkající se nich.
  • Opravdu je důležité mluvit souvisle a zbrkle nepřeskakovat mezi tématy, doporučuji si během přípravy rozmyslet čím chci začít, čím pokračovat a kde skončit.
  • Pokud víte nějakou zajímavost, která se týká toho o čem mluvíte nebojte se ji přednést (např. pure virtual funkce může mít definici, final není klíčové slovo,...).
  • Pokud bude spokojený, k obecným otázkám vůbec nedojde.
Studijní materiály ke zkoušce: Čermu se vyhnout:
Kryl tak nenápadně (i když říkal, že ji nečetl) na přednášce doporučoval knížku od Bruce Eckela (Thinking in C++), Krylovi se totiž líbila knížka Thinking in Java. Bohužel však Thinking in C++ obsahuje netriviální množství triviálních chyb.

Oficiální požadavky ke zkoušce:
Odpovědět

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