Popis předmětu - BAB36PRGA

Přehled studia | Přehled oborů | Všechny skupiny předmětů | Všechny předměty | Seznam rolí | Vysvětlivky               Návod
BAB36PRGA Programování v C
Role:P Rozsah výuky:2P+2C
Katedra:13136 Jazyk výuky:CS
Garanti:Faigl J. Zakončení:Z,ZK
Přednášející:Faigl J. Kreditů:6
Cvičící:Faigl J., Feber J., Valouch D. Semestr:L

Webová stránka:

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

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 jsou 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 jsou stručně představeny základní vlastnosti objektově orientovaného rozšíření C++.

Cíle studia:

Získání zkušeností s programováním a získání programovacích návyků tvorby funkčních a správně implementovaných programů. Osvojení si psaní čitelných, srozumitelných, dobře udržovatelných a znovupoužitelných programů. Porozumění cizím kódům. Seznámení se s tvorbou programů pro operační systém. Realizace vícevláknovné aplikace komunikující s jiným programem.

Obsah:

Předmět provází základními rysy programování v jazyce C s důrazem na paměťovou reprezentaci dat v paměti počítače. Dále jsou rozvíjeny koncepty vícevláknových aplikací a realizace jednoduché aplikace pro operační systém. V předmětu si studenti osvojí praktickou implementaci samostatných jednoduchých úkolů s důrazem na funkčnost a správnost implementaci. Samostatnost je rozvíjena v domácích úkolech s možností realizace volitelných a bonusových úkolů. Závěrečné úkoly směřují k implementaci ovládací aplikace pro komunikaci s jiným program mechanismy meziprocesové komunikace. U vybraných úkolů je součástí také hodnocení kódovacího stylu motivované psaním čitelných, srozumitelných a udržovatelných kódů.

Osnovy přednášek:

1. Informace o předmětu, Úvod do programování v C
2. Výrazy a řídicí struktury
3. Datové typy: pole a ukazatele. Paměťové třídy. Volání funkcí
4. Pole, řetězce a ukazatele
5. Datové typy: Složený typ, výčtový typ a bitová pole. Preprocesor a sestavení programu
6. Vstup / výstup a standarní knihovny C
7. Paralení programování, paralelní výpočty a synchronizační primitiva (semafory, zprávy a sdílená paměť)
8. Vícevláknové programování, modely aplikací, POSIX vlákna (a C11 vlákna)
9. Praktická ukázka a ladění programu
10. ANSI C, C99, C11 a rozdíly mezi C a C++; úvod do C++
11. Stručný úvod do C++ (v příkladech)
12. C++ konstrukty v příkladech
13. (Rezerva) Systémy pro správu verzí (volitelné téma)
14. (Rezerva)

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. 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.
1. Úvodní cvičení
2. Cykly a vnořené cykly
3. Řídicí struktury, funkce a ladění programu
4. Pole variabilní délky a textové řetězce
5. Dynamická alokace, struktury
6. Spojové struktury, práce se soubory
7. Meziprocesová komunikace
8. Vícevláknové aplikace
9. Vícevláknové aplikace
10. Zadání HW 9
11. Konzultace k úkolu HW 9
12. Konzultace k úkolu HW 9
13. Konzultace
14. (Rezerva)

Literatura:

• King: C Programming: A Modern Approach, (2nd Edition or later), 2008. • Kochan: Programming in C, (3rd Edition or later), 2014. • Klemens: 21st Century C: C Tips from the New School, 2012. • Sedgewick, Wayne: Algorithms (4th Edition or later), 2011. • Cormen, Leiserson, Rivest, and Stein: Introduction to Algorithms, (3rd Edition or later), 2009.

Požadavky:

Klíčová slova:

https://cw.fel.cvut.cz/wiki/courses/bab36prga

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

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


Stránka vytvořena 28.3.2024 12:50:27, semestry: Z/2024-5, Z,L/2023-4, 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)