Ing. Zdeněk Čulík

e-mail: zobrazit e-mail
telefon: +420 22435 8546
místnost: 107b
 
rozvrh
předmět kód vyučující zs ls zs kr. ls kr.
Jednoduché překladače01JEPR Čulík - - 2 z - 2
Předmět:Jednoduché překladače01JEPRIng. Čulík Zdeněk-2 Z-2
Anotace:Lexikální a syntaktická analýza, generování kódu, jednoduché optimalizace, principy integrovaných vývojových prostředí, dynamické identifikace typů.
Osnova:1. Lexikální a syntaktická analýza zdrojových textů některých programovacích jazyků (Pascal, C++, Java)
2. Datové struktury používané pro uložení a zpracování výrazů, příkazů, typů a deklarací
3. Programy pro generování překladačů (Lex, Yacc, ANTLR)
4. Jednoduché optimalizace
5. Generování kódu, sestavování knihoven a proveditelných souborů
6. Principy integrovaných vývojových prostředí, vliv dynamické identifikace typů na vývojová prostředí
Osnova cvičení:1. Příklad lexikální analýzy napsané v jazyce C
2. Ručně psaný sémantický analyzátor
3. Zpracování typů a deklarací, využití v programátorských vývojových prostředích
4. Generování sémantické analýzy s využitím programu ANTLR
5. Příklady jednoduchého generování kódu, přidělování registrů
6. Přídavné moduly pro překladače GCC a LLVM/CLang
Cíle:Znalosti:
Struktura překladačů programovacích jazyků, generování strojového kódu, strojový překlad do jiného programovacího jazyka.

Schopnosti:
Naprogramovat syntaktickou a sémantickou analýzu jednoduchého programovacího jazyka s využitím moderních nástrojů pro zpracování gramatik.
Požadavky:
Rozsah práce:Samostatná práce studentů je zaměřena na získání praktických zkušeností s programem ANTLR pro zpracování gramatik programovacích jazyků.
Kličová slova:Programovací jazyky, překladače.
Literatura:Povinná literatura:
[1] N. Wirth: Compiler Construction, Addison Wesley, 1996

Doporučená literatura:
[2] S. Pemberton, M. Daniels: Pascal Implementation: The P4 Compiler, Prentice Hall, 1983
[3] D. Grune, C. Jacobs: Parsing Techniques - A Practical Guide, Ellis Horwood, 1990
[4] http://www.antlr.org

Programování periferií01PERI Čulík 2+0 z - - 2 -
Předmět:Programování periferií01PERIIng. Čulík Zdeněk2+0 Z-2-
Anotace:Organizace operační paměti, vstupních a výstupních portů, sběrnice v počítačích.
Knihovny pro práci s periferiemi,
zejména knihovny pro třírozměrnou grafiku.
Základy programování ovladačů periferijních zařízení.
Osnova:1. Adresování paměti a periferních zařízení
2. Přerušení a řadiče přerušení
3. Klávesnice (služby subsystému BIOS, I/O porty, základy jednoduchého programu pro ovládání klávesnice), sériová komunikace, video adaptéry
4. Příklady grafických programů v OpenGL a příklady využívající knihovnu Open Inventor
5. Diskové služby (rozhraní IDE a SCSI)
6. Stručný úvod do programování ovladačů periferních zařízení v operačních systémech Windows a Linux
7. Význam operačních systémů pracujících v reálném čase
Osnova cvičení:
Cíle:Znalosti:
Přehled metod pro programování hardwaru. Seznámení se s knihovnami pro konkrétní periferii.

Schopnosti:
Naprogramovat aplikaci využívající co nejlépe hardwarové možnosti konkrétní periferie.
Požadavky:
Rozsah práce:Individuální práce studentů sestává z jednoduchých programů komunikujících s periferiemi (například s grafickou kartou nebo klávesnicí).
Kličová slova:Periferie, ovladače zařízení.
Literatura:Povinná literatura:
[1] A. Rubini, J. Corbet: Linux Device Drivers, O Reilly, 2001
[2] D. Shreiner, T. Davis, M, Woo, J. Neider: OpenGL Programming Guide: The Official Guide to Learning OpenGL, Pearson Education, 2003

Doporučená literatura:
[3] T. Shanley, D. Anderson: PCI System Architecture, Addison-Wesley, 1999
[4] Friedheim Schmidt: The SCSI Bus and IDE Interface: Protocols, Applications and Programming, Addison-Wesley, 1997
[5] http://oss.sgi.com/projects/inventor/

