Programování v Unixu (v jazyce C)

NSWI015, MFF UK, zimní semestr 2008/2009
úterý 14:00-15:30 v S9 (Malá Strana)

Information for Erasmus students

Obsah

Osnova přednášky
Materiály k přednášce
Přístup na unixové stroje
Live CD
Zkoušky (pravidla)
Cvičení a zápočty
Konzultace
Kontakt a eskalace
Rozvrh

News

Osnova přednášky

Této osnovy přednášky se budu snažit držet. Čísla slajdů berte orientačně, průběžně slajdy upravuji.

Materiály k přednášce

Přístup na unixové stroje

Pro testování vašich programů stačí vzdáleně pracovat na mašinách v labu. Linuxové stroje přístupné zvenku jsou u-pl1u-pl15, Solaris je na u-us, IRIX na kappa. Nemyslím že tu jsou stroje s některým z BSD systémů, ale na koleji je kolej, kde je FreeBSD a kde můžete získat účet od Dana. Pro přihlašování z unixových systémů použijte ssh, který na svém systému určitě najdete, pro Windows pak doporučuji stáhnout PuTTY.

LiveCD distribuce

Pro vyzkoušení některých systémových volání i dalších věcí je vhodné být root. Pokud nemáte vhodný systém doma nebo jinde, pro začátek zcela postačí některá z live distribucí, kterou pouze vypálíte na CD (nebo jen stáhnete) a nabootujete, ať již přímo na počítači nebo v některém z emulátorů (např. VirtualBox, QEMU, VMWare). Já jsem v poslední době pracoval z těchto tří pouze s VirtualBoxem a mohu ho jednoznačně doporučit. Co se týče live CD, doporučuju například distribuci FreeBSD FreeSBIE (tu je možné dokonce na disk i nainstalovat). Chcete-li Live CD pro Solaris, doporučuji poslední verzi OpenSolaris nebo BeleniX. Asi nebudete mít problém nalézt Live CD pro Linux. Pro OpenBSD můžete použít OliveBSD, pro NetBSD NetBSD Live CD 2007.

Zkoušky

Ke zkoušce je potřeba zápočet, včetně předtermínů. Pokud jste nechodili na cvičení, ověřte si, že vám ještě funguje účet do labu (zkuste se přes SSH přihlásit na jeden z unixových strojů uvedených nahoře). Pokud ne, řešte se službou, ja vám v tomto pomoci nemohu.

Termíny

Termíny budou ve školním informačním systému a budou asi v pátek odpoledne cca od 14h. Pokud bude zájem několika lidí, může být předtermín, ale vzhledem k tomu, že na dosavadní předtermíny chodili 1-2 studenti, spíše to letos vynechám. O zkouškovém bude pravděpodobně každý týden jeden termín asi mimo prvního (opět - není o něj většinou zájem), a jeden nebo dva termíny se budu snažit udělat do měsíce od ukončení zkouškového období pro ty co nestihli. Následně bude každých cca 8 týdnů jeden termín mimo měsíců červenec/srpen, až do září, kdy bude termín poslední, a bude někdy v jeho druhé polovině. Den před vaším termínem se podívejte na tuto stránku na sekci News, jestli nejsou nějaké změny. Celkově to vychází na cca 8 termínů. Na termínech je vždy místo, respektive poslední 2 roky tomu tak bylo.

Nástroje

Měli byste být schopni odladit svůj program pouze za použití terminálů, programových nástrojů spouštěných z příkazové řádky (gcc, make, ld, ...) a editoru vim (vi). To jsou znalosti z prvního ročníku a z této přednášky. To, že v den zkoušky v labu zrovna nefunguje vaše oblíbené integrované vývojové prostředí a vy neumíte pracovat v ničem jiném, opravdu není můj problém. Jestli se vám lépe pracuje z vašeho notebooku, klidně pracujte z něj, způsob odevzdání práce dohodneme na místě.

Pravidla

Ke zkoušce se přihlaste ve školním informačním systému. Pokud se na termín nehodláte dostavit, je nutné se odhlásit do 22:00 předchozího dne (pak již vám to systém nedovolí). Nedostavení se ke zkoušce je považováno za neúspěšný termín. Přihlásit je možné se kdykoli. Ke zkoušce je potřeba zápočet, včetně předtermínů.

Zkouška má písemnou a ústní část. Písemná část zkoušky trvá 2.5 hodiny a jejím obsahem je napsání krátkého programu používajícího služby UNIXu. Písemka se píše u počítače, vaše řešení mi na konci uložíte do write-only adresáře. Je dovoleno používat jakoukoli literaturu nebo materiály (slajdy a poznámky z přednášky, mé ukázkové příklady, knihy, manuálové stránky, příklady které jste si napsali při učení, web včetně vyhledávání apod.). Není samozřejmě dovoleno jakkoli s kýmkoli komunikovat (studenti okolo vás, mail, chat, talk, ...). Není pochopitelně dovoleno přistupovat ani do /home adresáře mimo váš domovský adresář -- není prostě dovoleno komunikovat mezi sebou jakýmkoli způsobem.

Ústní část zkoušky má dvě části:

  1. diskuse nad písemkou. Nezapomente použít přepínač -Wall, psát přehledně a správně otestovat alespoň jedno systémové volání a pak všechna ,,důležitá'' (např. open). To znamená, že testovat návratové hodnoty třeba funkcí pro zamykání/odemykání mutexů není nutné. Jinými slovy - pokud víte co děláte, můžete některý kód vynechat.
  2. teorie (2 otázky + doplňující otázka v případě nerozhodné známky). Při ústní zkoušce nejsou dovolené žádné pomůcky.

Okruhy otázek pro tento rok, ukázkové zadání příkladů ze zkoušek z minulých let.

Hodnocení

Pokud vám zkouškový program nefunguje podle zadání, rovná se to neúspěšnému termínu. Podle kvality implementace, případných nalezených drobných chyb a diskuze nad řešením je rozhodnuto o známce z první části.

Hodnocení teoretické části je souhrnné hodnocení daných dvou otázek. Pokud není výsledná známka této části alespoň za tři, rovná se to neúspěšnému termínu.

Celkové hodnocení se skládá z hodnocení ústní a písemné části; obě tedy musí být minimálně za tři. Při nerozhodné známce rozhoduje třetí otázka pro ústní část.

Cvičení a zápočty

Každý cvičící si určuje své podmínky, tyto jsou pro moje cvičení. Znovu opakuji, že zápočet je nutný ke zkoušce.

Konzultace

Ideálně mailem, případně během cca 15 minut před přednáškou přímo v posluchárně, případně během 15 minut po ní. Je také možné se individuálně domluvit mailem. Konzultace se cvičícími si dohodněte individuálně.

Kontakt a eskalace

Kontakt na mě je v sekci kontaktů. Problémy se cvičením řešte se cvičícím; pokud máte pocit, že to nepomohlo, eskalujte na mě. Pokud vám na této stránce něco chybí, napište a já se to budu snažit doplnit. Pokud budete mít pocit, že problém který jste řešili se mnou se nevyřešil jak měl, mým nadřízeným je Libor Forst.

Rozvrh

Je ve školním informačním systému, včetně skupin na cvičení a kontaktů na cvičící.


Last changed: Thu Apr 30 14:48:32 CEST 2009