Kurs nízkoúrovňového programování v C/C++ s důrazem na objektové programování a objektový návrh programů.
Předpokládá znalosti základního kurzu programování NMIN111 Programování 1 a NMIN112 Programování 2, na
které navazuje.
Poslední úprava: Töpfer Pavel, doc. RNDr., CSc. (28.09.2020)
Required course for bachelor's program in Information security.
Poslední úprava: G_M (16.05.2012)
Podmínky zakončení předmětu -
Předmět je zakončen zápočtem a zkouškou. Zápočet není nutný k účasti na zkoušce.
K získání zápočtu se požaduje:
aktivní účast na cvičení spočívající obvykle v řešení úkolů (programů) v termínech stanovených cvičícím (ať už na cvičení nebo doma),
vypracování zápočtového programu a jeho odevzdání do termínu stanoveného cvičícím,
úspěšné absolvování zápočtového testu.
Povaha prvních dvou požadavků neumožňuje vypsat opravné termíny. Vyučující může stanovit podmínky, za nichž student může nahradit chybějící domácí úkoly nebo opakovaně odevzdat zápočtový program po odstranění nalezených závad.
Na složení zápočtového testu má student tři pokusy do konce zkouškového období zimního semestru (jeden řádný a dva opravné termíny). Vyučující může studentům povolit vykonat opravný termín i dodatečně během letního semestru.
Poslední úprava: Holan Tomáš, RNDr., Ph.D. (13.10.2017)
Předmět je zakončen zápočtem a zkouškou. Zápočet není nutný k účasti na zkoušce.
K získání zápočtu se požaduje:
aktivní účast na cvičení spočívající obvykle v řešení úkolů (programů) v termínech stanovených cvičícím (ať už na cvičení nebo doma),
vypracování zápočtového programu a jeho odevzdání do termínu stanoveného cvičícím,
úspěšné absolvování zápočtového testu.
Povaha prvních dvou požadavků neumožňuje vypsat opravné termíny. Vyučující může stanovit podmínky, za nichž student může nahradit chybějící domácí úkoly nebo opakovaně odevzdat zápočtový program po odstranění nalezených závad.
Na složení zápočtového testu má student tři pokusy do konce zkouškového období zimního semestru (jeden řádný a dva opravné termíny). Vyučující může studentům povolit vykonat opravný termín i dodatečně během letního semestru.
Poslední úprava: Holan Tomáš, RNDr., Ph.D. (29.10.2019)
Literatura -
S. Lippman, J. Lajoie, B. Moo: C++ Primer, Addison--Wesley 2012.
B. Stroustrup: Programming: Principles and Practice Using C++, Addison--Wesley 2014.
B. Stroustrup: A Tour of C++, Addison-Wesley 2018.
M. Virius: Jazyky C a C++ podle normy ANSI/ISO Grada Publishing 2005.
Poslední úprava: Pergel Martin, RNDr., Ph.D. (13.09.2021)
S. Lippman, J. Lajoie, B. Moo: C++ Primer, Addison--Wesley 2012.
B. Stroustrup: Programming: Principles and Practice Using C++, Addison--Wesley 2014.
B. Stroustrup: A Tour of C++, Addison-Wesley 2018.
P. Prinz, T. Crawford: C in a Nutshell: The Definitive Reference, O'Reilly 2015.
Poslední úprava: Pergel Martin, RNDr., Ph.D. (13.09.2021)
Požadavky ke zkoušce -
Zkouška má pouze ústní část, která obsahuje typicky dvě otázky odpovídající sylabu přednášky a tomu, co byo procvičováno na cvičení.
Požadavky ke zkoušce odpovídají sylabu předmětu v rozsahu předneseném na přednáčce.
Poslední úprava: Holan Tomáš, RNDr., Ph.D. (13.10.2017)
Exam has oral part only. This part consists of answering two questions based on sylabus and real content of lectures and tutorials. One question typically asks about object design for a given problem, one question is usually more theoretical and asks about specifics of the language, general programming and related theory.
Requirements of the exam correspond to the sylabus of the lecture in the level of detail appropriate to what and how was lectured.
Poslední úprava: Pergel Martin, RNDr., Ph.D. (29.10.2019)
Sylabus -
Kurs nízkoúrovňového programování v C/C++ s důrazem na objektové programování a objektový návrh programů. Předpokládá znalosti základního kurzu programování NMIN101 a NMIN102, na které navazuje.
C: Základy
Hello, world!
deklarace proměnných (zatím jenom int) a přiřazování
podmínky, cykly, break a continue
deklarace a volání funkcí
C: Aritmetika
celočíselné typy
floating-point typy
aritmetické a bitové operátory
relační a booleovské operátory
přiřazovací operátory
explicitní a automatické typové konverze
literály (včetně typovaných)
komplexní čísla
C: Složené typy
struct, union
pole
ukazatele
kvalifikátory (const, volatile)
jak číst složité deklarace
Principy počítačů
procesor, paměť, periferie
organizace paměti: kód, statická data, dynamická data, zásobník
uložení dat v paměti:
celá čísla, dvojkový doplněk
fixed-point reprezentace
IEEE floaty
znaky a různá jejich kódování
překladač, linker, knihovny
C: Práce s ukazateli
dynamická alokace paměti
spojové seznamy, stromy
reprezentace polí pomocí pointerové aritmetiky
práce s řetězci
C: Preprocesor
#include
#define
#if, #ifdef
C: Ostatní
switch, case, goto
vedlejší efekty a synchronizační body
knihovní typy
různé knihovní funkce
programy složené z více modulů, viditelnost identifikátorů
Poslední úprava: Töpfer Pavel, doc. RNDr., CSc. (18.01.2018)
We focus on C#-programming language, object-oriented design, object-oriented-programming-principles and practical programming using current development tools. Students get acquainted with particular programming-methods. They will also explore the tools for larger programms development (including the graphical interface).