Informace o předmětu
Předmět Programování v jazyce C (zkr. KIV/PC) si klade za cíl seznámit studenty s programováním v jazyce ANSI C – tedy ve vysoce přenositelném nízkoúrovňovém kompilovaném imperativním procedurálním jazyce, který vznikl v letech 1969 – 1973 v Bellových laboratořích AT&T díky úsilí Kena Thompsona, Dennise Ritchieho a Briana Kernighana. Hlavním důvodem vzniku jazyka byl probíhající vývoj operačního systému UNIX, jehož podstatná část je v jazyce C naprogramována.
Díky relativně přímé projekci zdrojového kódu v jazyce C na strojový kód cílového počítače (a tedy snadné konstrukci překladače a rychlému překladu) s sebou nese programování v tomto jazyce řadu specifik, kterým je věnována v předmětu KIV/PC odpovídající pozornost. Student by měl absolvováním předmětu nejen získat znalosti potřebné pro programování v jazyce C a částečně také C++ (což je objektové rozšíření C), ale i mnohem obecnější přehled, který mu umožní pracovat s prakticky libovolným nízkoúrovňovým jazykem, a seznámit se s obecnými principy nízkoúrovňového a systémového programování.
Ačkoliv řada "odborníků" již před časem prorokovala jazyku C brzký konec, stále platí, že je to jeden ze dvou nejpoužívanějších programovacích jazyků na světě – lze to ověřit např. v tzv. TIOBE Indexu na stránkách společnosti TIOBE, která se specializuje na objektivní analýzu kvality software. Jazyk C se s Javou pravidelně již několik let střídá na prvním místě. Důvodem je mimo jiné také to, že v Javě virtuální stroj Javy nenapíšete.
Náplň předmětu
Lexika a syntax jazyka ANSI C (řídicí konstrukce, definice datových typů, deklarace proměnných, výrazy, funkce). Programátorský model procesoru (základy assembleru procesorů rodiny Intel 80x86). Práce s ukazateli a správa paměti. Ovládání souborového systému a práce se soubory. Standardní knihovna ANSI C. Preprocesor jazyka C a podmíněný překlad, překladové moduly. Návaznost překladače na okolí, linkování modulů vytvořených v jiných jazycích (zejména assembleru), paměťové modely. Ladění programů a odstraňování chyb. Problémy přenositelnosti (zejména mezi platformami Win32 a UNIX/Linux). Mechanismus překladu a sestavování – makefile. Pomocné vývojové nástroje (splint, valgrind, debugger, profiler, ...). Úvod do objektově orientovaného jazyka C++. Základy programování aplikací s grafickým uživatelským rozhraním pomocí knihoven na tvorbu uživatelských rozhraní – Nokia Qt.
Zajištění a rozvrh předmětu v ZS 2010/2011
| Přednáší, cvičí a zkouší: | Ing. Kamil Ekštein, Ph.D. — KEk |
E-mail: kekstein kiv.zcu.cz |
|
| Kancelář: UK426 | |
| Konzultační hodiny: St 11:00 – 12:00 a 13:00 – 14:00 | |
| Telefon: (+420) 377 63 2406 |
|
| Dále cvičí a zkouší: | Ing. Jan Hejtmánek — JHe |
E-mail: hejtman2 kiv.zcu.cz |
|
| Kancelář: UL410 | |
| Konzultační hodiny: Po 10:30 – 11:30, Út 08:30 – 09:30 | |
| Telefon: (+420) 377 63 2458 |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | |
| 7:30 8:15 |
8:25 9:10 |
9:20 10:05 |
10:15 11:00 |
11:10 11:55 |
12:05 12:50 |
13:00 13:45 |
13:55 14:40 |
14:50 15:35 |
15:45 16:30 |
16:40 17:25 |
17:35 18:20 |
18:30 19:15 |
19:25 20:10 |
|
| Po | JHe UL409 |
JHe UL409 |
JHe UL409 |
JHe UL409 |
JHe UL409 |
JHe UL409 |
||||||||
| Út | KEk UL409 |
KEk UL409 |
KEk UL409 |
KEk UL409 |
KEk UP104 |
KEk UP104 |
KEk UP104 |
|||||||
| St | XXx XX000 |
XXx XX000 |
XXx XX000 |
XXx XX000 |
XXx XX000 |
XXx XX000 |
XXx XX000 |
XXx XX000 |
XXx XX000 |
XXx XX000 |
XXx XX000 |
XXx XX000 |
XXx XX000 |
XXx XX000 |
| Čt | KEk UL409 |
KEk UL409 |
||||||||||||
| Pá | XXx XX000 |
Podmínky získání zápočtu a zkoušky
Student má nárok na zápočet tehdy, jestliže odevzdá včas semestrální práci dle zvoleného zadání a získá za ní (za program a dokumentaci dohromady) celkem alespoň 21 bodů. Nejvíce lze získat za semestrální práci 70 bodů. Body se při hodnocení práce odečítají od maxima, tj. student přichází s čistým štítem (a plným počtem bodů) a za nalezené chyby v práci jsou mu body vyučujícím strhávány podle předem známého chybovníku.
Student je povinen vypracovat semestrální práci samostatně. Spolupráce více studentů na semestrální práci není dovolena a ani není vhodná, neboť právě samostatným programováním zadaného problému se nejlépe připravíte jak na zkoušku, tak na budoucí programátorskou praxi.
Značná pozornost je při hodnocení semestrální práce věnována její dokumentaci. Technická dokumentace je vizitkou inženýra a proto její přípravě věnujte maximální úsilí. Hodnotí se i schopnost odborného vyjadřování v českém (případně anglickém) jazyce. Je to dobrá průprava k bakalářské či diplomové práci.
V případě mimořádných výkonů studenta (vynikající nadprůměrná práce, originální
řešení zadaného problému, nadstandardní aktivita při cvičení, atp.) udělí vyučující v průběhu či na
konci semestru další body, které se započítávají do celkového výsledku.
Bližší informace o semestrální práci
V minulých letech probíhala zkouška dvěma dosti zásadně odlišnými způsoby: Buď jako praktická u počítače, přičemž úkolem studentů bylo upravit již existující program a doplnit do něj nové funkce, nebo jako písemný test teoretických znalostí, kde se fragmenty zdrojového kódu v jazyce C doplňovaly do předtištěných funkcí. Oba způsoby měly své nadšené příznivce i zaryté odpůrce. Proto bude v tomto semestru zvolen ten způsob, který si vybere na první přednášce demokratickým hlasováním většina studentů. Bližší informace pak budou uvedeny zde, podle zvoleného způsobu.
Zkoušku skládá student zcela samostatně. Může ovšem používat studijní materiály, které si přinese (poznámky z přednášek, učebnice a jiné knihy, atp.). Tyto materiály si ale studenti během zkoušky nesmí mezi sebou předávat. Vzájemná komunikace studentů při zkoušce není dovolena žádným způsobem (tedy ani pomocí mobilních telefonů, e-mailu, ICQ a podobných prostředků) a postihuje se okamžitým ukončením zkoušky s výsledkem "nevyhověl".
Protože zkouška je silně stresující okamžik, který může významně negativně ovlivnit výkon studenta,
podílí se na celkové známce jen z 30%. Student, který poctivě a pilně pracoval v průběhu semestru
a má tudíž dostatek bodů za semestrální práci, nemůže být od zkoušky vyhozen, v nejhorším případě
je hodnocen známkou "dobře".
Bližší informace o zkoušce
Konečné hodnocení studenta (získaná známka) je odvozeno od celkového počtu získaných bodů:
| Počet bodů | Hodnocení |
| 50 a méně | nevyhověl |
| 51 – 70 | dobře |
| 71 – 88 | velmi dobře |
| 89 a více | výborně |
Bodové rozpětí zhruba respektuje gaussovské rozdělení pravděpodobnosti. Své hodnocení (bodové i slovní vyučujícím po provedené kontrole semestrální práce) a výslednou známku najde každý student v sekci Výsledky podle svého osobního čísla.



kiv.zcu.cz