456-0524/01 – Programovací techniky (PTE)

Garantující katedraKatedra informatikyKredity6
Garant předmětuIng. Marek Běhálek, Ph.D.Garant verze předmětuIng. Marek Běhálek, Ph.D.
Úroveň studiapregraduální nebo graduálníPovinnostpovinný
Ročník2Semestrzimní
Jazyk výukyčeština
Rok zavedení1999/2000Rok zrušení2009/2010
Určeno pro fakultyFEIUrčeno pro typy studiabakalářské
Výuku zajišťuje
Os. čís.JménoCvičícíPřednášející
BEH01 Ing. Marek Běhálek, Ph.D.
FAB038 Ing. Tomáš Fabián, Ph.D.
GAU01 Ing. Jan Gaura, Ph.D.
NAV79 Ing. Lumír Návrat
SIK107 Ing. Rostislav Sikora
Rozsah výuky pro formy studia
Forma studiaZp.zak.Rozsah
prezenční Zápočet a zkouška 2+2
kombinovaná Zápočet a zkouška 2+2

Cíle předmětu vyjádřené dosaženými dovednostmi a kompetencemi

Studenti si prohloubí znalosti pokročilých programovacích technik a postupů a získají zkušenosti při jejich praktickém použití na konkrétních úlohách. Po absolvování předmětu studenti rovněž zvládnou volbu vhodné komponentní technologie pro řešení rozsáhlejších problémů a budou schopni komponent ve svých aplikacích prakticky použít. Také se seznámí a prakticky si vyzkouší řadu nástrojů pro tvorbu aplikací.

Vyučovací metody

Anotace

Předmět pokrývá oblast metod návrhu a realizace programových aplikací, jejich testování a dokumentace. Studenti se seznámí s principy komponentních technologií a získají praktické dovednosti při používání samostatných i integrovaných vývojových nástrojů. V rámci výuky studenti také získají zkušenosti s nástroji pro vývoj, testování a dokumentaci programů. Tyto zkušenosti pak mohou využít při tvorbě vlastrních aplikací.

Povinná literatura:

Běhálek M.:Skripta k předmětu PTE, dostupné na www.cs.vsb.cz/behalek/vyuka/pte

Doporučená literatura:

Campione, Walrath, Huml: The Java Tutorial - A Short Course on the Basics. Addison-Wesley, 2000, ISBN 0201703939. Materiály dostupné na WWW: msdn.microsoft.com, java.sun.com

Forma způsobu ověření studijních výsledků a další požadavky na studenta

Podmínky udělení zápočtu: Pro udělení zápočtu je třeba získat alespoň 21 bodů za realizaci dvou projektů. Podmínkou pro udělení zkoušky je písemný test, kde musí studenti získat nejméně 25 bodů z možných 55 bodů.

E-learning

Další požadavky na studenta

Prerekvizity

Předmět nemá žádné prerekvizity.

Korekvizity

Předmět nemá žádné korekvizity.

Osnova předmětu

