Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
public:pb161 [2014/09/28 21:31]
Petr Svenda [Konzultační hodiny]
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  ​__textu podtrženy__ (pokud je to možné): +====== PB161: Programování ​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ů (vizníž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) 
-    * Hlavní ​počítačová hala, poblíž kopírky ​ +    * Pondělí 14.00-15.00 [[https://​is.muni.cz/​auth/​osoba/​409963|Jiří Novotný]] 
-    * **Probíhá od druhého týdne semestru** +    * Pondělí ​16.00-17.00 [[https://​is.muni.cz/​auth/​osoba/​410338|Peter Stanko]] 
-    * Úterý, ​16-17 hod, [[https://​is.muni.cz/​auth/​osoba/​410338|Peter Stanko]] +    * Středa ​ 17.00-18.00 [[https://​is.muni.cz/​auth/​osoba/​325253|Marek Osvald]] 
-    * Útery 19-20 hod, [[https://​is.muni.cz/​auth/​osoba/​374038|Miroslav Jaroš]] +    * Čtvrtek ​15.00-16.00 [[https://​is.muni.cz/​auth/​osoba/​374038|Miroslav Jaroš]]
-    * Č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 51: Řá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 58: Řá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 70: Řá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++11tzn. 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ý ​í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ícTen 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 95: Řá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 109: Řá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 neopravilzí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 122: Řá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 respprojedná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 ​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 142: Řá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 159: Řá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 171: Řá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 188: Řá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 195: Řá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 203: Řá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 213: Řá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 220: Řá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).
QR Code
QR Code public:pb161 (generated for current page)