PB071 - Úvod do jazyka C

Nebuď béčko - uč se Céčko!

Užívejte Céčko - nedostanete programátorské kurděje! 

Jednou z hlavních příčin úpadku římské říše bylo to, že neznali nulu, a nemohli proto indikovat, zda jejich céčkovské programy skončily úspěšně. (Robert Firth)

while(!asleep()) sheep++;

Proč bylo vytvořeno tolik programovacích jazyků? (Podle Ala Stevense)
COBOL je proto, aby programu rozuměli i šéfové.
BASIC je pro neprogramátory.
FORTRAN je pro vědce.
ADA prostě pochází od úřední komise.
PILOT je pro učitele.
PASCAL je pro studenty.
LOGO je pro děti.
APL je pro Marťany.
FORTH, LISP a PROLOG jsou pro specialisty.
No a Céčko je pro programátory.

Obsah předmětu:

  1. Historie, překladače, utility: Historické návaznosti jazyka C. Jeho vztah k operačnímu systému Unix.
    Překladače jazyka C pod Unixem a MS-DOS/MS-Windows. Úvod do unixovských utilit make a gdb.
  2. Data, operátory, výrazy, příkazy: Datové typy, konstanty, deklarace; operátory, výrazy, příkazy, řídicí struktury, základní V/V
  3. Pole a ukazatele
  4. Textové řetězce, preprocesor 1
  5. Funkce, preprocesor 2
  6. Uživatelské datové typy, dynamická alokace paměti 
  7. Vstup a výstup
  8. Návaznost C na OS, zejména UNIX: Provádění příkazů a programů, soubory, adresáře, čas, procesy
  9. Ovládání obrazovky a klávesnice: Knihovny curses a conio.

Obsah dalších přednášek bude doplňován průběžně.

Studijní materiály

K předmětu:

Pravidla cviceni, zadani domacich ukolu, manualy...

Na Webu:

POZOR - řada následujících materiálů popisuje jazyk C podle zastaralé normy ANSI (C89)!

Knihy a časopisecké články:

Cvičení

Náplň cvičení

Pravidla pro cvičení

Konvence pro programování v jazyku C (změněno 18. 2. 2009 a 20. 3. 2009)

Sazebník "odměn a pokut"  (změněno 18. 2. 2009)

Předmět je vypsán se 2 hodinami cvičení týdně. Pouze 1 hodina však probíhá organizovaně podle rozvrhu (s výjimkou speciálních skupin). Druhou hodinou se rozumí samostatné dokončení práce započaté v organizovaném cvičení (v počítačové hale, na vlastním počítači apod.) U některých cvičení ji nebudete muset využít, jindy si naopak příklad vyžádá větší čas.

Obsazení skupin pro cvičení se dozvíte (a do skupin přihlásíte) prostřednictvím IS MUNI (odkaz "Seminární skupiny").

Domácí úkoly:

  1. týden: Oprava zdrojového kódu ze Subversion

Další domácí úkoly najdete o několik řádků výše pod odkazem Náplň cvičení.

Kdo končí zkouškou, dělá jako její součást vybraný zkouškový příklad. Jejich zadání předpokládám začátkem 12. týdne.

V posledních týdnech budete řešit zkouškový příklad jako součást zkoušky.

Zkouškové příklady

Zkouška

Obvyklým ukončením předmětu je zkouška. Má formu testu zkoušecím programem (výběr správné odpovědi: 20-25 otázek, 5 odpovědí, z nichž 1 je správná, průměrně 2 minuty na otázku). Nedílnou (i když časově oddělenou) součástí zkoušky je vypracování závěrečného příkladu. Příklad si student volí z nabídky zveřejněné ke konci semestru. Příklad je možno si vybrat až poté, co má student v IS zapsán zápočet ze cvičení. Volbu příkladu student ohlásí zkoušejícímu, ten mu ji buď potvrdí, nebo přidělí jiný příklad. Na příkladu začněte pracovat až po schválení volby - jinak riskujete, že se pustíte do příkladu, který Vám nebude schválen. 

I závěrečný příklad je hodnocen bodově. Za perfektní vypracování lze podle zvoleného příkladu získat max. 20 - 30 bodů.

Příklad musíte odevzdat nejpozději týden před zkušebním termínem, na nějž jste se přihlásili. Závěrečný příklad se odevzdává zkoušejícímu, nikoli vyučujícímu ve cvičení. Studenti, kteří předmět končí jen zápočtem, závěrečný příklad nezpracovávají.

Po ukončení testu Vám zkoušející sdělí úspěšnost v procentech. Za úspěšnost 100 % získáte 40 bodů; za horší výsledek nižší počet (při 50 % 0 bodů, při ještě slabším výsledku je bodová hodnota záporná). Minimální přijatelná hodnota není omezena, ale snižuje Vám celkový počet bodů, takže nemusíte překročit hranici dělící známku E (dobře) od F (nevyhovující).

Na klasifikaci má vliv i počet bodů  získaný za cvičení a za závěrečný příklad. Ke zdárnému složení zkoušky je nutno splnit podmínky všech tří komponent, na jejichž základě je hodnocena. Tedy student musí získat zápočet (obvykle to znamená skóre ze cvičení -30 bodů nebo lepší), musí odevzdat uspokojivě vyřešený závěrečný příklad a celkový počet bodů za celý předmět včetně testu musí dosahovat alespoň stanovené hodnoty.

Ke zkoušce se student přihlašuje prostřednictvím Informačního systému MU. Tamtéž lze zjistit i vypsané termíny a jejich obsazenost.

Případ pro detektivy

Dokážete odhadnout, co dělá tento zašmodrchaný program?