Přednášky: Úvod: Cíle a náplň předmětu, požadavky, organizace cvičení, literatura. Klasifikace programovacích jazyků. Účel a základní aplikace překladačů. Zdrojový a cílový jazyk. Popis programovacích jazyků. Formální metody pro popis syntaxe a sémantiky. Historie programovacích jazyků a překladačů: Teoretická východiska. První programovací jazyky a překladače. Vyšší programovací jazyky. Strukturované programování. Modulární jazyky. Objektově-orientované jazyky. Skriptovací jazyky. Funkcionální a logické programovací jazyky: Deklarativní styl programování, jeho výhody a nevýhody. Základy lambda kalkulu. Praktická implementace jednoduchých úloh v programovacím jazyce Haskel. Skriptovací jazyky: Popis odlišnosti od tradičních jazyků. Základní představitele. Praktické ukázky skriptovacích jazyků. Stručný úvod do programovacího jazyka PHP. Imperativní programovací jazyky: Základní principy. Jiná paradigmata programování. Objektově orientované programování: Shrnutí základních principů. Méně obvyklé objektově orientované programovací jazyky. Programování založené na prototypech. Struktura a funkce překladače: Modely zdrojového kódu, transformace. Organizace překladače - fáze překladu, průchod. Jednoprůchodové a optimalizující překladače. Pomocné programy. Testování a údržba překladače. Lexikální analýza: Funkce lexikálního analyzátoru, implementace lexikálního analyzátoru. Syntaktická analýza: Účel a metody syntaktické analýzy. Analýza shora dolů a zdola nahoru. LL(1) gramatiky, výpočet množin FIRST a FOLLOW. Rozkladová tabulka. Implementace syntaktického analyzátoru: Analýzu rekurzivním sestupem. Nástroje pro generování překladačů (jako příklad JavaCC) Syntaxí řízený překlad: Překladová gramatika, atributová překladová gramatika. Implementace atributového překladu při analýze shora dolů. Tabulka symbolů a struktura programu v době běhu: Základní pojmy - vazba, rozsah platnosti, viditelnost, doba života. Funkce tabulky symbolů, blokově strukturovaná tabulka symbolů. Implementace. Systém řízení běhu programu. Podprogramy - aktivace, statická a dynamická struktura, aktivační záznam. Organizace paměti, přidělování paměti pro aktivační záznamy, přístupové ukazatele. Poslední fáze při překladu: Generování vnitřní reprezentace programu (formáty vnitřní reprezentace - graf, zásobníkový kód, tříadresový kód), Provádění optimalizaci (základní rozdělení optimalizací, příklady různých optimalizací), generování cílového kódu. Projekty: V předmětu budou realizovány dva projekty. První projekt bude realizace vybrané úlohy v nějakém méně známém programovacím jazyce. Druhý projekt pak bude jednoduchý překladač. Počítačové laboratoře: Řešení problémů s využitím různých paradigmat na základě intuitivního zavedení potřebných jazykových konstrukcí Ukázky deklarativního stylu programování. Praktické realizace jednoduchých úloh v programovacím jazyce Haskell. Praktická realizace úloh v jazyce Haskel. Skriptovací jazyky: Praktická realizace jednoduchých úloh ve skriptovacím jazyce PHP Imperativní a objektové jazyky: Ukázky netradičních programovacích jazyků a různých paradigmat pro programování. Praktická tvorba programů v nějakém netradičním jazyce, vytváření vlastních jednoduchých příkladů. Samostatná práce na prvním projektu. Možnost konzultací prvního projektu. Implementace jednoduchých filtrů a lexikálního analyzátoru. Realizace příkladů gramatik pro základní syntaktické konstrukce (opakování, opakování s oddělovačem, složitější konstrukce). Převod gramatiky s regulárními výrazy na standardní tvar. Implementace algoritmů pro výpočet množin FIRST a FOLLOW. Demonstrace činnosti syntaktického analyzátoru LL(1) a LR(1). Implementace překladače rekurzivním sestupem. Implementace lexikálního a syntaktického analyzátoru s využitím programu JavaCC. Samostatná práce na druhém projektu.

Podmínky absolvování předmětu

Kombinovaná forma (platnost od: 2008/2009 zimní semestr)
Název úlohyTyp úlohyMax. počet bodů
(akt. za podúlohy)
Min. počet bodů
Zápočet a zkouška Zápočet a zkouška 100 (100) 51
        Zápočet Zápočet 45 (45) 21
                1. test Laboratorní práce 9  0
                2. test Laboratorní práce 9  0
                3. test Laboratorní práce 9  0
                Závěrečný test Laboratorní práce 18  0
        Zkouška Zkouška 55  25
Rozsah povinné účasti:

Zobrazit historii

Výskyt ve studijních plánech

