Subject description - BAB36PRGA
Summary of Study |
Summary of Branches |
All Subject Groups |
All Subjects |
List of Roles |
Explanatory Notes
Instructions
BAB36PRGA | Programming in C | ||
---|---|---|---|
Roles: | P | Extent of teaching: | 2P+2C |
Department: | 13136 | Language of teaching: | CS |
Guarantors: | Faigl J. | Completion: | Z,ZK |
Lecturers: | Faigl J. | Credits: | 6 |
Tutors: | Faigl J., Feber J., Herynek J. | Semester: | L |
Web page:
https://cw.fel.cvut.cz/wiki/courses/bab36prga/startAnotation:
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++.Study targets:
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.Content:
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ů.Course outlines:
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) |
Exercises outline:
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) |
Literature:
• 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.Requirements:
Keywords:
https://cw.fel.cvut.cz/wiki/courses/bab36prga Subject is included into these academic programs:Program | Branch | Role | Recommended semester |
BPBIO_2018 | Common courses | P | 2 |
Page updated 4.12.2023 12:52:00, semester: L/2023-4, L/2022-3, Z/2024-5, Z/2023-4, Send comments about the content to the Administrators of the Academic Programs | Proposal and Realization: I. Halaška (K336), J. Novák (K336) |