Charles Explorer logo
🇨🇿

Napište si vlastní programovací mini-systém(y)!

Předmět na Matematicko-fyzikální fakulta |
NPRG077

Sylabus

Kurz bude zahrnovat radu technik, algoritmu a systému relevantních pro imperativní, funkcionální, objektove orientované a další programovací paradigmata. Obsah kurzu bude prizpusoben zájmum studentu. Typická osnova bude zahrnovat témata jako např.:

*Imperativní programování

- Emulace prehistorického pocítacového systému (EDSAC)

- Programování s GOTO, PEEK a POKE (BASIC)

*Funkcionální programování

- Implementace malého interpretru jazyka LISP (LISP)

- Ruzné zpusoby interpretace funkcionálních jazyku (ML)

- Implementace Hindley-Milner algoritmu pro inferenci typu (ML)

*Objektově orientované programování

- Vytvorení minimálního ciste objektove orientovaného systému (Smalltalk)

- Pridávání schopnosti reflexivního programování (Smalltalk)

- OO programování založené na trídách vs. prototypech

*Další programovací techniky

- Implementace unifikacního algoritmu (Prolog)

- Techniky implementace tabulkových procesoru (Excel)

- Funkcionálně reaktivní programování (Elm)

Anotace

Cílem předmětu je naučit, jak fungují základní techniky, algoritmy a systémy na kterých stojí různé programovací jazyky tím, že od základu implementujeme jejich miniaturní verze. Předmět pokrývá různá programovacích paradigmata včetně funkcionálního, objektově orientovaného, imperativního a logického až po systémy pro koncové uživatele jako jsou tabulkové procesory.

Příklady budou používat programovací jazyk F#, který bude krátce představen. Předmět je vyučován jednou za dva roky a jeho výuka alternuje s předmětem NPRG075.