Na této stránce najdete seznam vybraných publikací. Mé publikace zahrnují
Odkaz "články" v prvním bodu předchozího seznamu vede na stránky řešeršního systému INSPIRE, který provozuje SLAC (Centrum lineárního urychlovače Stanfordské univerzity v Kalifornii) spolu s DESY (Německá synchrotronová laboratoř v Hamburgu) a FNAL (Fermiho národní laboratoř v Illinois). Články jsou podepsány zpravidla jménem experimentu, po kliknutí na toto jméno dostanete seznam spoluautorů (obvykle velice dlouhý, neboť jde o publikace celého experimentálního týmu; v těchto týmech se účastním jako jeden z informatiků).
Odkazy u jednotlivých položek v následujících seznamech vedou na stručné anotace uvedených publikací. U většiny anotací najdete odkaz Poznámky; použijete-li ho, dostanete se na stránku s opravami, doplňky a poznámkami k dané knize.
Popisuje jazyky C a C++ podle specifikace AT&T 2.1 na základě zkušeností s překladači dostupnými v době psaní (přelom let 1991/2). To znamená, že nehovoří o výjimkách, dynamické identifikaci typů a nových přetypovacích operátorech, prostorech jmen a standardní šablonové knihovně. Pokud jde o šablony, najdete zde jen základní popis -- tehdejší specifikace např. neznala vnořené šablony, netypové parametry šablon funkcí atd.
Poznámky
Kniha je věnována především nedokumentovaným nebo špatně dokumentovaným vlastnostem překladače Borland C++ 3.1. Najdete tu výklad o šablonách, některých vlastnostech funkcí, objektových typů atd., podrobný popis knihovny datových proudů a návod, jak napsat nový datový proud, popis ukládání objektů v paměti, způsob překladu konstruktorů a destruktorů atd. Obsahuje i rozbor některých chyb překladače. Výklad je zaměřen především na programy pro DOS, pro porozumění některým místům je vhodné znát asembler.
První z pětidílné série učebnic, které postupně učí programování v C++ a v Pascalu. Celá tato řada vznikla na základě publikovaných i nepublikovaných částí seriálu "Cesta k profesionalitě" R. Pecinovského otiskovaného v časopise Computerworld a mého seriálu "Kurs C/C++" otiskovaného v časopise Bajt. Tento díl obsahuje především kurs algoritmizace založený na robotu Karlovi, základy ovládání prostředí Turbo Pascalu a Borland C++ 3.1 a základní programové konstrukce používané v těchto jazycích.
Poznámky k této knize
Poznámky k doprovodným disketám (pro všech 5 dílů)
Tyto knihy navazují na knihu Učebnice programování -- základy algoritmizace. Najdeme tu některé lehce pokročilejší neobjektové konstrukce (v prvním dílu pole, výrazy, procedury a funkce podrobněji, vstupní a výstupní operace, ve druhém pak ukazatele, záznamy či struktury, makra apod.). Výklad v obou knihách doprovází velké množství příkladů.
Poslední dva díly série učebnic programování. První díl vykládá především zapouzdření a přetěžování operátorů v C++. Druhý dědičnost, a polymorfizmus v C++ a v Turbo Pascalu a výjimky a dynamickou identifikaci typů v C++ a v Object Pascalu (Delphi) a prostory jmen v C++. Kniha (oba díly společně) získala ocenění "Cena Grada '96".
Poznámky
Kniha popisuje vývojové prostředí Microsoft Visual C++ 5.0 a uvádí do programování aplikací pro Windows pomocí knihovny MFC. Obsahuje řadu příkladů. Není to učebnice C++, alespoň základní znalost tohoto jazyka je pro čtení nezbytná.
Poznámky
Kniha věnovaná zrádným místům jazyků C a C++, tj. konstrukcím, které jsou sice syntakticky správné, ale mohou mít jiný význam než programátor očekává. Vychází z ISO C++ podle návrhu této normy aktuálního v létě 1997 (ta už se prakticky neliší od přijatého standardu). Oceněno "Tip redakce časopisu Chip 11/1997".
Druhé, aktualizované a doplněné vydání vyšlo na počátku r. 2005 v nakladatelství Computer Press.
Druhé vydání obsahuje navíc především kapitoly věnované šablonám, prostorům jmen, standardní šablonové knihovně C++, objektovému návrhu a problematice češtiny v C++. Vynechal jsem části věnované programování pro DOS a upravil jsem zdrojové texty tak, aby odpovídaly současnému standardu jazyka. (V prvním vydání jsem například ještě často používal jména standardních hlaviček s příponou .h, jak to vyžadovala většina překladačů používaných v r. 1997. Mnohé dnešní překladače to již považují za chybu.)
Poznámky k 1. vydání (1997), k 2. vydání (2005)
Vysvětluje všechny běžně používané prostředky jazyka C podle platných standardů ISO 9899-1990 a C++ podle ISO 14882. Převážnou část knihy tvoří podrobný přehled standardních knihoven těchto jazyků včetně pomocných funkcí a tříd.
Poznámky
Seznamuje s vývojovým prostředím C++Builderu 4 a s vizuálním programováním pomocí knihovny VCL. Pokrývá základní programové konstrukce, základy práce s grafikou, základy multithreadových aplikací a databázových aplikací; obsahuje i krátký přehled jazyka SQL. Předpokládá znalost jazyka C++ (objektové programování, pokud jde o výjimky a šablony alespoň základy). Kniha má podtitul "podrobný průvodce"; to vymyslelo nakladatelství, ve skutečnosti je to učebnice, která seznamuje čtenáře s C++Builderem na příkladech.
Poznámky
Seznamuje s vývojovým prostředím JBuilderu 3 a s vizuálním programováním pomocí komponent JavaBeans. Obsahuje i základní kurs jazyka Java. Pokrývá základní programové konstrukce, vytváření apletů, základy práce s grafikou, základy multithreadových aplikací a databázových aplikací; najdete tu i krátký přehled jazyků SQL a HTML. Podobně jako kniha o C++Builderu má i tato kniha podtitul "podrobný průvodce", i když to je opět učebnice, která seznamuje čtenáře s Javou a s JBuilderem na příkladech.
Poznámky
Kniha předpokládá znalost jazyka C podle standardu ISO/ANSI 9899-1990 a základních pojmů objektově orientovaného programování. Na tomto základě seznamuje čtenáře s jazykem C++. Obsahuje výklad objektových typů, přetěžování operátorů, šablon, výjimek, dynamické identifikace typů, prostorů jmen, objektových datových proudů a základní informace standardní šablonové knihovně. Výklad doprovázejí příklady.
Poznámky
Jde o upravenou a rozšířenou verzi knihy o C++Builderu 4. Nový je úvod do programování distribuovaných aplikací podle standardu CORBA. Nové jsou také příklady použití rámů, seznamu akcí a některých dalších komponent. Knihu lze použít i k seznámení se staršími verzemi C++Builderu.
Poznámky
Kniha je určena čtenářům, kteří se chtějí seznámit se základy programování v jazyce Java. Nepředpokládá žádné předběžné znalosti o programování. Vychází z JDK 1.3 a nabízí seznámení s principy objektově orientovaného programování, základními konstrukcemi jazyka (primitivní datové typy, pole, příkazy, výrazy a operátory, třídy, rozhraní, výjimky, základní vstupy a výstupy). Najdete tu i základy tvorby grafických aplikací pomocí knihovny JFC/Swing a velmi stručné informace o tvorbě apletů. Kniha se nezabývá tvorbou vícevláknových aplikací, distribuovaných aplikací, nativních metod a dalšími pokročilými tématy. Oceněno "Tip redakce časopisu Chip 10/2001".
Podle této knihy se učilo učí a učí na některých středních -- a dokonce i vysokých -- školách.
V létě 2005 vyšlo druhé vydání aktualizované pro JDK 5. Obsahuje navíc především základy práce s generickými typy, zmíněny jsou ale všechny podstatné novinky této verze JDK.
Poznámky k 1. vydání (2001), ke
2. vydání (2005)
Kniha je určena čtenářům, kteří se chtějí seznámit se základy programování v jazyce C#. Nepředpokládá žádné předběžné znalosti o programování. Vychází z verze 1.1 překladače a nabízí seznámení s principy objektově orientovaného programování, základními konstrukcemi jazyka (základní datové typy, pole, příkazy, výrazy a operátory, třídy, rozhraní, výjimky, přetěžování operátorů, základní vstupy a výstupy). Najdete tu i základy tvorby grafických aplikací. Kniha se nezabývá tvorbou vícevláknových aplikací, distribuovaných aplikací a dalšími pokročilými tématy. Koncepce knihy je velice podobná koncepci knihy "Java pro zelenáče".
Poznámky
Tato kniha předpokládá znalost C++, a to -- kromě základních konstrukcí, jako jsou deklarace nebo příkazy -- také objektově orientovaného programování, prostorů jmen, přetěžování operátorů a dynamické identifikace typů. Na tomto základě vykládá programovací jazyk C# a jeho používání v programech pro .NET Framework. Kniha pokrývá mj. vstupy a výstupy, základy tvorby grafického uživatelského rozhraní, práci s datovými typy (reflexi, používání atributů, vytváření vlastních atributů) atd.
Poznámky
Podrobná referenční příručka jazyka C90 (tedy C podle standardu ISO/IEC 9899-1990), C99 (tedy C podle standardu ISO/IEC 9899-1999) a C++ podle standardu ISO/IEC 14882-1998. Neobsahuje přehled standardních knihoven.
Jde vlastně o od základu přepracovanou knihu Jazyky C a C++ podle normy ANSI/ISO -- kompletní kapesní průvodce, jež byla dokončena ještě před vydáním závěrečné verze standardu C++ (a navíc se musela vejít do poněkud nevhodného formátu kapesních referenčních příručk k uživatelským programům, jako je Word nebo Excel -- povinný počet kapitol, "postupy" atd.)
Druhé vydání z r. 2011 jsem aktualizoval podle připravovaného nového standardu C++, který má vyjít koncem r. 2011 a je zatím označován C++0x.
Poznámky k 1. vydání, 2. vydání
Sbírka více než 250 řešených úloh, které ukazují základy práce s prostředím .NET 1.1 a 2.0 (vytvoření soukromého a sdíleného sestavení, jeho konfiguraci, použití reflexe, použití staršího kódu v dynamických knihovnách pro Win32, spolupráci s COM), práci s okny a komponentami, vytváření databázových aplikací pomocí ADO.NET, základy vytváření stránek ASP.NET, vytváření vícevláknových aplikací, vstupní a výstupní operace, práci s dokumenty v XML a mnohé další. Ukazuje také použití některých novinek v C# 2.0 (genericity). Kniha je sice založena na C#, ale s výjimkou 3. kapitoly, která je věnována výhradně tomuto jayzku, se prakticky vše dá použít v libovolném jazyce pro .NET.
Poznámky
Kniha obsahuje více než 1280 tipů a triků, které pokrývají programování v jazycích C a C++. Vychází ze zkušeností s komerčními překladači (v abecedním pořadí) C++Builder 2009 od firmy CodeGear a Visual C++ 2008 a 2010 a s nekomerčním překladačem g++ pro Windows. Začíná překladem a sestavením programu, pokračuje laděním pomocí vývojových prostředí i pomocí programových konstrukcí. Pak přejde k různým rysům jazyka: Najdete zde mimo jiné tipy pro práci s poli a ukazateli a pro správu paměti vůbec, ale také pro práci s celými, reálnými nebo komplexními čísly, znaky a řetězci atd. Některé tipy se zabývají záludnostmi základních jazykových konstrukcí, jako jsou makra, deklarace tříd, používání objektů, šablon atd. Samozřejmě tu najdete i mnoho triků pro vstupní a výstupní operace, používání kontejnerů a algoritmů ze standardní knihovny, práci s lokálním nastavením apod.
Jedna z kapitol se také zabývá C++0x. Tak se označuje očekávaný, ale v době vydání této knihy stále ještě nepublikovaný nový standard jazyka C++ -- některé překladače již řadu novinek, jako jsou lambda-výrazy, implementují.
Některé z triků nebo tipů se vztahují jen k určité verzi jazyka C nebo C++; v takovém případě je v záhlaví tipu uvedeno, zda jde o jazyk C podle standardu z roku 1990, o jazyk C podle standardu z roku 1999 nebo o jazyk C++.
Poznámky
Ve skutečnosti jde o aktualizované a rozšířené vydání knihy C# -- hotová řešení z roku 2006. Zdrojové kódy byly revidovány, aby využívaly možností C# verze 4 a prostředí .NET verze 4. Přibyly i nové příklady. Navíc přibyly kapitoly věnované knihovně WPF a dotazovacímu jazyku LINQ.
Poznámky
Kniha je určena naprostým začátečníkům. Obsahuje výklad jazyka Pascal založený na překladači Free Pascal verze 2.4 a vývojovém prostředí Lazarus verze 0.9.30.
V prvních pěti kapitolách najdete nezbytné minimum informací o počítačích a programování, které začínající programátor potřebuje znát, napíšete několik jednoduchých programů, naučíte se je překládat, spouštět a ladit. Tyto kapitoly vám poskytnou informace nezbytné pro to, abyste si mohli konstrukce, probírazné v dalších kapitolách, zkoušet na smysluplných programech.
Od šesté kapitoly začíná výklad Pascalu naostro; jeho cílem je přivést začínajícího programátora na mírně pokročilou úroveň. Seznámíte se s datovými typy, proměnnými, konstantami, příkazy a se vstupními a výstupními operacemi. Poznáte i základy objektově orientovaného programování a v poslední kapitole se naučíte vyvíjet jednoduché aplikace s grafickým uživatelským rozhraním.
Kniha se vyhýbá pokročilejším tématům, jako jsou ukazatele a dynamické proměnné, dynamické datové struktury, výjimky, vytváření dynamických knihoven apod.; ty měly být ve druhém dílu knihy, který však z rozhodnutí nakladatelství nevyjde. Podobně zaměřené je (a místo druhého dílu můžete použít) striptum Pokročilé programovaví techniky vydané Nakladatelstvím ČVUT v r. 2013.
Poznámky
Kniha je určena naprostým začátečníkům, které se snaží dovést na úroven středně pokročilého programátora. V jedadvaceti kapitolách
seznámí čtenáře se vším od základních pojmů, jako je proměnná nebo cyklus, přes práci s pamětí a ukazateli po pokročilejší konstrukce,
jako jsou výjimky a pasívní použití šablon. Výklad doprovází řada příkladů, některé jsou poměrně rozsáhlé.
Výklad vychází ze standardu ISO 14882:2017 označovaného "C++17" a využívá volně dostupné vývojové prostředí Code::Blocs
a překladač g++, obsahuje však i poznámky pro použití MS Visual Studia.
Poznámky
Kniha je napsána s podobným záměrem jako téměř stejnojmenná kniha o C++: Je určena naprostým začátečníkům,
které se snaží dovést na úroven středně pokročilého programátora. V osmnácti kapitolách seznámí čtenáře se vším od základních pojmů,
jako je proměnná nebo cyklus, přes běžné po pokročilejší konstrukce, je např. deklarace generických objektových typů, práce
s jazykem LINQ, vytváření programů s grafickým uživatelským rozhraním nebo základy paralelního ("vícevláknového") programování.
Výklad doprovází řada příkladů, některé jsou poměrně rozsáhlé. Výklad vychází z jazyka C# verze 8 využívá vývojové
prostředí MS Visual Studio.
Poznámky
Kniha je určena čtenářum, kteří znají základy programování v Javě a chtějí se seznámit s programováním podprocesů (vláken, paralelně běžících toků výpočtu v rámci jednoho programu, anglicky nazývaných thread). Skládá se z devíti kapitol. Na počátku se seznámíte s potřebnými pojmy, naučíte se vytvořit a spustit podproces, uspat ho, přerušit ho atd. Pak se seznámíte pro problematikou výpočtu na pozadí grafického uživatelského rozhraní v prostředí knihoven Swing a JavaFX, seznámíte se s problémy, které mohou nastat, když podprocesy sdílejí data nebo jiné prostředky, naučíte se používat nástroje pro synchronizaci podprocesů a pro komunikaci mezi nimi. Dále poznáte pokročilejší nástroje pro asynchronní výpočty, jako jsou různé implementace rozhraní Future<> a fondy podprocesů (thread pool). Výklad je založen na Javě 15, jež byla v době psaní aktuální, a doprovází ho velké množství příkladů, jejichž zdrojové texty jsou čtenářům k dispozi na webových stránkách nakladatelství.
Kniha seznamuje čtenáře s programovacím jazykem C++. Je založena na použití vývojového prostředí OnlineGDB Beta, které je k dispozici na webu, takže není třeba instalovat si žádné vývojové nástroje. V prvních kapitolách ukazuje na jednoduchých příkladech základy programování v C++ – jak se program vytváří, jak se ladí atd. Na rozdíl od běžných učebnic se však snaží ukázat tento programovací jazyk v celé jeho šíři, takže čtenář se v následujících kapitolách alespoň povrchně seznámí s objektovými typy a se základy objektově orientovaného programování, se šablonami funkcí a objektových typů a s dalšími nástroji, které C++ poskytuje. Vzhledem k rozsahu této knihy jde samozřejmě pouze o první přiblížení, jež ovšem umožní čtenáři udělat si představu o možnostech, které tento krásný programovací jazyk nabízí.
K přednášce Metoda Monte Carlo. První vydání z r. 1985 mělo název "Základy výpočetní techniky -- Metoda Monte Carlo", obsah druhého a třetího vydání pod názvem "Aplikace matematické statistiky" je totožný. Stručný obsah: Princip metody MC, přesnost, transformace náhodných čísel, generování náhodných čísel s rovnoměrným rozložením, výpočet integrálů metodou MC, řešení soustavy lineárních algebraických rovnic metodou MC, řešení integrálních rovnic metodou MC, řešení některých úloh pro diferenciální rovnice metodou MC, rozvětvené procesy, úlohy z teorie hromadné obsluhy, úlohy o transportu záření. Skriptum získalo cenu rektora ČVUT za rok 1985.
Sbírka řešených úloh z metod matematické fyziky.
Obsah prvního dílu: Klasifikace parciálních diferenciálních rovnic 2. řádu, zobecněné funkce, základní úlohy matematické fyziky, Cauchyova úloha.
Obsah druhého dílu: Integrální rovnice, úloha na vlastní hodnoty pro eliptické operátory, okrajová úloha a smíšená úloha. Příklady ukazují často několik možných postupů, občas upozorňují i na postupy, které nevedou k cíli. Vedle řešených příkladů obsahují obě skripta i cvičení pro čtenáře.
Skriptum k přednášce "Základy programování" (dnes již bylo nahrazeno skriptem "Úvod do programování"). Podrobný výklad jazyka Pascal podle standardu, doplněný o výklad Turbo Pascalu 7.0. Nepředpokládá žádné předběžné znalosti o programování nebo o počítačích, nehovoří o Object Pascalu z Delphi. Obsah: Co je to počítač, algoritmus, zobrazování dat v počítači, základní konstrukce jazyka Pascal, typ v Pascalu, výrazy, příkazy, procedury a funkce, objektové typy, vývojové prostředí Turbo Pascalu, základy DOSu.)
I když formálně existují pouze tři vydání (1991, 1997, 2004), byla mezi prvními dvěma řada dotisků, které se poněkud liší. První vydání vycházelo z tehdy aktuální verze Turbo Pascalu 5.5, další dotisky postupně popisovaly verzi 6 a 7. Ve druhém vydání byly vypuštěny části týkající se archaického vývojového prostředí verze 5.5 a starších a přibyl popis nových rysů jazyka. Změnily se i některé příklady v textu. Třetí vydání jsem přizpůsobil tehdejším požadavkům.
Znalosti z libovolného z vydání stačilo vždy ke získání zápočtu z předmětu Základy programování (dokud se tento předmět učil v Pascalu).
Toto skriptum vzniklo v době, kdy seminář "Objektově orientované programování" sloužil především jako doplněk k přednášce o jazyku C++ (tehdy jednosemestrální). S dnešní podobou semináře OOP nemá nic společného. Skriptum obsahuje popis základních konstrukcí OOP a základní informace o OOP v C++, v Turbo Pascalu, v Simule 67, ve Smalltalku a o objektovém rozšíření Turbo Assembleru 3.0.
Skriptum ke stejnojmenné přednášce. Hlavní body obsahu prvního vydání: datové struktury (proměnná, pole, záznam, seznam, strom, zásobník, fronta, množina atd.), metody návrhu algoritmů (rozděl a panuj, backtracking atd.), rekurze, třídění polí, souborů a jiné, použití binárního stromu (zpracování aritmetického výrazu, vyvážené stromy), seminumerické algoritmy (zobrazení čísel v počítači, algoritmy pro základní aritmetické operace), další algoritmy (FFT, Strassenův algoritmus aj.), úvod do softwarového projektu, návrh architektury programu založený na analýze požadavků.
Druhé vydání obsahuje navíc podrobný příklad vyšetřování složitosti algoritmu, výklad potřebných matematických nástrojů, některá odvození složitosti, některé třídicí algoritmy atd. Místo výkladu o softwarovém projektu a návrhu architektury je zde obsáhlá kapitola věnovaná především OOP a návrhovým vzorům. Výklad byl na řadě míst přepracován.
Ve třetím vydání byly veškeré příklady převedeny do jazyka C++ (v prvních dvou vydáních byly převážně v Pascalu). Tomu byl přizpůsoben i styl výkladu. Výklad některých algoritmů byl upraven.
Poznámky k 1. vydání Poznámky k 2. vydání Poznámky k 3. vydání
Starší skriptum ke stejnojmenné přednášce. Pokrývá jazyk C podle ISO 9899:1990 a C++ podle ISO 14882:1998 včetně základních informací o standardních knihovnách a některých běžných rozšířeních. První 4 kapitoly představují úvodní kurs, ve kterém se čtenář bez nároku na úplnost seznámí s vybranými konstrukcemi C++ a pozná organizaci programu v C++. Pak následuje podrobný výklad: Zápis programu, lexikální konvence, klíčová slova atd., příkazy, základní datové typy, pole, ukazatele, reference a dynamické proměnné, výčtové typy, struktury, unie, operátory, výrazy, proměnné, deklarace, funkce, direktivy preprocesoru, objektové typy, přetěžování operátorů, šablony, výjimky, dynamická identifikace typů a speciální přetypovací operátory, prostory jmen, vstupy a výstupy, přehled ostatních knihoven.
Ze druhého vydání jsem odstranil části, které se zabývaly programováním pro DOS. Upravil jsem zdrojové texty tak, aby plně vyhovovaly standardu. (V prvním vydání bylo třeba brát ohled na překladače, které byly v té době k dispozici, takže se často objevovala např. přípona .h ve jménech hlavičkovych souborů, což neodpovídá standardu, ale mnohé tehdejší překladače to vyžadovaly. Druhé vydání také popisuje nový standard ISO 9899:1999 jazyka C.) Doplnil jsem rozsáhlejší příklad použití STL a některé informace, které se do prvního vydání nevešly.
Vyřazené části věnované dosovskému programování jsou k dispozici zde ve formátu PDF.
Do třetího vydání jsem doplnil stručnou informaci o rozšířeních očekávaných v nové verzi standardu (označovaných C++0x), a to především pokud jde o standardní šablonovou knihovnu; změny v jazyce nebyly v době přípravy třetího vydání ještě zcela jasné a nebyly k dispozici překladače, které by poskytovaly jejich implementaci, proto jsem je do tohoto vydání nezahrnul. Vedle toho jsem odstranil některé překlepy a nedopatření; zároveň jsem zdrojový text skripta převedl do sázecího systému TeX, čímž jsem tam nepochybně zanesl nové chyby.
Poznámky k 1. vydání Poznámky ke 2. vydání Poznámky ke 3. vydání
Skriptum k přednášce "Základy programování"; nepředpokládá žádné předběžné znalosti o programování nebo o počítačích. Obsahuje výklad jazyka Pascal včetně objektově orientovaného programování a výjimek. Začíná seznámením s pojmy jako počítač, algoritmus, programovací jazyk apod. a vysvětlením pojmů datový typ a objektový typ. Pak následuje několik jednoduchých příkladů, v nichž se čtenář postupně naučí zapsat zdrojový kód, přeložit ho (z příkazové řádky), spustit ho a ladit ho.
To mu umožní psát od počátku rozumné příklady a spouštět je jako programy. V dalších kapitolách se seznámí s jazykem Pascal v podobě, ve které ho implementuje Turbo Pascal 7.0, Free Pascal a Object Pascal v Delphi; výklad Object Pascalu neobsahuje některé z konstrukcí, které se objevily teprve v nedávných verzích jazyka, jako je genericita. Na konci skripta najdete rozsáhlejší příklady (mj. naivní, ale funkční implementaci jednosměrně zřetězeného seznamu).
Poznámky
Skriptum ke stejnojmenné přednášce. Předpokládá znalost základů programování, takže nevysvětluje pojmy jako program, proměnná, třída, objekt nebo výjimka, ale používá je. Skládá se ze tří relativně samostatných částí.
V první části se čtenář seznámí s prostředím Javy, napíše první programy (od nejjednoduššího, který vypisuje pozdrav, až k sice naivní, ale funkční implementaci jednosměrně zřetězeného seznamu -- to je velice vděčný příklad). Vedle toho se čtenář v této části naučí programy překládat a spouštět, vytvářet dokumentaci a archiv tříd a některé další užitečné věci.
Ve druhé části se čtenář seznámí se syntaxí jazyka Java. To znamená, že postupně projde příkazy, základní (primitivní) datové typy, vytváření tříd a objektů a práci s nimi, generické datové typy, používání výjimek atd.
Třetí část je věnována vybraným techologiím, tedy specializovaným knihovnám. Jedná se o základy práce se znakovými řetězci (včetně regulárních výrazů), vstupní a výstupní operace (pomocí knihovny datových proudů) a vytváření grafického uživatelského rozhraní pomocí komponent swing. Pak následují kapitoly věnované reflexi a nativním metodám (tj. metodám napsaným v jazyce C++), práci s databázemi, podpoře národního prostředí, vytváření servletů a stránek JSP a používání podprocesů (vláken).
Poznámky
Skriptum ke stejnojmenné přednášce.
První kapitola obsahuje dva příklady použití metody Monte Carlo (MMC). Jejím cílem je seznámit čtenáře s tím, co budeme pod označením MMC rozumět, a ukázat, jaké problémy musíme při jejím použití umět vyřešit. Druhá kapitola rozebírá přesnost výsledků získaných MMC. Třetí je věnována transformaci náhodných veličin s rovnoměrným rozdělením na intervalu <0, 1) na náhodnou veličinu s požadovaným rozdělením a čtvrtá kapitola se zabývá generátory pseudonáhodných čísel s rovnoměrným rozdělením na intervalu <0, 1).
Další dvě kapitoly jsou věnovány použití MMC pro numerické výpočty (určité integrály, vybrané druhy lineárních rovnic).
Sedmá kapitola je věnována použití simulací v teorii hromadné obsluhy a a osmá kapitola je věnována použití simulací v teorii transportu záření.
Za ní následuje kapitola věnovaná testování prvočíselnosti a simulovanému žíhání.
V předposlední kapitole najdete shrnutí základních pojmů, vět a definic z teorie pravděpodobnosti a matematické statistiky, které jsou při výkladu potřebné (bez důkazů, neboť ty lze najít v běžné literatuře). Poslední kapitola obsahuje důkazy některých tvrzení, která v textu používáme, jejichž důkazy nejsou v běžné literatuře uváděny. Tato tvrzení bezprostředně souvisí s vykládanou tématikou a přitom zařazení jejich důkazu do textu by narušilo souvislost výkladu.
Poznámky
Skriptum ke stejnojmenné přednášce.
Skriptum pokrývá základy práce se sestavením (assembly) v prostředí .NET, s prostředím programu, používání podprocesů (vláken), práci se znamovými řetězci, nástroje pro vstupní a výstupní operace, vytváření grafického uživatelského rozhraní v kniovnách Windows Forms a WPF, použití databází, práci s dokmenty v jazyce XML a vnořený dotazovací jazyk jazyk LINQ. V příloze je stručný přehled jazyka C#.
Poznámky
Skriptum bylo určeno ke stejnojmennému předmětu, dokud byl založen na jazyce Pascal.
Skriptum ukazuje vybrané programovací techniky a jejich aplikaci v Pascalu. Některé kapitoly podrobněji probírají vlastnosti Pascalu, které byly v kursu "Základy programování" opomenuty, jako jsou výjimky, generické konstrukce, přetěžování operátorů nebo vlastnosti (property). Další kapitoly seznamují s vytvářením grafického uživatelského rozhraní, s vytvářením a používáním dynamických knihoven, s použitím podprocesů (threadů), s vytvořením nápovědy v HTML, se zpracováním dokumentů v jazyce XML, s použitím databází atd. Samostatná kapitola je věnována vytvoření instalačního balíčku pro vyvinutý program pomocí volně dostupného nástroje NSIS.
Převážná většina textu nezávisí na použitém operačním systému. Pouze části věnované vytvoření instalačního balíčku, přístupu k registru Windows a práci s dynamickými knihovnami jsou specifické pro Windows.
Poznámky
Skriptum k přednášce "Základy programování"; nepředpokládá žádné předběžné znalosti o programování nebo o počítačích. Obsahuje výklad jazyka C++ včetně základů objektově orientovaného programování a základů práce s výjimkami, neprobírá jmenné prostory, šablony, přetěžování operátorů, dynamickoi identifikaci typů. Začíná seznámením s pojmy jako počítač, algoritmus, programovací jazyk apod. a vysvětlením pojmů datový typ a objektový typ. Pak následuje několik jednoduchých příkladů, v nichž se čtenář postupně naučí zapsat zdrojový kód, přeložit ho (z příkazové řádky), spustit ho a ladit ho.
To mu umožní psát od počátku rozumné příklady a spouštět je jako programy. V dalších kapitolách se seznámí s jazykem C++ natolik, že bude moci psát fungující programy, i když nebude umět využít všech možností, které tento jazyk nabízí. Na konci skripta najdete rozsáhlejší příklady (mj. naivní, ale funkční implementaci jednosměrně zřetězeného seznamu)
Poznámky
Skriptum pro cvičení k přemětu "Programování v Javě". Na příkladu vývoje programu pro kreslení únikových fraktálů v Javě 8, tedy v JDK 1.8, ukazuje praktické použití řady technologií, s nimiž se čtenáři mohli seznámit v přednášce Programování v Javě. Vedle GUI, kreslení, práce s XML, podprocesů a dalších ukazuje i vytvoření instalačního balíčku vytvořené aplikace. V poslední kapitole najdete stručný přehled novinek Javy 7 a 8.
Poznámky
První díl skripta k přednášce programování v C++. Toto skriptum vzniklo rozsáhlým přepracováním a doplněním skripta Programování v C++, které přestalo vyhovovat, neboť (a) předmět "Základy programování" je nyní založen na jazyce C++, takže posluchači již řadu pojmů alespoň povrchně znají, (b) nové verze standardů jazyků C a C++ přinesly řadu novinek jak v samotných jazycích, tak i v knihovnách. Výklad ve všech třech dílech vychází z platných standardů jazyků C a C++ z roku 2011 ("C11" a "C++11"), uvádí ale i novinky označované "C++14" a změny očekávané v nové verzi standardu, jež by měla být publikována v roce 2017.
První díl obsahuje dva složitější příklady, které čtenáře seznámí s některými pojmy, na které bude v následujícím výkladu narážet. Pak projde strukturu programu v C a v C++, příkazy v C++, základní datové typy, neobjektové datové typy deklarované uživatelem (včetně struktur a unií v neobjektovém pojetí, tedy POD), výrazy, deklarace, funkce a preprocesor.
Další dva díly jsou zařazeny do edičního plánu nakladatelství ČVUT na první pololetí r. 2017.
Druhý díl skripta k přednášce programování v C++.
V úvodním příkladu se nezávazně seznámíme s některými pokročilými konstrukcemi. Pak následuje výklad objektově orientovaného programování, přetěžování operátorů, šablon (včetně šablon s proměnným počtem parametrů), nástrojů pro práci s výjimkami, nástrojů pro práci s typy a jmenných prostorů. Poslední kapitola je věnována tzv. pojmům (specifikace vlastností používaná v dokumentaci knihoven v C++) a konceptů (syntaktické konstrukce pro formalizaci pojmů, očekávaná v C++ po roce 2020).
Třetí díl skripta k přednášce programování v C++.
Tento díl je věnován standardním knihovnám jazyků C a C++. V prvních kapitolách se seznámíme s nástroji pro vstupní a výstupní operace, pro přístup k souborovému systému, pro práci s národním prostředím. Pak následují kapitoly věnované práci se znakovými řetězci (včetně použití regulárních výrazů), práci s paralelními podprocesy (vlákny) a s nástroji pro matematické výpočty (numerické pole, generování náhodných čísel aj.). Dále se seznámíme s tzv. kontejnery (třídami pro ukládání dat), iterátory pro práci s kontejnery a s "algoritmy", tedy s funkcemi pro zpracování dat v kontejnerech. Poté následuje kapitola věnovaná různým dalším nástrojům (pro práci s časem, pro podporu běhu programu a další). Poslední kapitola je věnována pokročilým nástrojům pro práci s datovými typy v době překladu programu.
Cvčení k přednášce Programování pro .NET. Na příkladu vývoje aplikace pro kreslení únikových fraktálů ukazuje principy návrhu aplikací, tvorby grafického uživatelského rozhraní, práce s reflexí, se značkovacím jazykem XML, tvorby vícevláknových aplikací, vytvoření instalačního balíčku a další. Navíc přináší přehled novinek zavedených v posledních verzích jazyka C#.
První díl dvoudílného skripta věnovaného programování v Javě, pokrývá programovací jazyk; výklad je založen na Javě 14. V první kapitole ukáže jednoduchý program, jeho překlad a spuštění a vysvětlí pojmy jako virtuální stroj, platforma Java atd. Ukáže také vytvoření a použití archivu jar a vlastní dokumentace. V dalších dvou kapitolách se čtenář narychlo seznámí s jazykem, aby mohl při dalším výkladu samostatně psát jednoduché příklady.
V následujících kapitolách najdete podrobný výklad syntaxe a sémantiku jazyka Java. Postupně projdeme strukturu programu, balíky a moduly, základní datové typy, příkazy, výrazy a operátory, třídy a objekty, rozhraní, generické datové typy a jejich použití a práci s výjimkami. Poslední kapitola je věnována stručnému seznámení s integrovaným vývojovým prostředím Apache NetBeans.
Na začátek stránky Knihy Skripta Poznámky Přednášky a semináře Moje domovská stránka Články Machiavelli by záviděl a Machiavelli podruhé