PB071 Úvod do jazyka C

Fakulta informatiky
jaro 2013
Rozsah
2/2. 4 kr. (plus ukončení). Doporučované ukončení: zk. Jiná možná ukončení: z.
Vyučující
doc. RNDr. Petr Švenda, Ph.D. (přednášející)
Mgr. Luděk Bártek, Ph.D. (cvičící)
RNDr. Jiří Glozar (cvičící)
Mgr. Marek Klučár (cvičící)
Mgr. Michal Mikloš (cvičící)
RNDr. Lukáš Ručka (cvičící)
Mgr. Lubomír Sedlář (cvičící)
RNDr. Ondřej Strnad, Ph.D. (cvičící)
RNDr. Šimon Tóth (cvičící)
RNDr. Marek Vinkler, Ph.D. (cvičící)
Mgr. Jiří Weiser (cvičící)
Mgr. Jiří Zárevúcky (cvičící)
RNDr. Aleš Zlámal (cvičící)
Bc. Jan Bilík (pomocník)
Mgr. Tomáš Brukner (pomocník)
Mgr. Adrián Elgyütt (pomocník)
Mgr. Milan Fabian (pomocník)
Bc. Martin Hatina (pomocník)
RNDr. Marek Chalupa, Ph.D. (pomocník)
RNDr. David Klaška (pomocník)
Mgr. Juraj Kolčák (pomocník)
Dr.techn. Mgr. David Kouřil (pomocník)
Mgr. Tomáš Livora (pomocník)
Garance
doc. RNDr. Vlastislav Dohnal, Ph.D.
Katedra počítačových systémů a komunikací – Fakulta informatiky
Dodavatelské pracoviště: Katedra počítačových systémů a komunikací – Fakulta informatiky
Rozvrh
Po 12:00–13:50 D1
  • Rozvrh seminárních/paralelních skupin:
PB071/T01: Po 12:00–13:55 Učebna S6 (20), St 12:00–13:55 Učebna S6 (20), J. Glozar, P. Švenda, Nepřihlašuje se. Určeno pro studenty se zdravotním postižením.
PB071/01: Po 16:00–17:50 B117, P. Švenda
PB071/02: Po 16:00–17:50 B204, M. Klučár
PB071/03: Po 18:00–19:50 B117, P. Švenda
PB071/04: Po 18:00–19:50 B204, J. Zárevúcky
PB071/05: Út 8:00–9:50 B130, L. Bártek
PB071/06: Út 12:00–13:50 B204, J. Zárevúcky
PB071/07: Út 14:00–15:50 B204, L. Sedlář
PB071/08: St 8:00–9:50 G126, J. Weiser
PB071/09: St 8:00–9:50 B117, M. Vinkler
PB071/10: St 10:00–11:50 B117, M. Vinkler
PB071/11: St 12:00–13:50 B117, M. Mikloš
PB071/12: St 16:00–17:50 B130, L. Ručka
PB071/13: St 18:00–19:50 B130, L. Ručka
PB071/14: Čt 10:00–11:50 B130, M. Klučár
PB071/15: Čt 18:00–19:50 G125, J. Weiser
PB071/16: Pá 8:00–9:50 B130, L. Sedlář
PB071/17: Pá 8:00–9:50 B117, O. Strnad
PB071/18: Pá 10:00–11:50 B117, O. Strnad
PB071/19: Pá 12:00–13:50 B130, A. Zlámal
Předpoklady
IB001 Úvod do prog. skrze C || IB111 Úvod do prog. (Python) || IB999 Vstupní test z programování
U studentů se předpokládá znalost algoritmizace v Pascalu, případně jiném programovacím jazyce. Současně se předpokládá znalost operačního systému Unix na uživatelské úrovni, neboť odevzdání domácích příkladů a část cvičení probíhá pod Unixem.
Omezení zápisu do předmětu
Předmět je nabízen i studentům mimo mateřské obory.
Mateřské obory/plány
Cíle předmětu
Na konci tohoto kurzu bude student:
Ovládat základní syntaxi jazyka C podle norem ANSI a ISO/IEC.
Schopen dekomponovat zadaný problém a prakticky jej implementovat.
Schopen na základní úrovni používat moderní vývojové nástroje (IDE, debugger, verzovací nástroje...);
Znát základy POSIX C funkcí.
Komentovat kód s možností automatického generování dokumentace.
Ovládat základní dobré programátorské návyky.
Překládat programy pod OS typu Unix i Windows.
Osnova
  • Historické návaznosti jazyka C. Jeho vztah k operačnímu systému Unix.
  • Překladače jazyka C pod Unixem a MS Windows, vývojové prostředí, debugger, verzovací systémy, dokumentace Doxygen, dobré programátorské návyky, testování.
  • Datové typy, konstanty, deklarace, výrazy. Přiřazovací výrazy a příkazy.
  • Základní struktura programu. Příkazy preprocesoru. Komentáře. Řídicí struktury. Nejdůležitejší příkazy vstupu a výstupu.
  • Pole, ukazatatele, funkce. Volání hodnotou, předání operandu pomocí ukazatele.
  • Textové řetězce a manipulace s nimi. Standardní knihovna jazyka C podle norem ANSI a ISO/IEC.
  • Deklarace, uživatelské datové typy. Dynamická alokace paměti.
  • Vstup a výstup, práce se soubory, práce se širokými znaky.
  • Návaznost na OS Unix a Windows. Základy POSIX C knihovny. Implementace na různých OS.
  • Ovládání klávesnice a myši.
  • Bezpečné a defensivní programování. Pokročilé testování.
