Fakulta elektrotechnická

České vysoké učení technické v Praze

ČVUT v Praze

Popis předmětu - B3B36PRG

Přehled studia | Přehled oborů | Všechny skupiny předmětů | Všechny předměty | Seznam rolí | Vysvětlivky               Návod
B3B36PRG Programování v C Rozsah výuky:2+2c
Garanti:Faigl J. Role:P Jazyk výuky:CS
Vyučující:Faigl J. Zakončení:Z,ZK
Zodpovědná katedra:13136 Kreditů:6 Semestr:L

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++.

Osnovy 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í

Osnovy 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.

Literatura:

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

Požadavky:

Webová stránka:

https://cw.fel.cvut.cz/wiki/courses/b3b36prg/start

Předmět je zahrnut do těchto studijních plánů:

Plán Obor Role Dop. semestr
BPKYR_2016 Před zařazením do oboru P 2


Stránka vytvořena 12.12.2017 12:48:10, semestry: L/2016-7, Z,L/2017-8, Z/2018-9, připomínky k informační náplni zasílejte správci studijních plánů Návrh a realizace: I. Halaška (K336), J. Novák (K336)
Za obsah odpovídá: doc. Ing. Ivan Jelínek, CSc.