Akademický rokProgramObor/spec.Spec.FormaJazyk výuky Konz. stř.RočníkZLTyp povinnosti
2009/2010 (B2646) Informační technologie (2612R025) Informatika a výpočetní technika P čeština Ostrava 2 povinný stu. plán
2009/2010 (B2646) Informační technologie (2612R059) Mobilní technologie P čeština Ostrava 2 povinný stu. plán
2009/2010 (B2646) Informační technologie (2612R025) Informatika a výpočetní technika K čeština Ostrava 2 povinný stu. plán
2009/2010 (B2646) Informační technologie (2612R059) Mobilní technologie K čeština Ostrava 2 povinný stu. plán
2008/2009 (B2646) Informační technologie (2612R025) Informatika a výpočetní technika P čeština Ostrava 2 povinný stu. plán
2008/2009 (B2646) Informační technologie (2612R025) Informatika a výpočetní technika K čeština Ostrava 2 povinný stu. plán
2008/2009 (B2646) Informační technologie (2612R059) Mobilní technologie P čeština Ostrava 2 povinný stu. plán
2008/2009 (B2646) Informační technologie (2612R059) Mobilní technologie K čeština Ostrava 2 povinný stu. plán
2008/2009 (B2647) Informační a komunikační technologie (1103R031) Výpočetní matematika P čeština Ostrava 2 povinný stu. plán
2008/2009 (B2647) Informační a komunikační technologie (1103R031) Výpočetní matematika K čeština Ostrava 2 povinný stu. plán
2008/2009 (B2647) Informační a komunikační technologie (2601R013) Telekomunikační technika P čeština Ostrava 2 povinný stu. plán
2008/2009 (B2647) Informační a komunikační technologie (2601R013) Telekomunikační technika K čeština Ostrava 2 povinný stu. plán
2008/2009 (B2647) Informační a komunikační technologie (2612R025) Informatika a výpočetní technika P čeština Ostrava 2 povinný stu. plán
2008/2009 (B2647) Informační a komunikační technologie (2612R025) Informatika a výpočetní technika K čeština Ostrava 2 povinný stu. plán
2008/2009 (B2647) Informační a komunikační technologie (2612R059) Mobilní technologie P čeština Ostrava 2 povinný stu. plán
2008/2009 (B2647) Informační a komunikační technologie (2612R059) Mobilní technologie K čeština Ostrava 2 povinný stu. plán
2007/2008 (B2646) Informační technologie (2612R025) Informatika a výpočetní technika P čeština Ostrava 2 povinný stu. plán
2007/2008 (B2646) Informační technologie (2612R025) Informatika a výpočetní technika K čeština Ostrava 2 povinný stu. plán
2007/2008 (B2646) Informační technologie (2612R059) Mobilní technologie P čeština Ostrava 2 povinný stu. plán
2007/2008 (B2646) Informační technologie (2612R059) Mobilní technologie K čeština Ostrava 2 povinný stu. plán
2007/2008 (B2647) Informační a komunikační technologie (1103R031) Výpočetní matematika P čeština Ostrava 2 povinný stu. plán
2007/2008 (B2647) Informační a komunikační technologie (1103R031) Výpočetní matematika K čeština Ostrava 2 povinný stu. plán
2007/2008 (B2647) Informační a komunikační technologie (2601R013) Telekomunikační technika P čeština Ostrava 2 povinný stu. plán
2007/2008 (B2647) Informační a komunikační technologie (2601R013) Telekomunikační technika K čeština Ostrava 2 povinný stu. plán
2007/2008 (B2647) Informační a komunikační technologie (2612R025) Informatika a výpočetní technika P čeština Ostrava 2 povinný stu. plán
2007/2008 (B2647) Informační a komunikační technologie (2612R025) Informatika a výpočetní technika K čeština Ostrava 2 povinný stu. plán
2007/2008 (B2647) Informační a komunikační technologie (2612R059) Mobilní technologie P čeština Ostrava 2 povinný stu. plán
2007/2008 (B2647) Informační a komunikační technologie (2612R059) Mobilní technologie K čeština Ostrava 2 povinný stu. plán
2006/2007 (B2646) Informační technologie (2612R025) Informatika a výpočetní technika P čeština Ostrava 2 povinný stu. plán
2006/2007 (B2646) Informační technologie (2612R025) Informatika a výpočetní technika K čeština Ostrava 2 povinný stu. plán
2006/2007 (B2646) Informační technologie (2612R059) Mobilní technologie P čeština Ostrava 2 povinný stu. plán
2006/2007 (B2646) Informační technologie (2612R059) Mobilní technologie K čeština Ostrava 2 povinný stu. plán
2006/2007 (B2647) Informační a komunikační technologie (1103R031) Výpočetní matematika P čeština Ostrava 2 povinný stu. plán
2006/2007 (B2647) Informační a komunikační technologie (1103R031) Výpočetní matematika K čeština Ostrava 2 povinný stu. plán
2006/2007 (B2647) Informační a komunikační technologie (2601R013) Telekomunikační technika P čeština Ostrava 2 povinný stu. plán
2006/2007 (B2647) Informační a komunikační technologie (2601R013) Telekomunikační technika K čeština Ostrava 2 povinný stu. plán
2006/2007 (B2647) Informační a komunikační technologie (2612R025) Informatika a výpočetní technika P čeština Ostrava 2 povinný stu. plán
2006/2007 (B2647) Informační a komunikační technologie (2612R025) Informatika a výpočetní technika K čeština Ostrava 2 povinný stu. plán
2006/2007 (B2647) Informační a komunikační technologie (2612R059) Mobilní technologie P čeština Ostrava 2 povinný stu. plán
2006/2007 (B2647) Informační a komunikační technologie (2612R059) Mobilní technologie K čeština Ostrava 2 povinný stu. plán
2005/2006 (N2646) Informační technologie (2612T025) Informatika a výpočetní technika P čeština Ostrava 1 povinný stu. plán
2005/2006 (B2646) Informační technologie (2612R025) Informatika a výpočetní technika P čeština Ostrava 2 povinný stu. plán
2005/2006 (B2646) Informační technologie (2612R025) Informatika a výpočetní technika K čeština Ostrava 2 povinný stu. plán
2005/2006 (N2646) Informační technologie (2612T025) Informatika a výpočetní technika K čeština Ostrava 1 povinný stu. plán
2005/2006 (B2646) Informační technologie (2612R059) Mobilní technologie P čeština Ostrava 2 povinný stu. plán
2005/2006 (B2646) Informační technologie (2612R059) Mobilní technologie K čeština Ostrava 2 povinný stu. plán
2004/2005 (N2646) Informační technologie (2612T025) Informatika a výpočetní technika P čeština Ostrava 1 povinný stu. plán
2004/2005 (B2646) Informační technologie (2612R025) Informatika a výpočetní technika P čeština Ostrava 2 povinný stu. plán
2004/2005 (B2646) Informační technologie (2612R025) Informatika a výpočetní technika K čeština Ostrava 2 povinný stu. plán
2004/2005 (N2646) Informační technologie (2612T025) Informatika a výpočetní technika K čeština Ostrava 1 povinný stu. plán
2004/2005 (B2646) Informační technologie (2612R059) Mobilní technologie P čeština Ostrava 2 povinný stu. plán
2004/2005 (B2646) Informační technologie (2612R059) Mobilní technologie K čeština Ostrava 2 povinný stu. plán
2003/2004 (N2646) Informační technologie (2612T025) Informatika a výpočetní technika P čeština Ostrava 1 povinný stu. plán
2003/2004 (B2646) Informační technologie (2612R025) Informatika a výpočetní technika P čeština Ostrava 2 povinný stu. plán
2003/2004 (B2646) Informační technologie (2612R025) Informatika a výpočetní technika K čeština Ostrava 2 povinný stu. plán
2003/2004 (N2646) Informační technologie (2612T025) Informatika a výpočetní technika K čeština Ostrava 1 povinný stu. plán

Výskyt ve speciálních blocích

Název blokuAkademický rokForma studiaJazyk výuky RočníkZLTyp blokuVlastník bloku