Programování pro Windows01PW Čulík 2+0 z - - 2 -
Předmět:Programování pro Windows01PWIng. Čulík Zdeněk2+0 Z-2-
Anotace:Tvorba grafického uživatelského rozhraní pro MS Windows. Základní ovládací prvky. Práce se soubory. Uživatelem definované komponenty a jejich návaznost na dynamickou identifikaci typů a reflexi.
Osnova:1. Tvorba grafického uživatelského rozhraní v jazyce C#
2. Programování základních ovládacích prvků
3. Práce s obrazovými daty. Ukládání informací ve formátu XML
4. Přístup k databázím
5. Programování komponent vývojového prostředí Visual Studio
6. Význam dynamické identifikace typů pro vývojová prostředí
Osnova cvičení:
Cíle:Znalosti:
Programovací jazyk C#, platforma .NET, aplikace s grafickým uživatelským rozhraním pro MS Windows.

Schopnosti:
Navrhnout a naprogramovat aplikaci v jazyce C#.
Požadavky:
Rozsah práce:Studenti samostatně naprogramují aplikaci s grafickým uživatelským rozhraním v jazyce C#.
Kličová slova:Win32, .Net, C#, Visual Studio.
Literatura:Povinná literatura:
[1] C. Petzold, Programování Microsoft Windows Forms v jazyce C#, Praha, Computer Press, 2006

Doporučená literatura:
[2] M. Virius, C# pro zelenáče, Praha, Neocortex, 2002
[3] C. Petzold, .NET Book Zero, http://www.charlespetzold.com/dotnet/
[4] http://msdn.microsoft.com/

Softwarový seminář 1, 201SOS12 Čulík 0+2 z 0+2 z 2 2
Předmět:Softwarový seminář 101SOS1Ing. Čulík Zdeněk0+2 Z-2-
Anotace:Programovací jazyk Java, Java Beans,
Programování v jazyce symbolických instrukcí mikroprocesorů Intel 80x86.
Osnova:1. Úvod do programování v jazyce Java.
2. Programování komponent grafického rozhraní (Java Beans).
3. Úvod do programování v jazyce symbolických instrukcí mikroprocesorů Intel 80x86.
4. Registry, adresování.
5. Jednotlivé instrukce, kódování instrukcí.
6. Volání podprogramů, numerický koprocesor, instrukce MMX.
7. Virtuální paměť procesoru 386.
8. Porovnání architektur RISC a CISC, 64-bitové procesory.
Osnova cvičení:1. Jednoduchá aplikace v jazyce Java.
2. Datové typy v Javě, srovnaní s jinými programovacími jazyky.
3. Základy návrhu grafického rozhraní s využitím knihovny Swing.
4. Třídy a metody.
5. Pole, odlišnosti od jazyka C a Pascal.
6. Rozhraní, datové modely pro JList.
7. Zobrazování stromů.
8. Dynamická identifikace typů - reflection, introspection.
9. Práce se soubory v jazyce Java.
10. Registry a jednoduché instrukce mikroprocesorů Intel 80x86.
11. Ladění programů na úrovni strojových instrukcí.
12. Instrukce pro volání podprogramů.
13. Příklady překladu některých konstrukcí z vyšších programovacích jazyků.
Cíle:Znalosti:
Seznámení s programovacím jazykem Java. Rozdíly mezi Javou a C++. Orientace v architektuře mikroprocesorů Intel 80x86.

Schopnosti:
Naprogramovat jednoduchou aplikaci v jazyce Java.
Požadavky:
Rozsah práce:Individuální práce studentů zahrnuje implementaci vlastního programu v jazyce Java.
Kličová slova:Java, jazyk symbolických instrukcí.
Literatura:Povinná literatura:
[1] B. Eckel: Myslíme v jazyku Java, Grada, Praha, 2001.
[2] M.Brandejs: Mikroprocesory INTEL. Pentium a spol. Grada, Praha, 1994.

Doporučená literatura:
[3] http://developer.intel.com
[4] http://mindview.net/Books
[5] http://developer.intel.com

Předmět:Softwarový seminář 201SOS2Ing. Čulík Zdeněk-0+2 Z-2
Anotace:Grafické knihovny GTK+ a Qt, vývoj grafického uživatelského rozhraní v jazycích C a C ++. Přenositelné aplikace určené pro operační systémy typu Unix, zejména pro systémy Linux. Možnost využití stejného zdrojového kódu v Microsoft Windows.
Osnova:1. Úvod do programování grafického uživatelského rozhraní v operačním systému Linux.
2. Programování jednoduché aplikace pro knihovnu GTK. Objektově orientovaná knihovna Qt.
3. Vytváření základních editačních prvků.
4. Reakce na události způsobené uživatelem.
5. Překlad aplikací v systému Linux.
Osnova cvičení:1. Zdrojový text jednoduché aplikace pro GTK.
2. Překlad a sestavení aplikace.
3. Programování odezvy na uživatelské události.
4. Využití návrhového programu Glade.
5. Minimální aplikace pro grafickou knihovnu Qt.
6. Qt signály a sloty - reakce na události.
7. Programy Qt Designer a Creator.
8. Složitější editační prvky pro zobrazování seznamů, tabulek a stromů.
9. Návaznost na prosředí KDE a program KDevelop.
Cíle:Znalosti:
Struktura knihoven GTK a Qt pro vývoj grafického uživatelského rozhraní v operačních sytémech typu Unix.

