{{indexmenu_n>2}}
====== Přednášky ======
Podklady přednášek pro aktuální akademický rok 2017/2018.
**Podklady tvoří podpůrný materiál a jejich učelem není nahradit vlastní zápisky z přednášky, které slouží také jako prostředek osvojení si studované problematiky.**
Tématicky je náplň přednášek pokryta v knize **Stephen G. Kochan: Programming in C (3rd Edition), Sams Publishing, 2005**, případně též //Pavel Herout, Učebnice Jazyka C - 1. díl, Kopp, 2016//. Před přednáškou je doporučeno pročíst si odkazované kapitoly.
V přednáškách uvedené zdrojové kódy jsou přiloženy v příslušném ''.zip'' archivu. Kromě vyzkoušení programů je též vřele doporučeno si složitější úlohy samostatně naprogramovat a přednáškové příklady využít pro inspiraci.
===== Harmonogram přednášek =====
^ #VTýden ^ Týden ^ Téma ^ Úterý 11:00 (Místnost T2:D2-256) ^
| 01 | 40. | Přednáška 01 - Pačes - C-Intro, organizace předmětu, úvod do procesorů, programování, .... \\ S. G. Kochan: kapitoly 2 a 3 | 03.10. - lec01 |
| 02 | 41. | Přednáška 02 - Pačes - C-Nutshell: co všechno potřebujete vědět o C pro dokončení předmětu. Struktura funkce main a funkcí obecně, základní smyčky, větvení programu, vstup a výstup.\\ S. G. Kochan: kapitoly 2 a 3 | 10.10. - lec02 |
| 03 | 42. | Přednáška 03 - Pačes - Příkazová řádka dokončení, pojem funkce/program, paměť a její reprezentace, vstupně výstupní obvody, základy adresování. \\ S. G. Kochan: kapitoly 3, 4, 5 a část 6 | 17.10. - lec03 |
| 04 | 43. | Přednáška 04 - Vítek - Preprocesor a sestavení programu. Primitivní datové typy, konverze, operátory. Interakce s operačním systémem – různé druhy platforem, příklad ladění programu. Nucleo a představení úlohy. \\ S. G. Kochan: kapitoly 4, 5, 6 a 12 | 24.10. - lec04 |
| 05 | 44. | Přednáška 05 - Vítek - Cyklus: řídící struktury a funkce: \\ S. G. Kochan: kapitoly 7, 10 a 11 | 31.10. - lec05 |
| 06 | 45. | Přednáška 06 - Vítek - Datové typy: pole a ukazatele. Paměťové třídy. Volání funkcí. \\ S. G. Kochan: kapitoly 8 a 11 | 07.11. - lec06 |
| 07 | 46. | Přednáška 07 - Vítek - Pole a ukazatele, řetězce. Dynamická alokace.\\ S. G. Kochan: kapitoly 9, 14, 17 a Appendix B | 14.11. - lec07 |
| 08 | 47. | Přednáška 08 - Vítek - Paměťové třídy. Ladění programu, GDB, Valgrind. \\ S. G. Kochan: kapitola 16 a Appendix B | 21.11. - lec08|
| 09 | 48. | Přednáška 09 - Pačes - Datové typy: Složený typ, výčtový typ a bitová pole.| 28.11. - lec09 |
| 10 | 49. | Přednáška 10 - Pačes - Vstup / výstup a standarní knihovny C, přesnost výpočtů a vnitřní reprezentace číselných typů | 05.12. - lec10 |
| 11 | 50. | Přednáška 11 - Pačes - Práce s pamětí, seznamy a existující algoritmy v standarní knihovny C | 12.12. - lec11|
| 12 | 51. | Přednáška 12 - Pačes - Paralení programování, paralelní výpočty a synchronizační primitiva (semafory, zprávy a sdílená paměť ). Vícevláknové programování, modely aplikací, POSIX vlákna C11 vlákna | 19.12. - lec12 |
| -- | 52. | //Zimní prázdniny// | - |
| 13 | 01. | Přednáška 13 - Vítek - Shrnutí znalostí získaných v předmětu, stromy, abstraktní datový typ | 02.01. - lec13 |
| 14 | 02. | Přednáška 14 - //Předtermín // | 09.01. |
/*
//Přednášky jsou řazeny chronologicky za sebou, v případě státního svátku nebo změny v rozvrhu tak nemusí číslo přednášky odpovídat aktuálním výukovému týdnu (#VTýden)//
*/
/* **Podklady budou průběžně aktualizovány **: bodové hodnocení, zadání domácích úkolů. */
===== Přednáška 01 - Pačes - C-Intro, organizace předmětu, úvod do procesorů, programování, ... =====
* [[https://drive.google.com/open?id=1qzHjl9ZOL_IclrUElwlKhP_i1jKYZ4YB_768olAcY1o|prezentace]]
* [[https://drive.google.com/drive/folders/0BxRSyjra-9zSNEVLamwwWXAzRWs?usp=sharing|přiložené demonstrační programy]]
--- //[[pacesp@fel.cvut.cz|Pavel Paces]] 2017/09/22 16:07//
===== Přednáška 02 - Pačes - C-Nutshell: co všechno potřebujete vědět o C pro dokončení předmětu. Struktura funkce main a funkcí obecně, základní smyčky, větvení programu, vstup a výstup. =====
* [[https://docs.google.com/a/cs.felk.cvut.cz/presentation/d/1v7r7GDBteqEji3sQ1Idabyg5BeuHzYbUi1PuUyRB800/edit?usp=sharing|prezentace]]
* [[https://drive.google.com/drive/folders/0BxRSyjra-9zSa3lSZlE3REdjRFk?usp=sharing|přiložené demonstrační programy]]
--- //[[pacesp@fel.cvut.cz|Pavel Paces]] 2017/10/09 17:46//
===== Přednáška 03 - Pačes - Příkazová řádka dokončení, pojem funkce/program, paměť a její reprezentace, vstupně výstupní obvody, základy adresování. =====
* [[https://docs.google.com/presentation/d/1MzxzkfmBWiaRt4_hKGjiP_4HR9VTIndbQ7wwbwad1DU/edit?usp=sharing|prezentace]]
* [[https://drive.google.com/drive/folders/0BxRSyjra-9zSNVVSc3hkVWZQVXM?usp=sharing|přiložené demonstrační programy]]
===== Přednáška 04 - Vítek - Základní rysy programovacího jazyka C, model kompilace, preprocesor, primitivní datové typy, příklad ladění=====
* [[https://docs.google.com/presentation/d/13nEGiuIPhh3WSpgkpcRaQt-NMgd4LHKiu9WCKstvEfw/edit#slide=id.p|prezentace]]
* [[https://drive.google.com/open?id=0BxhCxE6gJNp0LWw1RXdtRTJXTlk|přiložené demonstrační programy]]
--- //[[viteks@fel.cvut.cz|Stanislav Vítek]] 2017/10/24 09:27//
==== Otázky z přednášky ====
**Q: je možné zapsat binární konstantu?**
Ano, nicméně tato vlastnost není součástí standardu, jedná se o rozšíření (implementované jak v gcc, tak v clang). Více např. [[https://gcc.gnu.org/onlinedocs/gcc/Binary-constants.html#Binary-constants|zde]], včetně odkazu na další rozšíření.
===== Přednáška 05 - Vítek - Řídící struktury =====
* [[https://docs.google.com/presentation/d/19-giR6lIK8E85XJZtV4_BQnX9h3XZ852ZjJAVt-J1dM/edit?usp=sharing|prezentace]]
* [[https://drive.google.com/open?id=1eDFMFypwCw7G6AUq5FxYX_93zxKIln2B|přiložené demonstrační programy]]
--- //[[viteks@fel.cvut.cz|Stanislav Vítek]] 2017/10/31 09:11//
===== Přednáška 06 - Vítek - Pole, ukazatele, funkce =====
* [[https://docs.google.com/presentation/d/1PUDL6cAszBQE2O0ie-nVUtCCPv-nbOHgpP3hxUhuJks/edit#slide=id.p|prezentace]]
* [[https://drive.google.com/open?id=1PUDL6cAszBQE2O0ie-nVUtCCPv-nbOHgpP3hxUhuJks|přiložené demonstrační programy]]
--- //[[viteks@fel.cvut.cz|Stanislav Vítek]] 2017/11/07 10:50//
===== Přednáška 07 - Vítek - Pole a ukazatele, řetězce, dynamická alokace =====
* [[https://docs.google.com/presentation/d/19DZnSgEsIG1Uinyd2a5DxBVUxC32W4Iiv6VX1B5TupY/edit?usp=sharing|prezentace]]
* [[https://drive.google.com/open?id=1KtgCDOTiSYkUXeq5Tv2GALpKKWGXyMyl|přiložené demonstrační programy]]
--- //[[viteks@fel.cvut.cz|Stanislav Vítek]] 2017/11/14 09:40//
===== Přednáška 08 - Vítek - Paměťové třídy. Ladění programu, GDB, Valgrind. =====
* [[https://docs.google.com/presentation/d/1T1b4pQbSF6OjyWiQIbhTWAvDnJCGYfJeI98ksYtsQFg/edit?usp=sharing|prezentace]]
--- //[[viteks@fel.cvut.cz|Stanislav Vítek]] 2017/11/21 10:40//
===== Přednáška 09 - Pačes - Datové typy: Složený typ, výčtový typ a bitová pole. =====
* [[https://docs.google.com/presentation/d/12xKrLEddoVxUjoFXlZqu9SrCEYBMNf5f9lT7fng-PmI/edit?usp=sharing|prezentace]]
* [[https://drive.google.com/drive/folders/1z8Yxt-f-nY3l0Da7wIkSJJ8sjvSlDcfD?usp=sharing|přiložené demonstrační programy]]
===== Přednáška 10 - Pačes - Vstup / výstup a standarní knihovny C, přesnost výpočtů a vnitřní reprezentace číselných typů =====
* [[https://docs.google.com/presentation/d/1rSx2GQHxyRoqPigNua5frWLpYIS6VsE-Bh_GBWi8MC8/edit?usp=sharing|prezentace]]
* [[https://drive.google.com/open?id=1kBFKuAme9Uxxq6d0NWiX-rN9pCAy81E6|přiložené demonstrační programy]]
--- //[[pacesp@fel.cvut.cz|Pavel Paces]] 2017/12/12 16:28//
===== Přednáška 11 - Pačes - Práce s pamětí, seznamy a existující algoritmy v standarní knihovny C =====
* [[https://docs.google.com/presentation/d/1HmWGIDq8XSquuZHk54nKMplDeydYrELGhG8TXo8e3_o/edit?usp=sharing|prezentace]]
* [[https://drive.google.com/drive/folders/1MZCaNidnpb7sjljDOLCYE7h38hb6CZ9Z?usp=sharing|přiložené demonstrační programy]]
--- //[[pacesp@fel.cvut.cz|Pavel Paces]] 2017/12/12 16:28//
===== Přednáška 12 - Pačes - Paralení programování, paralelní výpočty a synchronizační primitiva (semafory, zprávy a sdílená paměť ). Vícevláknové programování, modely aplikací, POSIX vlákna C11 vlákna =====
* [[https://docs.google.com/presentation/d/14fWCIgg2mXXSHqd9zrUi7fNPv0fkMjJP5mgB9a05VO8/edit?usp=sharing|prezentace]]
* [[https://drive.google.com/drive/folders/1PmRt6ffA6sJDn6ntPxWSSf0gCOOPVIkw?usp=sharing|přiložené demonstrační programy]]
--- //[[pacesp@fel.cvut.cz|Pavel Paces]] 2017/12/12 16:28//
===== Přednáška 13 - Vítek - Shrnutí znalostí získaných v předmětu, stromy, abstraktní datový typ =====
* [[https://docs.google.com/presentation/d/1CeYBJ5xd4RtC_KJ9FOuBldma3U3LIxH-kV8R1fw4svo/edit?usp=sharing|prezentace]]
--- //[[viteks@fel.cvut.cz|Stanislav Vítek]] 2018/01/02 09:59//