Cvičenie č. 1 - Úvod, organizácia a opakovanie

Organizácia

Všetky organizačné záležitosti nájdete na stránke O cvičeniach.

Hrubá osnova:

  • jazyk C#
  • vývojové prostredie MS Visual Studio
    • písanie a ladenie programov
  • základy objektovo orientovaného programovania (OOP)
  • ďalšie užitočné algoritmy a prístupy
    • napr. dynamické programovanie
  • možno: okenné aplikácie, udalosti a grafika

Cvičenia Martina Mareša

  • výberové cvičenie pre pokročilých študentov v rámci NPRG031

Opakovanie

  1. Vysvetlite pojem algoritmus.
  2. Čo je to zložitosť algoritmu a asymptotická notácia?
    • Aké základné druhy zložitosti existujú?
  3. Aký je rozdiel medzi syntaktickou, behovou (runtime) a logickou chybou v programe?
  4. Čo je to syntax a sémantika progamovacieho jazyka?
  5. Vysvetlite pojmy identifikátor, premenná, typ premennej a konštanta.
  6. Ako sa líšia globálne a lokálne premenné?
  7. Čo sú to procedúry a funkcie, ako sa od seba líšia?
  8. Aký je rozdiel medzi predávaním parametru hodnotou vs. odkazom (referenciou)?
  9. Aké podmienené príkazy poznáte?
  10. Aké druhy cyklov poznáte a aké sú ich možnosti prerušenia?
  11. Čo je to aritmetické pretečenie a zaokrúhlovacia chyba?
  12. Aké triediace algoritmy poznáte? Uveďte myšlienu, časovú a pamäťovú zložitosť.
  13. Popíšte dátové štruktúry zásobník a fronta.
  14. Aké sú rozdiely medzi statickou alokáciou pamäti na zásobníku a dynamickou alokáciou na halde?
  15. Čo je to ukazateľ (pointer) určitého dátového typu?
  16. Čo sú dynamické dátové štruktúry? Uveďte príklady.
  17. Čo je to rekurzia? Čo je to koncová rekurzia? Dá sa rekurzii vyhnúť?
  18. Vysvetlite algoritmus prehľadávania do šírky (BFS) a do hĺbky (DFS).
    • Kedy je výhodné použiť BFS a kedy zas DFS?
    • Ako sa dajú naimplementovať?
  19. Na nejakom príklade vysvetlite metódu rozdelu ja panuj.
  20. Definujte dátovú štruktúru binárneho vyhľadávacieho stromu a binárnej haldy.
    • Aký je medzi nimi rozdieľ?
  21. Aká je základná myšlienka hash-ovania?
  22. Vysvetlite rozdiel medzi prefixovou, infixovou a postfixovou notáciou aritmetického výrazu.

Do ďalšieho cvičenia

  • Skontrolujte si, že ste v Codexe priradený do skupiny NPRG031-PZ-2016/2017.