Schopnosti:
Vytvořit aplikaci s grafickým uživatelským rozhraním v jazyce C nebo C++ pro operační systém Linux.
Požadavky:
Rozsah práce:Individuální práce studentů sestává z vlastního programu využívajícího knihovnu GTK nebo Qt.
Kličová slova:Qt, GTK, Linux.
Literatura:Povinná literatura:
[1] J. Blanchette, M. Summerfield, C++ GUI Programming with Qt 4, 2nd Edition, Prentice Hall, 2008.
[2] H. Pennington, GTK+ /Gnome Application Development, Sams, 1999.

Doporučená literatura:
[3] M. Summerfield, Rapid GUI Programming with Python and Qt, Prentice Hall, 2007.
[4] http://qt.nokia.com
[5] http://library.gnome.org/devel
[6] http://www.gtk.org

Úvod do objektového programování01UOP Čulík 0+2 zk - - 2 -
Předmět:Úvod do objektového programování01UOPIng. Čulík Zdeněk----
Anotace:Objektově orientované programovací jazyky. Knihovny využívající principy objektově orientovaného programování v oblasti grafiky, databází a distribuovaných systémů.
Osnova:1. Vývoj objektově orientovaných programovacích jazyků
2. Dědičnost, zapouzdření, polymorfismus
3. Rozhraní, odlišnosti v jazycích Java a C++
4. Šablony a generické konstrukce
5. Návrhové vzory
6. Objekty a grafické uživatelské rozhraní
7. Třírozměrná grafika a Open Inventor
8. Distribuované systémy: CORBA, COM, DBus
9. Objektově orientované databáze
10. Historie: Simula 67, Smalltalk, Ada
11. Objektově orientované skriptovací jazyky, jazyk Python

Osnova cvičení:1. Vývoj objektově orientovaných programovacích jazyků
2. Dědičnost, zapouzdření, polymorfismus
3. Rozhraní, odlišnosti v jazycích Java a C++
4. Šablony a generické konstrukce
5. Návrhové vzory
6. Objekty a grafické uživatelské rozhraní
7. Třírozměrná grafika a Open Inventor
8. Distribuované systémy: CORBA, COM, DBus
9. Objektově orientované databáze
10. Historie: Simula 67, Smalltalk, Ada
11. Objektově orientované skriptovací jazyky, jazyk Python
Cíle:Znalosti:
Vývoj objektově orientovaných programovacích jazyků. Uplatnění objektů v moderních softwarových technologiích.

Schopnosti:
Navrhnout objektově orientovanou aplikaci. Implementovat navrženou aplikaci s využitím objektově orientovananých knihoven.
Požadavky:
Rozsah práce:Individuální prací studentů je implementace jednoduché aplikace využívající objektové technologie.
Kličová slova:Programovací jazyky, objektově orientované programování, C++, Java, Python
Literatura:Povinná literatura:
[1] M. Virius: Programování v C++, třetí přepracované vydání, ČVUT, Praha 2009.

Doporučená literatura:
[2] M. Virius: Programování v Javě, ČVUT, Praha 2010
[3] B. Eckel: Myslíme v jazyku Java, Grada, Praha, 2001
[4] M. Lutz, D. Ascher: Naučte se Python, Grada, Praha, 2003
[5] B. Stroustrup: The C++ Programming Language, 3rd Edition, Addison-Wesley, 1997
[6] B. Stroustrup: The Design and Evolution of C ++, 1st Edition, Addison-Wesley, 1994
[7] E. Gamma, R. Helm, R. Johnson, J. Vlissides: Návrh programů pomocí vzorů, Grada, Praha, 2003

Základy operačních systémů01ZOS Čulík - - 2+0 z - 2
Předmět:Základy operačních systémů01ZOSIng. Čulík Zdeněk-2+0 Z-2
Anotace:Úvod do struktury operačních systémů. Procesy, vlákna, správa paměti. Synchronizace vícevláknových aplikací. Soubory zobrazované do paměti.
Osnova:1. Úvod do operačních systémů (struktura jádra, bezpečnost).
2. Procesy a vlákna (vytváření a ukončování procesů a vláken, plánování a priority).
3. Synchronizace vláken (kritické sekce, semafory).
4. Správa paměti (virtuální paměť, soubory mapované do paměti).
5. Úvod do distribuovaných systémů (volání vzdálených procedur - RPC, architektury CORBA a COM).
6. Základy komunikace v sítích TCP/IP (směrování paketů, služby DNS).
Osnova cvičení:
Cíle:Znalosti:
Struktura operačního systému, manipulace se soubory na nízké úrovni, vytváření procesů a vláken, alokace paměti.

