Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Obě strany předchozí revize Předchozí verze Následující verze | Předchozí verze | ||
public:pb161 [2014/09/28 21:29] Petr Svenda |
public:pb161 [2018/02/24 19:10] (aktuální) |
||
---|---|---|---|
Řádek 1: | Řádek 1: | ||
- | ====== PB161: Programování v jazyce C++ - Podzim 2014 ====== | + | <note important>Tato stránka již není aktuální. Od podzimu 2016 se informace k předmětu PB161 nachází [[https://www.fi.muni.cz/pb161/|zde]].</note> |
- | Opravy po začátku semestru jsou zde uvedeny a v __textu podtrženy__ (pokud je to možné): | + | ====== PB161: Programování v jazyce C++ - Podzim 2015 ====== |
- | * 28.9.2014 Odevzdávání úloh dle C++11 - soubor cpp11 v repozitáři úlohy | + | |
===== Rozcestník ===== | ===== Rozcestník ===== | ||
Řádek 10: | Řádek 9: | ||
Detaily k [[public:pb161#odevzdani_domacich_ukolu|odevzdávání a hodnocení domácích úkolů]] | Detaily k [[public:pb161#odevzdani_domacich_ukolu|odevzdávání a hodnocení domácích úkolů]] | ||
- | Krátký souhrn [[public:pb161_konvencec|konvencí pro programování v C++]] | + | Krátký souhrn [[public:pb161_konvencec|konvencí pro programování v C++]] a [[public:pb161:doporuceni|doporučení]] |
===== Konzultační hodiny ===== | ===== Konzultační hodiny ===== | ||
* Nebojte se v hojné míře konzultovat problémy s domácími úkoly nebo probíranou látkou s učiteli|/cvičícími předmětu. | * Nebojte se v hojné míře konzultovat problémy s domácími úkoly nebo probíranou látkou s učiteli|/cvičícími předmětu. | ||
- | * Využijte primárně možnost konzultace problémů přímo na hodině nebo od studentských poradců (viz. níže). | + | * Využijte primárně možnost konzultace problémů přímo na hodině nebo od studentských poradců (viz níže). |
* **Konzultační hodiny přednášejícího**: | * **Konzultační hodiny přednášejícího**: | ||
- | * Pondělí 15:00-15:50, místnost A406, [[https://is.muni.cz/auth/osoba/4085|Petr Švenda]] | + | * Pondělí 14.10-15.40, místnost B421, [[https://is.muni.cz/auth/osoba/72525|Nikola Beneš]] |
- | * **Konzultační hodiny studentských poradců**: | + | * **Konzultační hodiny studentských poradců**: (vždy v počítačové hale) |
- | * BUDE UPŘESNĚNO | + | * Pondělí 14.00-15.00 [[https://is.muni.cz/auth/osoba/409963|Jiří Novotný]] |
- | * Hlavní počítačová hala, poblíž kopírky | + | * Pondělí 16.00-17.00 [[https://is.muni.cz/auth/osoba/410338|Peter Stanko]] |
- | * **Probíhá od druhého týdne semestru** | + | * Středa 17.00-18.00 [[https://is.muni.cz/auth/osoba/325253|Marek Osvald]] |
- | * Úterý, 16-17 hod, [[https://is.muni.cz/auth/osoba/410338|Peter Stanko]] | + | * Čtvrtek 15.00-16.00 [[https://is.muni.cz/auth/osoba/374038|Miroslav Jaroš]] |
- | * Útery 19-20 hod, [[https://is.muni.cz/auth/osoba/374038|Miroslav Jaroš]] | + | |
- | * Středa, ?? hod, [[https://is.muni.cz/auth/osoba/325253|Marek Osvald]] | + | |
- | * Čtvrtek 12-13 hod, [[https://is.muni.cz/auth/osoba/374038|Miroslav Jaroš]] | + | |
- | + | ||
===== Nástroje a jejich manuály ===== | ===== Nástroje a jejich manuály ===== | ||
Řádek 53: | Řádek 47: | ||
===== Pravidla pro cvičení z PB161 ===== | ===== Pravidla pro cvičení z PB161 ===== | ||
- | **Verze platná pro podzimní semestr 2014 (10.9.2014)** | + | 29. 9. 2015: přidána informace o nahrazování odpovědníků |
+ | |||
+ | **Verze platná pro podzimní semestr 2015 (16.9.2015)** | ||
Shrnutí nejdůležitějších bodů: | Shrnutí nejdůležitějších bodů: | ||
Řádek 60: | Řádek 56: | ||
* Odevzdání úkolu je nutné oznámit vyučujícímu spuštěním speciálního skriptu (detaily viz. [[public:pb161#pravidla_odevzdani|pravidla odevzdávání]], odevzdání naostro). | * Odevzdání úkolu je nutné oznámit vyučujícímu spuštěním speciálního skriptu (detaily viz. [[public:pb161#pravidla_odevzdani|pravidla odevzdávání]], odevzdání naostro). | ||
* Úkoly lze odevzdávat definovaným způsobem "nanečisto". Student získá automaticky výsledky některých hodnotících testů, aniž by přišel o body. | * Úkoly lze odevzdávat definovaným způsobem "nanečisto". Student získá automaticky výsledky některých hodnotících testů, aniž by přišel o body. | ||
- | * Zhruba ve třetině semestru proběhne bodovaný průběžný test (namísto přednášky v D3, odpovědní testové archy). | + | * Zhruba v polovině semestru proběhne bodovaný průběžný test (namísto přednášky v D3, odpovědní testové archy). |
- | * Na začátku většiny cvičení proběhne krátký 5 min testík z látky probírané na přednášce (celkem 10x). | + | * Na začátku většiny cvičení proběhne krátký 5min testík z látky probírané na přednášce (celkem 10x). Testík probíhá formou odpovědníku v ISu. **Pozor!** Otevření odpovědníku mimo dobu cvičení nebo z jiného místa než učebny, v níž cvičení probíhá, bude hodnoceno -5 body. |
- | * Zápočet je udělen za docházku a souhrnný zisk alespoň **65 bodů** za domácí úkoly, průběžný test, testíky na cvičení a úspěšné vypracování zápočtového příkladu na hodině. | + | * V případě **omluvené** neúčasti na cvičení (nutné doložit omluvenku na studijní oddělení) je možno zameškané testíky vyplnit v náhradním termínu: na nejbližším cvičení po skončení absence. |
+ | * Zápočet je udělen za docházku a souhrnný zisk alespoň **65 bodů** za domácí úkoly, průběžný test, testíky na cvičení a úspěšné vypracování zápočtového příkladu na hodině. **Nové!** Nutnou podmínkou pro získání zápočtu jsou alespoň **čtyři** úkoly hodnocené nenulovým počtem bodů. | ||
* Pro připuštění ke zkoušce je nutné získat zápočet. | * Pro připuštění ke zkoušce je nutné získat zápočet. | ||
* Zkoušku lze získat po získání zápočtu a za souhrnný zisk alespoň **95 bodů** získaných pro zápočet + body za zkouškový test. | * Zkoušku lze získat po získání zápočtu a za souhrnný zisk alespoň **95 bodů** získaných pro zápočet + body za zkouškový test. | ||
+ | * **Nové!** Body získané za bonusové části domácích úkolů a body získané za aktivitu na cvičeních jsou tzv. **měkké body**: nepočítají se do limitu 65, resp. 95 bodů pro zápočet a zkoušku, ale mohou zlepšit známku (viz níže [[public:pb161#bodove_rozlozeni_predmetu|bodové rozložení předmětu]]). | ||
* Na cvičeních bude pro psaní programů jako základní IDE využíván QT Creator 2.4.1. Student může využívat jiné IDE (např. Code::Blocks, Visual Studio, Eclipse...), pokud jej preferuje. Domácí úlohy úlohy se ale **odevzdávají a kontrolují na Aise s využitím překladače gcc** (viz. [[public:pb161#zpusob_odevzdani|způsob odevzdávání]]). | * Na cvičeních bude pro psaní programů jako základní IDE využíván QT Creator 2.4.1. Student může využívat jiné IDE (např. Code::Blocks, Visual Studio, Eclipse...), pokud jej preferuje. Domácí úlohy úlohy se ale **odevzdávají a kontrolují na Aise s využitím překladače gcc** (viz. [[public:pb161#zpusob_odevzdani|způsob odevzdávání]]). | ||
- | * Pokud se rozhodnete absolvovat cvičení formou **párového programování** (dva studenti společně vypracovávají domácí úkoly), obržíte za každý úkol 75 % ze získaných bodů a vypracováváte povinně šestý (jinak nepovinný) domácí úkol (více viz. párové programování). | + | * Je možné absolvovat cvičení formou **párového programování** (záleží na domluvě se cvičícím), u domácích úloh je nicméně potřeba aby každý student vypracoval svoje vlastní řešení. |
===== Průběh cvičení ===== | ===== Průběh cvičení ===== | ||
Řádek 72: | Řádek 70: | ||
* Detaily k jednotlivým cvičením včetně zadání domácích úkolů jsou dostupné [[public:pb161_cviceni|zde]]. | * Detaily k jednotlivým cvičením včetně zadání domácích úkolů jsou dostupné [[public:pb161_cviceni|zde]]. | ||
* V prvním týdnu se mají studenti seznámit s překladačem jazyka C++ pod operačním systémem Unix na příkazové řádce, překladem s využitím prostředí QT, způsob zadávání a odevzdávání domácích úkolů a detaily hodnocení. | * V prvním týdnu se mají studenti seznámit s překladačem jazyka C++ pod operačním systémem Unix na příkazové řádce, překladem s využitím prostředí QT, způsob zadávání a odevzdávání domácích úkolů a detaily hodnocení. | ||
- | * Na cvičeních je vyžadována aktivní práce na zadaných příkladech, které se vztahují k probrané látce a řešeném domácím úkolu. Cvičící aktivně poskytuje pomoc při řešení případných problémů a upozorňuje na použití dobrých programovacích návyků. Využijte přítomnost cvičícího pro konzultaci problémů! | + | * Na cvičeních je vyžadována aktivní práce na zadaných příkladech, které se tématicky vztahují k probrané látce a řešeném domácím úkolu. Cvičící aktivně poskytuje pomoc při řešení případných problémů a upozorňuje na použití dobrých programovacích návyků. Využijte přítomnost cvičícího pro konzultaci problémů! |
- | * Na cvičeních se pracuje primárně ve vývojovém prostředí QT Creator s využitím překladače gcc. Součástí výuky je i používání debuggeru a dalších vývojových nástrojů - jejich aktivní použití na cvičeních bude vyžadováno. Studenti ovládající dobře jiné vývojové IDE jej mohou použít s tím, že odevdávané domácí úkoly musí jít kompilovat pomocí gcc na aise (viz. [[public:pb161#odevzdavani|Odevzdávání]]). | + | * Na cvičeních se pracuje primárně ve vývojovém prostředí QT Creator s využitím překladače gcc. Součástí výuky je i používání debuggeru a dalších vývojových nástrojů - jejich aktivní použití na cvičeních bude vyžadováno. Studenti ovládající dobře jiné vývojové IDE jej mohou použít s tím, že odevdávané domácí úkoly musí jít kompilovat pomocí gcc na aise (viz. [[public:pb161#odevzdavani|Odevzdávání]]). |
- | + | * **Nové!** V roce 2015 budeme na cvičeních i při řešení domácích úkolů používat normu C++11, tzn. překládáme pomocí ''g++ -std=c++11''. | |
- | ===== Průběh cvičení - párové programování ===== | + | |
- | * Během prvních dvou týdnů se můžete rozhodnout pro absolvování předmětu formou [[http://en.wikipedia.org/wiki/Pair_programming|párového programování]] (dva studenti u jednoho počítače) | + | |
- | * Párové programování není povinné, můžete cvičení absolvovat samostatně | + | |
- | * Pokud jste nikdy o párovém programování neslyšeli, přečtěte si tento článek: http://www2.yk.psu.edu/~sg3/cmpbd205/assign/week01/ACMarticlePairProgramming.pdf | + | |
- | * Párové programování vede obecně k lepšími a robustnějšímu kódu a je prakticky používána ve firmách (blíže na cvičení) | + | |
- | * Rozhodnutí a rozdělení párů proběhne na základě spolupráce na prvním cvičení (budete mít možnost si potenciální partnery vyzkoušet) | + | |
- | * Ustavené páry nelze (s výjimkou vážných situací) v průběhu semestru měnit | + | |
- | * Studenti pracující v páru mají o něco méně práce a proto získávají za domácí úkoly pouze 75 % bodů, které by získal samostatně pracující student a vypracovávají jeden úkol navíc, díky kterému mají možnost získat zbylých 25 % bodů. | + | |
- | * Oba studenti v páru získávají za domácí úkolu stejný počet bodů (ostatní bodování je nadále individuální). Zápočtový příklad a zkoušku absolvují již samostatně. | + | |
- | * Domácí úkol odevzdává vždy jen jeden z dvojice. Po vyhodnocení jsou body zapsány oběma. | + | |
===== Domácí úkoly ===== | ===== Domácí úkoly ===== | ||
- | * Během semestru bude zadáno 5 domácích úkolů + 1 bonusový. | + | * Během semestru bude zadáno 5 domácích úkolů + 1 navíc. Ten je určen především proto, aby mohli nahnat body ti, kterým se v předchozích úkolech moc nedařilo. Z hlediska bodování apod. je všech 6 příkladů rovnocenných. |
- | * Od 2. týdne studenti samostatně vytvářejí zadané programy (domácí úkoly). Program se obvykle nepodaří beze zbytku dokončit během cvičení; je proto nutno program odevzdat do data uvedeného na začátku zadání domácího úkolu (položka 'Absolutní konec odevzdávání:'). | + | |
* Součástí tvorby programu je také jeho důkladné otestování. Doporučujeme nechat si program otestovat jinou osobou (kolegou), kterého posadíte do role uživatele. V cizím programu se snáze odhalí chyba, než když ho testujete sám - při testování vlastního programu myslíme stejně jako při jeho vytváření. | * Součástí tvorby programu je také jeho důkladné otestování. Doporučujeme nechat si program otestovat jinou osobou (kolegou), kterého posadíte do role uživatele. V cizím programu se snáze odhalí chyba, než když ho testujete sám - při testování vlastního programu myslíme stejně jako při jeho vytváření. | ||
- | * Programy se píší zásadně v jazyce ISO/IEC ISO/IEC 9899:1999 (C99) bez nenormalizovaných rozšíření. | + | * Programy píší zásadně v jazyce C++11 bez nenormalizovaných rozšíření. |
* Programy musí zachovávat požadovaný způsob komunikace s uživatelem (formu vstupu a výstupu, názvy souborů, parametry funkcí včetně main apod.) Program nesmí vyžadovat jiná vstupní data nebo parametry příkazového řádku, než je uvedeno v zadání. | * Programy musí zachovávat požadovaný způsob komunikace s uživatelem (formu vstupu a výstupu, názvy souborů, parametry funkcí včetně main apod.) Program nesmí vyžadovat jiná vstupní data nebo parametry příkazového řádku, než je uvedeno v zadání. | ||
Řádek 97: | Řádek 84: | ||
Body za konkrétní domácí úkol se skládají z následujících částí: | Body za konkrétní domácí úkol se skládají z následujících částí: | ||
* **Míra funkčnosti programu** po konci odevzdávání [0 ... 9 bodů] (počítá se dosažené maximum ze všech pokusů) | * **Míra funkčnosti programu** po konci odevzdávání [0 ... 9 bodů] (počítá se dosažené maximum ze všech pokusů) | ||
- | * **Bonus za kompletně funkční program** po konci odevzdávání [0 ... 3 bodů]. Pokud je příklad napoprvé odevzdán jako plně funkční a dodržuje [[public:pb161_konvencec|konvence o vhodném způsobu programování v jazyku C/C++]], tak student získává 3 body. Za každou opravu cvičícím s nalezenou chybou je z tohoto bonusu stržen 1 bod. Pokud není program po konci odevzdávání plně funkční, není tento bonus vůbec udělen. | + | * **Bonus za kompletně funkční program** po konci odevzdávání [0 ... 3 bodů]. Pokud je příklad napoprvé odevzdán jako plně funkční a dodržuje [[public:pb161_konvencec|konvence o vhodném způsobu programování v jazyce C++]], tak student získává 3 body. Za každou opravu cvičícím s nalezenou chybou je z tohoto bonusu stržen 1 bod. Pokud není program po konci odevzdávání plně funkční, není tento bonus vůbec udělen. |
- | * Body za korektní vypracování **bonusového rozšíření příkladu** [0 ... 4 body] | + | * Body za korektní vypracování **bonusového rozšíření příkladu** [0 ... 4 body]. **Nové!** Tyto body jsou tzv. měkké, tedy se nepočítají do limitu 65, resp. 95 bodů pro zápočet, resp. zkoušku. I zde platí, že bonus je udělovám pouze plně funkčním řešením. |
- | * Výjimečný bonus za velmi vtipné, originální, zvlášť efektivní nebo formou zpracování vzorné řešení [max. 2 body za příklad] | + | * Výjimečný bonus za velmi vtipné, originální, zvlášť efektivní nebo formou zpracování vzorné řešení [max. 2 body za příklad]. I tyto body jsou měkké. |
+ | * **Nové!** Odevzdané domácí úkoly jsou při testování kontrolovány nástrojem [[http://valgrind.org/|valgrind]]. Pokud při testování valgrind nalezne chyby (memory leaky, nesprávná práce s pamětí, čtení neinicializované paměti), jsou z daného testu odečteny dvě pětiny (40 %) bodů. | ||
**Příklad 1:** Student odevzdá úkol napoprvé kompletně funkční program bez bonusového rozšíření. Získává 9 + 3 = 12 bodů. | **Příklad 1:** Student odevzdá úkol napoprvé kompletně funkční program bez bonusového rozšíření. Získává 9 + 3 = 12 bodů. | ||
Řádek 111: | Řádek 99: | ||
**Příklad 5:** Student odevzdá program s chybou. Cvičící vyhodnotí a student chybu při dalším odevzdání opraví. Opravený program je plně funkční. Získává 9 + (3 - 1) = 11 bodů. Student ale riskoval výrazně méně bodů, viz. příklad 4. | **Příklad 5:** Student odevzdá program s chybou. Cvičící vyhodnotí a student chybu při dalším odevzdání opraví. Opravený program je plně funkční. Získává 9 + (3 - 1) = 11 bodů. Student ale riskoval výrazně méně bodů, viz. příklad 4. | ||
- | **Příklad 6:** Student odevzdá úkol napoprvé kompletně funkční program, pouze v bonusu za 2 body je chyba. Oprava se mu vyplatí, protože odevzdaním napodruhé ztrácí pouze jeden bod. Získává 9 + (3 - 1) + 2 = 13 bodů (z 14 maximálně možných). I kdyby bonus neopravil, tak získává 11 bodů, korektnost bonusu se do korektnosti celého příkladu nepočítá). | + | **Příklad 6:** Student odevzdá úkol napoprvé kompletně funkční program, pouze v bonusu za 2 body je chyba. |
+ | Kdyby bonus neopravil, získává 12 (tvrdých) bodů (korektnost bonusu se do korektnosti celého úkolu nepočítá). Pokud bonus opraví, získá 9 + (3 - 1) = 11 tvrdých bodů a 2 měkké body. | ||
**Příklad 7:** Student odevzdá úkol kompletně funkční program bez bonusu (i na několikátý pokus). Může se pokusit dodatečně odevzdat jednou verzi s bonusem. | **Příklad 7:** Student odevzdá úkol kompletně funkční program bez bonusu (i na několikátý pokus). Může se pokusit dodatečně odevzdat jednou verzi s bonusem. | ||
+ | |||
+ | **Příklad 8:** Student odevzdá úkol sice kompletně funkční, ale s chybami ve správě paměti (řekněme, že v jedné větvi výpočtu zapomněl na delete a jeho program obsahuje memory leak, který se ale projeví jen při některých vstupech). Úkol prochází třemi testy, každý je za 3 body. Při jednom testu valgrind objeví chybu, při zbývajících dvou ne. Student dostane 3 + 3 + (3 * 3/5) = 7.8 bodů. | ||
===== Odevzdání domácích úkolů ===== | ===== Odevzdání domácích úkolů ===== | ||
==== Pravidla odevzdání ==== | ==== Pravidla odevzdání ==== | ||
* Počínaje 1. úkolem se domácí úkoly odevzdávají. | * Počínaje 1. úkolem se domácí úkoly odevzdávají. | ||
- | * Termín nejzaššího odevzdání úkolu je uveden vždy na stránce se zadáním úkolu. | + | * Termín nejzaššího odevzdání úkolu je uveden vždy na stránce se zadáním úkolu. Termín je **striktní**, úkoly odevzdané po termínu cvičící neakceptují. |
* Každý program má v zadání uvedeno, jak se má jmenovat; tyto názvy je třeba dodržovat - vyučujícím to umožňuje kontrolu, včetně automatického odevzdání nanečisto. Speciálně si zkontrolujte velke a malé písmenka všech odevzdávaných souborů. | * Každý program má v zadání uvedeno, jak se má jmenovat; tyto názvy je třeba dodržovat - vyučujícím to umožňuje kontrolu, včetně automatického odevzdání nanečisto. Speciálně si zkontrolujte velke a malé písmenka všech odevzdávaných souborů. | ||
* Odevzdáním se rozumí uložení zdrojového programu do SVN repozitáře a spuštění skriptu (viz. dále), který informuje vás i cvičícího o výsledku automatické kontroly. Pouhé uložení programu do repozitáře nestačí - vyučující neví, zda je to již konečný tvar programu a nemůže dost dobře pořád kontrolovat, zda už byl program odevzdán. | * Odevzdáním se rozumí uložení zdrojového programu do SVN repozitáře a spuštění skriptu (viz. dále), který informuje vás i cvičícího o výsledku automatické kontroly. Pouhé uložení programu do repozitáře nestačí - vyučující neví, zda je to již konečný tvar programu a nemůže dost dobře pořád kontrolovat, zda už byl program odevzdán. | ||
Řádek 124: | Řádek 115: | ||
* Celý program musí být uložen v souborech se jmény výslovně požadovanými v zadání. Pokud je v zadání požadováno pouze vytvoření určité části programu, musíte pro ni sestavit svůj testovací program main pro vlastní odzkoušení, i když cvičící použije jiný testovací main. | * Celý program musí být uložen v souborech se jmény výslovně požadovanými v zadání. Pokud je v zadání požadováno pouze vytvoření určité části programu, musíte pro ni sestavit svůj testovací program main pro vlastní odzkoušení, i když cvičící použije jiný testovací main. | ||
* Nespoléhejte na úkony prováděné s vašimi funkcemi/proměnnými ve vámi dodaném mainu (např. inicializace proměnných apod.). Při opravě bude typicky použit jiný main a tyto úkony se neprovedou! | * Nespoléhejte na úkony prováděné s vašimi funkcemi/proměnnými ve vámi dodaném mainu (např. inicializace proměnných apod.). Při opravě bude typicky použit jiný main a tyto úkony se neprovedou! | ||
- | * Odpadne-li cvičení (např. pro státem uznaný svátek), studenti zpracují příklad na ně plánovaný samostatně v termínu, jako kdyby cvičení neodpadlo. Příklady, které měly být do dne odpadlého cvičení odevzdány, je třeba odevzdat nejpozději následující pracovní den. | + | * Odevzdávání úkolů je nezávislé na cvičeních. Odpadne-li proto cvičení (např. kvůli státnímu svátku), nijak to neovlivňuje termín odevzdání domácího úkolu. |
**Pracujte samostatně!** | **Pracujte samostatně!** | ||
- | * Příklady musí student zpracovat samostatně. Tento požadavek nevylučuje možnost společného posouzení metody řešení (algoritmu) s jinými studenty, ale samotné naprogramování musí být vlastní prací. Bude-li zjištěno okopírování zdrojového textu (byť jenom částečné) od jiného studenta nebo z jiného zdroje, bude (u obou studentů) oceněno až 10 trestnými body resp. projednáním u disciplinární komise, program bude považován za chybný a vrácen k novému naprogramování. Podobně bude postiženo odevzdání programu vytvořeného zcela nebo zčásti další osobou (třeba získanou z internetu). Vyučující mají k dispozici prostředky, jak zjistit, zda program není nadměrně podobný programu jiného studenta (včetně programů odevzdaných v předchozích semestrech)! | + | * Příklady musí student zpracovat samostatně. Tento požadavek nevylučuje možnost společného posouzení metody řešení (algoritmu) s jinými studenty, ale samotné naprogramování musí být vlastní prací. Bude-li zjištěno okopírování zdrojového textu (byť jenom částečné) od jiného studenta nebo z jiného zdroje, bude (u obou studentů) oceněno 0 body z daného domácího úkolu (**pozor** na podmínku čtyř úkolů s nenulovým počtem bodů). Případy jasného opisování budou navíc předány disciplinární komisi. |
+ | * Podobně bude postiženo odevzdání programu vytvořeného zcela nebo zčásti další osobou (třeba získanou z internetu). Vyučující mají k dispozici prostředky, jak zjistit, zda program není nadměrně podobný programu jiného studenta (včetně programů odevzdaných v předchozích semestrech)! | ||
* Nad odevzdanými domácími úlohami probíhá automatická kontrola opisu (se zpoždění, každý úkol s každým). Pokud dojde k nalezení příliš podobného programu, budou potrestání oba autoři odevzdaných úkolů udělením 5 záporných bodů navíc k anolaci bodů za řešení. Vážnější případy budou předány disciplinární komisi. | * Nad odevzdanými domácími úlohami probíhá automatická kontrola opisu (se zpoždění, každý úkol s každým). Pokud dojde k nalezení příliš podobného programu, budou potrestání oba autoři odevzdaných úkolů udělením 5 záporných bodů navíc k anolaci bodů za řešení. Vážnější případy budou předány disciplinární komisi. | ||
* Neposkytujte své programy "jako inspiraci" jiným studentům, mnohokrát se stalo, že student takto získaný program (s mírnými změnami) opsal a odevzdal a za podvod byl postižen i původní autor! | * Neposkytujte své programy "jako inspiraci" jiným studentům, mnohokrát se stalo, že student takto získaný program (s mírnými změnami) opsal a odevzdal a za podvod byl postižen i původní autor! | ||
+ | * **Nové!** Je zakázáno jakkoli, kdekoli a kdykoli zveřejňovat kód svých řešení (a bude hodnoceno stejně jako opisování: 0 bodů z daného úkolu), a to i **po termínu odevzdávání úkolů**! | ||
**Pracujte zavčas!** | **Pracujte zavčas!** | ||
- | | ||
* Obtížnost úkolů se postupně zvyšuje, počítejte i s malými desítkami hodin na vypracování pokročilejších úkolů. | * Obtížnost úkolů se postupně zvyšuje, počítejte i s malými desítkami hodin na vypracování pokročilejších úkolů. | ||
* Nenechávejte si vypracování úkolů na poslední chvíli - častým důvod neudělání předmětu je postupný skluz při vypracování úkolů, který vede k neodevzdání úkolů. | * Nenechávejte si vypracování úkolů na poslední chvíli - častým důvod neudělání předmětu je postupný skluz při vypracování úkolů, který vede k neodevzdání úkolů. | ||
+ | |||
+ | <note tip>Pokud budete mít podezření na technickou nefunkčnost Kontru (netýká se tedy konkrétních neprocházejících testů apod.), napište prosím na [[https://is.muni.cz/auth/osoba/374588|Michal Mikloš]], nejprve ale prosím zkontrolujte: | ||
+ | * Nechodí vám email s vyhodnocením | ||
+ | * Každé odevzdávání má vloženu záměrnou prodlevu 15 minut, reálné vyhodnocení může trvat dalších 5-10 minut. | ||
+ | * Pokud vám email nepřijde ani po 30 minutách, zkontrolujte prosím spambox, zda neskončil tam. | ||
+ | * Máte nastaveno právo pro xtoth1 pro čtení u SVN repozitáře | ||
+ | * V odevzdávacím repozitáři máte všechny soubory a jsou v korektním adresáři | ||
+ | </note> | ||
==== Založení odevzdávacího SVN repozitáře ==== | ==== Založení odevzdávacího SVN repozitáře ==== | ||
Řádek 144: | Řádek 144: | ||
* Přidat nový repozitář -> vášlogin_pb161 (např. xsvenda_pb161) | * Přidat nový repozitář -> vášlogin_pb161 (např. xsvenda_pb161) | ||
* Váš repozitář bude na prohlížení dostupný na adrese [[https://svn.fi.muni.cz/fi/vášlogin_pb161/]] | * Váš repozitář bude na prohlížení dostupný na adrese [[https://svn.fi.muni.cz/fi/vášlogin_pb161/]] | ||
- | * Přidejte uživatele //xtoth1// s právem číst (read), nikoho dalšího nepřidávejte (jinak by vaše soubory byly přístupné k potenciálnímu opisování) | + | * Přidejte uživatele //xtoth1// s právem číst (read), nikoho dalšího nepřidávejte (jinak by vaše soubory byly přístupné k potenciálnímu opisování). |
- | * Vytvořte si na lokálním PC adresář //PB161// s podadresáři hw01, hw02,...,hw05 | + | * Vytvořte si na lokálním PC adresář //PB161// s podadresáři hw01, hw02, ..., hw05. |
* Spojte adresář PB161 s SVN repozitářem (viz. [[:public:svn|návod SVN]]) | * Spojte adresář PB161 s SVN repozitářem (viz. [[:public:svn|návod SVN]]) | ||
* Vytvořený repozitář **NIKDY** nemažte. Pokud potřebujete odstranit nějaký soubor, smažte jej v lokálním adresáři a proveďte commit. Smazání repozitáře (např. přes administrativní rozhraní na fadmin) bude penalizováno -5 body (takové smazání nám způsobuje netriviální problémy pro provoz kontroly domácích úkolů). | * Vytvořený repozitář **NIKDY** nemažte. Pokud potřebujete odstranit nějaký soubor, smažte jej v lokálním adresáři a proveďte commit. Smazání repozitáře (např. přes administrativní rozhraní na fadmin) bude penalizováno -5 body (takové smazání nám způsobuje netriviální problémy pro provoz kontroly domácích úkolů). | ||
Řádek 161: | Řádek 161: | ||
* **Odevzdání naostro:** | * **Odevzdání naostro:** | ||
* Všechny odevzdávané programy musí být přeloženy a zkontrolovány na počítači Aisa, neboť na něm je bude kontrolovat i vyučující. | * Všechny odevzdávané programy musí být přeloženy a zkontrolovány na počítači Aisa, neboť na něm je bude kontrolovat i vyučující. | ||
- | * Pro překlad se používá překladač g++ -ansi -pedantic -Wall -Werror. | + | * Pro překlad se používá překladač ''g++ -std=c++11 -pedantic -Wall -Werror''. (**Nové!** Všimněte si přepínače -std=c++11.) |
* Odevzdání naostro - spuštění skriptu: | * Odevzdání naostro - spuštění skriptu: | ||
* Nakopírujte odevzdávané soubory do vašeho SVN repozitáře (viz. výše) | * Nakopírujte odevzdávané soubory do vašeho SVN repozitáře (viz. výše) | ||
Řádek 173: | Řádek 173: | ||
* Pokud vyučující nalezne v opravovaném programu chyby, oznámí je studentovi (obvykle mailem a zápisem do poznámkových bloků). Do poznámkového bloku zapíše stav odevzdání příkladu včetně krátkého popisu zjištěného problému. Např. "při záporných datech havaruje na výpočtu odmocniny." | * Pokud vyučující nalezne v opravovaném programu chyby, oznámí je studentovi (obvykle mailem a zápisem do poznámkových bloků). Do poznámkového bloku zapíše stav odevzdání příkladu včetně krátkého popisu zjištěného problému. Např. "při záporných datech havaruje na výpočtu odmocniny." | ||
* K některým složitějším cvičením mají studenti k dispozici testovací data, u všech cvičení si mohou na vzorovém řešení ověřit, jak by měl program pracovat. Vzorová řešení jsou u některých úkolů studentům k dispozici v přeloženém tvaru, po uplynutí doby na odevzdávání bude zveřejněno i ukázkové řešení úkolu. | * K některým složitějším cvičením mají studenti k dispozici testovací data, u všech cvičení si mohou na vzorovém řešení ověřit, jak by měl program pracovat. Vzorová řešení jsou u některých úkolů studentům k dispozici v přeloženém tvaru, po uplynutí doby na odevzdávání bude zveřejněno i ukázkové řešení úkolu. | ||
- | * __Pokud chcete odevzdat úlohu vyžadující kompilaci dle C++11, tak do adresáře s odevzdanou úlohou v repozitáři vložte i (klidně prázný) soubor se jménem //cpp11// (bez přípony).__ | ||
**Ukázkový případ** | **Ukázkový případ** | ||
Řádek 190: | Řádek 189: | ||
- Maximálně 2 absence ve cvičení (více pouze na základě lékařského potvrzení atp; toto potvrzení musí být v požadovaném termínu odevzdáno na studijní oddělení FI). | - Maximálně 2 absence ve cvičení (více pouze na základě lékařského potvrzení atp; toto potvrzení musí být v požadovaném termínu odevzdáno na studijní oddělení FI). | ||
- | - Celkové bodové skóre z domácích úkolů, průběžného testu a testíků na cvičení ne horší než 65 bodů. Toto skóre ovlivňuje i známku ze zkoušky. | + | - Celkové bodové skóre z domácích úkolů, průběžného testu a testíků na cvičení ne horší než 65 bodů. Toto skóre ovlivňuje i známku ze zkoušky. **Nové!** Do tohoto limitu se nezapočítávají tzv. měkké body z bonusů a za aktivitu na cvičení. |
+ | - **Nové!** Alespoň čtyři domácí úkoly s nenulovým hodnocením (tj. jakékoli hodnocení, které není přesně 0). | ||
- Uspěšné vypracování praktického zápočtového příkladu v rámci zápočtového týdne přímo na hodině v navštěvované seminární skupině. | - Uspěšné vypracování praktického zápočtového příkladu v rámci zápočtového týdne přímo na hodině v navštěvované seminární skupině. | ||
Řádek 197: | Řádek 197: | ||
* Práci studenta ve cvičení kontroluje a zápočty uděluje výhradně vyučující jeho seminární skupiny. Proti jeho rozhodnutí se lze odvolat k přednášejícímu. | * Práci studenta ve cvičení kontroluje a zápočty uděluje výhradně vyučující jeho seminární skupiny. Proti jeho rozhodnutí se lze odvolat k přednášejícímu. | ||
* Zápočet se de facto dává i studentům, kteří předmět končí zkouškou; v tomto případě se však nezapisuje běžným způsobem do IS, ale pouze se provede zápis do poznámkového bloku. | * Zápočet se de facto dává i studentům, kteří předmět končí zkouškou; v tomto případě se však nezapisuje běžným způsobem do IS, ale pouze se provede zápis do poznámkového bloku. | ||
- | |||
Řádek 205: | Řádek 204: | ||
^ Způsob získání bodů ^ Celkový počet bodů ^ | ^ Způsob získání bodů ^ Celkový počet bodů ^ | ||
- | | Povinné domácí úkoly | 5*12 = 60 | | + | | Domácí úkoly | 6*12 = 72 | |
- | | Extra body za rozšířené varianty zadání | 10+ | | + | | Extra body za bonusy v domácích úkolech | 10+ (měkké body) | |
- | | Extra body za aktivitu na hodině | 10+ | | + | | Extra body za aktivitu na hodině | 10+ (měkké body) | |
| Další extra body za aktivitu, nalezení chyby v zadaní, etc... | neomezeno | | | Další extra body za aktivitu, nalezení chyby v zadaní, etc... | neomezeno | | ||
| - | - | | | - | - | | ||
+ | | Zápočtový příklad | není bodován (hodnocení ANO/NE) | | ||
| Průběžný test | 20 | | | Průběžný test | 20 | | ||
| Krátké testíky na cvičení | 10 * 3 | | | Krátké testíky na cvičení | 10 * 3 | | ||
Řádek 215: | Řádek 215: | ||
| Závěrečný zkouškový test | 80 | | | Závěrečný zkouškový test | 80 | | ||
- | Zápočet je udělen za zisk alespoň 65 bodů (součet Domácí úkoly + Průběžný test + testíky na cvičení + bonusy) a úspěšného vypracování zápočtového příkladu na hodině. | + | Zápočet je udělen za zisk alespoň 65 (tvrdých) bodů (součet Domácí úkoly + Průběžný test + testíky na cvičení + bonusy), minimálně čtyři domácí úkoly s nenulovým hodnocením a úspěšné vypracování zápočtového příkladu na hodině. |
^ Počet získaných bodů ^ Hodnocení ^ | ^ Počet získaných bodů ^ Hodnocení ^ | ||
Řádek 222: | Řádek 222: | ||
| >= 130 bodů | C | | | >= 130 bodů | C | | ||
| >= 110 bodů | D | | | >= 110 bodů | D | | ||
- | | >= 95 bodů | E | | + | | >= 95 bodů | E | |
- | | < 95 bodů | F | | + | | < 95 bodů | F | |
- | | >= 65 bodů | Započteno | | + | | >= 65 bodů | Započteno | |
+ | Pozn. V případě, že student, který končí předmět zkouškou, nedosáhne 95 tvrdých bodů, je hodnocen stupněm F nezávisle na počtu měkkých bodů. | ||
+ | ** Příklad: ** Student A má 100 bodů, z toho 10 měkkých. Je hodnocen stupněm F (nesplnil podmínku 95 tvrdých bodů). Student B má 120 bodů, z toho 20 měkkých. Je hodnocen stupněm D (splnil podmínku 95 tvrdých bodů, a proto se do jeho hodnocení počítají všechny body). |