Detail předmětu

Principy programovacích jazyků a OOP

FIT-IPPAk. rok: 2017/2018

Předmět nabízí základní klasifikaci programovacích jazyků s podrobnějším představením imperativních a deklarativních jazyků. V rámci imperativních jazyků budou představeny nestrukturované jazyky, blokově a modulárně strukturované jazyky i objektové paradigma. Z programovacích technik návrhové vzory. Úvod do funkcionálních a logických jazyků bude přednesen v rámci deklarativních jazyků. Budou též zmíněny teorie ležící v základu těchto paradigmat. Studenti budou také obeznámeni se způsoby zpracování jednotlivých typů programovacích jazyků.

Jazyk výuky

čeština

Počet kreditů

5

Výsledky učení předmětu

Studenti budou schopni rozlišovat typy a úroveň programovacích jazyků a orientovat se v problematice jak uživatelského zvládnutí daného paradigmatu, tak v problematice analýzy, či překladu daného typu programovacího jazyka.

Užití vybraných návrhových vzorů.

Prerekvizity

Formální jazyky a jejich modely, gramatiky, automaty; překlady/analýza formálních jazyků. Zaměření na regulární a bezkontextové jazyky a jejich modely, gramatiky, automaty a zpracování.

Způsob a kritéria hodnocení

Student musí během semestru získat alespoň 50% bodů z možného maxima, tj. 20 bodů ze 40.
Pokud bude odhaleno plagiátorství nebo nedovolená spolupráce na projektech, či u půlsemestrální zkoušky, zápočet nebude udělen a dále bude zváženo zahájení disciplinárního řízení.

Osnovy výuky

    Osnova přednášek:
    1. Úvodní vymezení pojmů a problematiky
    2. Úvod do imperativních jazyků - nestrukturované programovací jazyky
    3. Blokově strukturované jazyky
    4. Modulární jazyky
    5. Objektově orientované jazyky
    6. Některé zvláštnosti objektově orientovaných jazyků
    7. Návrhové vzory
    8. Úvod do deklarativních jazyků - lambda kalkul
    9. Funkcionální jazyky
    10. Logické programovací jazyky
    11. Další typy deklarativních jazyků, srovnání
    12. Hlavní rozdíly v práci a implementaci u imperativních a deklarativních jazyků
    13. Shrnutí tématu, diskuze navazujících předmětů

    Osnova ostatní - projekty, práce:
    Jednoduchý program, či programy/skripty psané v zadaném jazyce spolu s odpovídající dokumentací.

Učební cíle

Zvládnutí: orientace v programovacích jazycích, jednotlivých programovacích paradigmat, nároků na užití a zpracování jednotlivých typů jazyků.

Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky

  • Půlsemestrální zkouška - písemně, formou testu, kde odpovědi jsou tvořeny celými větami, neexistuje náhradní/opravný termín. (20 bodů)
  • Vypracování projektů - 1 projekt (implementace jednoho či více programů, dle zadání) s příslušnou dokumentací. (20 bodů)
  • Závěrečná zkouška - písemně, formou testu, kde odpovědi jsou tvořeny celými větami, 2 opravné termíny. (60 bodů - pro získání bodů ze zkoušky je nutné zkoušku vypracovat tak, aby byla hodnocena nejméně 25 body, v opačném případě bude zkouška hodnocena 0 body.)

Prerekvizity a korekvizity

Základní literatura

Sebesta R.W.: Concepts of Programming Languages, 4th edition, ADDISON-WESLEY, 1999, ISBN 0-201-38596-1MacLennan, B.J.: Principles of Programming Languages: Design, Evaluation, and Implementation (3rd Edition). Oxford University Press, 1999.

Doporučená literatura

Texty přednášek v elektronické podoběKolář, D.: Principy programovacích jazyků a objektově orientovaného programování - I, studijní opora pro kombinované studium, modul IPP I, VUT FIT, 2006Křivka, Z., Kolář, D.: Principy programovacích jazyků a objektově orientovaného programování - II, studijní opora pro kombinované studium, modul IPP II, VUT FIT, 2008Kolář, D.: Principy programovacích jazyků a objektově orientovaného programování - III, studijní opora pro kombinované studium, modul IPP III, VUT FIT, 2006

Zařazení předmětu ve studijních plánech

  • Program IT-BC-3 bakalářský

    obor BIT , 2 ročník, letní semestr, povinný

Typ (způsob) výuky

 

Přednáška

39 hod., nepovinná

Vyučující / Lektor

Osnova

  1. Úvodní vymezení pojmů a problematiky
  2. Úvod do imperativních jazyků - nestrukturované programovací jazyky
  3. Blokově strukturované jazyky
  4. Modulární jazyky
  5. Objektově orientované jazyky
  6. Některé zvláštnosti objektově orientovaných jazyků
  7. Návrhové vzory
  8. Úvod do deklarativních jazyků - lambda kalkul
  9. Funkcionální jazyky
  10. Logické programovací jazyky
  11. Další typy deklarativních jazyků, srovnání
  12. Hlavní rozdíly v práci a implementaci u imperativních a deklarativních jazyků
  13. Shrnutí tématu, diskuze navazujících předmětů

Projekt

13 hod., nepovinná

Vyučující / Lektor