Logo ČVUT
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
STUDIJNÍ PLÁNY
2018/2019

Programování v C

Přihlášení do KOSu pro zápis předmětu Zobrazit rozvrh
Kód Zakončení Kredity Rozsah Jazyk výuky
B3B36PRG Z,ZK 6 2P+2C česky
Přednášející:
Jan Faigl (gar.)
Cvičící:
Jan Faigl (gar.), Jan Bayer, Petr Čížek, Jindřiška Deckerová, Daniel Fišer, Otakar Jašek, Pavel Pačes, Miloš Prágr, Jakub Svoboda, Rudolf Jakub Szadkowski, Petr Váňa
Předmět zajišťuje:
katedra počítačů
Anotace:

Cílem předmětu je získat ucelenou hlubší znalost programovacího jazyku C a to z pohledu fungování programu, přístupu a správou paměti a vytváření více-vláknových aplikací. V předmětu je kladen důraz na osvojení si programovacích návyků pro vytváření čitelných, a znovu použitelných programů. Studenti se v předmětu seznámí s překladem zdrojových kódu a jejich laděním. Přednášky budou založeny na prezentaci základních programových konstrukcí a demonstraci motivačních programů dávající do souvislosti dílčí konstrukty s praktickým zápisem poukazující na čitelnost a strukturu zdrojových kódů, reálnou výpočetní náročnost a s tím související nástroje pro profilování a ladění. Studenti se seznámí s principy paralelního programování více-vláknových aplikací, mechanismy synchronizace a modely více-vláknových aplikací. V závěru semestru budou stručně představeny základní vlastnosti objektově orientovaného rozšíření C++.

Požadavky:
Osnova přednášek:

1. Základy programovaní v C, charakteristika jazyka, model kompilace, syntax jazyka, struktura programu a struktura funkce

2. Datové typy - reprezentace v paměti, deklarace, operátory, výrazy a řídicí struktury

3. Příkazy, standardní vstup a výstup. Funkce, makra a preprocesor a standardní knihovny

4. Ukazatele, dynamická alokace paměti; Pole a řetězce, vícerozměrná pole; Funkce, volání hodnotou a odkazem - zásobník

5. Struktury a uniony, výčtové typy a jejich vnitřní reprezentace

6. Moduly, projekty, Makefile, podmíněný překlad - ukázka aplikace

7. Práce se soubory - binární a textové soubory, sekvenční a přímý přístup do souboru

8. Ladění programu, ošetření výjimečných stavů

9. Vývoj jazyka C - verze a standardy, ANSI C, C99, C11, jejich rozšíření, přenositelnost a překladače

10. Paralelní programování - metody synchronizace výpočetních vláken

11. Paralelní programování - modely více vláknových aplikací

12. Základní rozdíly C a C++

13. Principy objektově orientovaného programování: třídy, objekty, zapouzdření, polymorfismus a dědičnost

14. Systémy pro správu verzí

Osnova cvičení:

Praktická cvičení jsou zaměřena na získání a procvičování programovacích návyků tak, aby studenti byli schopni samostatně vytvářet čitelné a přenositelné kódy, které budou spouštěny nejen na osobních počítačích, ale také na dedikovaných procesorových deskách typu Raspberry Pi. V průběhu semestru studenti získávají body za odevzdané úlohy a programovací písemky. Bodové hodnocení úlohy se skládá z bodů za správnost a efektivitu kódu, dále pak z bodů zohledňující kvalitu zdrojových kódů, jejich čitelnost a znovu použitelnost.

Cíle studia:
Studijní materiály:

Kochan: Programming in C (4th Edition), 2014, ISBN: 978-0321776419

Klemens: 21st Century C: C Tips from the New School, 2012, ISBN 978-1449327149

Sedgewick, Wayne: Algorithms (4th Edition), 2011, ISBN 978-0321573513

Herout: Učebnice jazyka C (VI. vydání), KOPP, 2010, ISBN 978-80-7232-406-4

Poznámka:
Další informace:
https://cw.fel.cvut.cz/wiki/courses/b3b36prg/start
Rozvrh na zimní semestr 2018/2019:
Rozvrh není připraven
Rozvrh na letní semestr 2018/2019:
06:00–08:0008:00–10:0010:00–12:0012:00–14:0014:00–16:0016:00–18:0018:00–20:0020:00–22:0022:00–24:00
Po
místnost T2:H1-130
Svoboda J.
16:15–17:45
(přednášková par. 1
paralelka 333)

Dejvice haly
AlgDejvice - Veřejná
Út
místnost T2:H1-130

07:30–09:00
(přednášková par. 1
paralelka 108)

Dejvice haly
AlgDejvice - Veřejná
místnost T2:H1-130
Čížek P.
09:15–10:45
(přednášková par. 1
paralelka 101)

Dejvice haly
AlgDejvice - Veřejná
místnost T2:H1-130
Čížek P.
11:00–12:30
(přednášková par. 1
paralelka 103)

Dejvice haly
AlgDejvice - Veřejná
místnost T2:H1-130
Čížek P.
12:45–14:15
(přednášková par. 1
paralelka 104)

Dejvice haly
AlgDejvice - Veřejná
místnost T2:D3-209
Faigl J.
14:30–16:00
(přednášková par. 1)
Dejvice
Posluchárna
St
Čt
místnost T2:H1-130
Deckerová J.
12:45–14:15
(přednášková par. 1
paralelka 102)

Dejvice haly
AlgDejvice - Veřejná
místnost T2:H1-130
Deckerová J.
14:30–16:00
(přednášková par. 1
paralelka 105)

Dejvice haly
AlgDejvice - Veřejná
místnost T2:H1-130
Prágr M.
16:15–17:45
(přednášková par. 1
paralelka 106)

Dejvice haly
AlgDejvice - Veřejná
místnost T2:H1-130
Prágr M.
18:00–19:30
(přednášková par. 1
paralelka 107)

Dejvice haly
AlgDejvice - Veřejná

místnost T2:H1-130

14:30–16:00
(přednášková par. 1
paralelka 109)

Dejvice haly
AlgDejvice - Veřejná
Předmět je součástí následujících studijních plánů:
Platnost dat k 23. 8. 2019
Aktualizace výše uvedených informací naleznete na adrese http://bilakniha.cvut.cz/cs/predmet4703406.html