Schopnosti:
Naprogramovat vícevláknovou aplikaci.
Požadavky:
Rozsah práce:Individuální práce studentů zahrnuje experimenty s ovladači souborů (file handles), vytváření procesů a vláken, jednoduchou práci se semafory a založení souboru zobrazeného do paměti.
Kličová slova:Procesy, vlákna, správa paměti.
Literatura:Povinná literatura:
[1] A. S. Tanenbaum: Operating Systems: Design And Implementation, Prentice Hall, Englewood Cliffs, 1987.

Doporučená literatura:
[2] S. E. Madnick, J. J. Donovan: Operační systémy, Praha, SNTL 1974.
[3] W. Stallings, Operating Systems: Internals and Design Principles, Prentice Hall, 2005.
[4] J. M. Richter: Advanced Windows, Microsoft Press, Redmond, 1997.
[5] A. Rubini, J. Corbet: Linux Device Drivers, O'Reilly, 2001.
[6] D. Bovet, M. Cesati, A. Oram: Understanding the Linux Kernel, O'Reilly, 2001.

Články ve sbornících

2008

Beneš, M. and Strachota, P. and Čulík, Z., Quantitative Aspects of Microstructure Formation in Solidification, Proceedings of the Fourth International Conference on Multiscale Materials Modeling, (2008) , 746-751, Florida State University
BiBTeX
@INPROCEEDINGS{Benes08:1526,
  title = {{Quantitative Aspects of Microstructure Formation in Solidification}},
  author = {Bene{\v s}, M. and Strachota, P. and {\v C}ul{\'\i}k, Z.},
  address = {Tallahassee},
  booktitle = {{Proceedings of the Fourth International Conference on Multiscale Materials Modeling}},
  publisher = {Florida State University},
  year = {2008},
  volume = {1},
  pages = {746--751}
}

2007

Beneš, M. and Minárik, M. and Pauš, P. and Čulík, Z., Moving Boundaries in Material Science, DMHF2007 COE Conference on the Development of Dynamic Mathematics with High Functionality, (2007) , 61-64, Kyushu University
BiBTeX
@INPROCEEDINGS{Benes07:1419,
  title = {{Moving Boundaries in Material Science}},
  author = {Bene{\v s}, M. and Min{\' a}rik, M. and Pau{\v s}, P. and {\v C}ul{\'\i}k, Z.},
  address = {Fukuoka},
  booktitle = {{DMHF2007 COE Conference on the Development of Dynamic Mathematics with High Functionality}},
  publisher = {Kyushu University},
  year = {2007},
  pages = {61--64}
}

2006

Beneš, M. and Čulík, Z., Simulation of Anisotropic Microstrukture Growth in Soliditification, Sborník 5. Matematický workshop s mezinárodní účastí, (2006) , 25-26, VUT v Brně, Fakulta stavební
BiBTeX
@INPROCEEDINGS{Benes06:1258,
  title = {{Simulation of Anisotropic Microstrukture Growth in Soliditification}},
  author = {Bene{\v s}, M. and {\v C}ul{\'\i}k, Z.},
  address = {Brno},
  booktitle = {{Sborn{\'\i}k 5. Matematick{\' y} workshop s mezin{\' a}rodn{\'\i} {\' u}{\v c}ast{\'\i}}},
  publisher = {VUT v Brn{\v e}, Fakulta stavebn{\'\i}},
  year = {2006},
  pages = {25--26}
}

2005

Čulík, Z. and Straka, R., Numerical Aspects of a Bacteria Growth Model, Algoritmy 2005 - Proceedings of contributed papers and posters , (2005) , 175-184, Slovak University of Technology
BiBTeX
@INPROCEEDINGS{Culik05:1170,
  title = {{Numerical Aspects of a Bacteria Growth Model}},
  author = {{\v C}ul{\'\i}k, Z. and Straka, R.},
  address = {Bratislava},
  booktitle = {{Algoritmy 2005 - Proceedings of contributed papers and posters }},
  publisher = {Slovak University of Technology},
  year = {2005},
  pages = {175--184}
}

za obsah této stránky zodpovídá: Radek Fučík | naposledy změněno: 7.8.2011
Trojanova 13, 120 00 Praha 2, tel. 224 358 540, pevná linka 224 923 098, fax 234 358 643
České vysoké učení technické v Praze | Fakulta jaderná a fyzikálně inženýrská | Katedra matematiky