Literatura
  • Kernighan, Brian W. - Ritchie, Dennis M. Programovací jazyk C. Brno: Computer Press, 2006. ISBN 80-251-0897-X
  • HEROUT, Pavel. Učebnice jazyka C. 3. upr. vyd. České Budějovice: KOPP, 1996, 269 s. ISBN 80-85828-21-9. info
  • HEROUT, Pavel. Učebnice jazyka C. České Budějovice: KOPP, 1998, 236 s. ISBN 80-85828-50-2. info
  • DRESSLER, Miroslav. Programovací jazyky GNU : volně šiřitelná programátorská prostředí : Fortran, jazyk C, Pascal, GRX, DJGPP, RHIDE, RSX, VESA, EMX, MAKE. 1. vyd. Praha: Computer Press, 1998, xix, 225. ISBN 8072260707. info
Záložky
https://is.muni.cz/ln/tag/FI:PB071!
Výukové metody
Výuka probíhá formou kombinace teoretických přednáškových lekcí s praktickými cvičeními, doplněnými samostatnými domácími programátorskými úlohami procvičujícími probranou látku z přednášek.
Metody hodnocení
Ve cvičeních studenti samostatně vytvářejí zadané programy (obvykle s nutností dokončit doma nebo v počítačové učebně). Zpracování příkladů je bodováno podle předem oznámených kritérií. Doporučené ukončení předmětu je zkouška, která probíhá formou testu prováděného na počítači. Podmínkou připuštění k testu je získání zápočtu ze cvičení a samostatné úspěšné zpracování závěrečného příkladu. Klasifikace závisí na bodovém hodnocení práce ve cvičeních a na domácích úkolech, výsledků vnitrosemestrálního testu a na výsledku závěrečného testu.
V případě ukončení zápočtem stačí v patřičných termínech odevzdat řádně zpracované příklady zadávané v průběhu semestru a vypracovat zápočtový příklad.
Účast ve cvičeních je povinná.
Navazující předměty
Informace učitele
http://cecko.eu/public/pb071
Předmět je určen pro studenty, kteří chtějí získat základní znalosti jazyka C a nebo později studovat předmět PB161 (Programování v jazyce C++) a nemají dostatečné základy klasického jazyka C.
Další informace jsou během semestru zveřejněny na webovské stránce předmětu.
Přednášejícího můžete kontaktovat osobně v místnosti B420 nebo e-mailem na adrese svenda@fi.muni.cz
Další komentáře
Studijní materiály
Předmět je vyučován každý semestr.
Nachází se v prerekvizitách jiných předmětů
Předmět je zařazen také v obdobích podzim 2002, jaro 2003, jaro 2004, jaro 2005, jaro 2006, jaro 2007, jaro 2008, jaro 2009, jaro 2010, jaro 2011, podzim 2011, jaro 2012, podzim 2012, podzim 2013, jaro 2014, jaro 2015, jaro 2016, jaro 2017, jaro 2018, jaro 2019, jaro 2020, jaro 2021, jaro 2022, jaro 2023, jaro 2024, jaro 2025.