PB162/Příprava

Z FI WIKI
Přejít na: navigace, hledání

This page is part of the official documentation of the company's products.

Organizace výuky podzim 2007

Úlohy

Za přípravu úloh je odpovědný Radek Ošlejšek.

Zadání

  1. Úvodní úloha - cíl: Seznámení s vývojovým prostředím JDK 5.0 a BlueJ, jeho stažení, instalace na vlastním stroji. Zprovoznění překladu a spuštění jednoduchého "Hello world"-like příkladu.
  2. Jednoduchá interakce objektů - cíl: Systém zhruba dvou až tří tříd (a instancí od nich) z reálného života, obecně známá problematika (vloni byly Knihovna/Titul/Vytisk). Žádné datové struktury, aritmetické operace, žádné slož. pg. struktury (cykly). Jde o syntaxi a sémantiku základního návrhu tříd.
  3. Implementace rozhraní - cíl: Navrhnout třídu (nebo dvě), aby implementovala/y předem dané rozhraní.
  4. Dědičnost - cíl: Navrhnout třídy v hierarchii; mohou využívat základ hierarchie či kopírovat postup viditelný z předem dané hierarchie.
  5. Výjimky - cíl: Navrhnout prográmek s dobře metodicky zdůvodněným použitím vlastních (tedy non-Java Core) hlídaných výjimek.
  6. Kontejnery I - cíl: Procvičit základní práci s kontejnery.
  7. Kontejnery II - cíl: Navrhnout třídy s použitím složitějších kontejnerů z Java Core API s použitím generics.
  8. Vstupy/výstupy - cíl: Navrhnout aplikaci s použitím I/O např. do textových souborů.

Forma zadání úloh

  • jednotný formát: projekt v BlueJ existující ve dvou verzích - pro studenty (zadání, potřebné předchystané třídy a povinně testy) a vzorové řešení (dtto + doplněné řešení)
  • povinně použití BlueJ pro softwarovou i textovou část zadání
  • uložení zadání do SVN repository
  • všechny zdrojové kódy prohnat nástrojem native2ascii kvůli přenositelnosti zdrojových kódů mezi windows (cp1250) a Linuxem (iso-8859-2 nebo UTF-8, podle nastavení uživatele). V komentářích psát cesky (tj. bez diakritiky), neboť text zlutoucky je rozhodně čitelnější než \u017elu\u0165ou\u010dk\u00fd. Identifikátory budou psány výhradně anglicky!

Získání úloh z repozitory - obsolete

Úlohy je možné z repozitory získat příkazem

svn co https://kore.fi.muni.cz:5443/repos/fi/teaching/pb162

Tento adresář obsahuje (resp. bude obsahovat) veškeré studijní materiály k našim kurzům. Úlohy do PB162 se nacházejí v podadresáři tasks. Ke každé úloze je k dispozici ANT skript pro její zabalení do archivu pro studenty. Aby jej bylo možné použít, je nutné nastavit několik cest v souboru build.xml v adresáři teaching.

Připomínky k úlohám v roce 2007

  • 1. úloha - V zadání odstranit diakritiku z komentáře "První třída jako první úloha do kurzu PB162.", odporuje to našemu požadavku na komentáře bez diakritiky.

Připomínky k úlohám v roce 2006

  • 1. úloha - Volba pro přechod zdroj -> JavaDoc se už nejmenuje "Interface", ale "Documentation"
  • 2. úloha - v třídě main promíchat práci s oběma výrobnama propisek, aby se studentům projevila chyba toho, když jsou atributy počet propisek a počet náplní static . Například vytvoří se první výrobna, vyrobí náplň + propisku, vypíše stav, vytvoří se druhá výrobna a vyrobí náplň + propisku, první výrobna vyrobí 3 náplně a propisku, druhá výrobna vyrobí dvě náplně a dvě propisky. Dále testovat metodu toString() ve tride PenFactory.
  • 4. úloha - Pokud není třída AbstractGraphicShape public, neprojdou testy. To jen tak pro informaci, nevím, jestli je nutné upravovat testovací třídu.
  • 5. úloha - Přidat třídu Person s jinou implementací metody hashCode(), docela dost studentů testuje konkrétní implementaci metody hashCode() a nikoliv její kontrakt.
  • 6. úloha - Testovací třída by měla testovat úspěšnost vícenásobného volání metody send() nad jednou instancí třídy MyMessenger. Dále chybí kontrola toho, jestli odeslaná zpráva skutečně "dojde" nezměněná na zadanou adresu.
  • Testovací třídy by mohly testovat zda studenti kontrolují validitu argumentů předávaných do metod a vyhazují odpovídající výjimky.

Písemky

  • jednotné konvence pro pojmenování složek se zadáním - viz níže

Zadání písemek

Zadání písemek bude mít stejnou formu jako zadání domácích úloh. Testovací třídy však nebudou tolik podrobné a především nebudou testovat samozřejmé věci (konvence pro pojmenování, přístupová práva apod.). Jako vzor lze použít zadání úloh a písemek v repozitory.

První písemka

  • Úterý 16.10. 7:00 hod.
  1. Ludek Bartek (A104)
  2. Pavel Drášil (B117)
  3. Jan Pavlovič (B130)
  4. ??? (B130)
  5. ??? (B311)
  • Úterý 16.10. 20:00 hod.
  1. Ludek Bartek (A104)
  2. Michal Oprendek (B116 + notebooky)
  3. Ales Zlamal (B117 + B116)
  4. Jan Pomikálek (B117)
  5. Martin Janík (B130)
  6. ??? (B130)
  7. Tomáš Gregar (B311)
  • Středa 17.10. 20:00 hod.
  1. Ludek Bartek (A104)
  2. Michal Oprendek (B116 + notebooky)
  3. Pavel Drášil (B117)
  4. Ales Zlamal (B117 + 116)
  5. Martin Janík (B130)
  6. Martin Kuba (B130)
  7. Jan Pomikálek (B311)
  • Pátek 19.10. 17:00 hod.
  1. Tomas Pitner (A104)
  2. Ludek Bartek (B116 + notebooky)
  3. Ales Zlamal (B117)
  4. Martin Kuba (B130)
  5. Martin Janík (B130)
  6. Tomáš Gregar (B311)

Druhá písemka

  • Úterý 6.11. 7:00 hod.
  1. Tomáš Pitner (A104)
  2. Pavel Drášil (B117)
  3. Martin Janík (B130)
  4. Šimon Suchomel (B130)
  • Úterý 6.11. 20:00 hod.
  1. Luděk Bártek (A104)
  2. Michal Oprendek (B116)
  3. Aleš Zlámal (B116 - notebooky)
  4. Jan Pomikálek (B117)
  5. Radek Ošlejšek (B130)
  6. ??? (B130)
  7. ??? (B311)
  • Středa 7.11. 20:00 hod.
  1. Pavel Drášil (A104)
  2. Michal Oprendek (B116)
  3. Aleš Zlámal (B116 - notebooky)
  4. Jan Pomikálek (B117)
  5. Luděk Bártek (B130)
  6. Martin Janík (B130)
  7. Radek Ošlejšek (B311)
  • Pátek 9.10. 15:00 hod.
  1. Luděk Bártek (A104)
  2. Aleš Zlámal (B116)
  3. ??? (B116 - notebooky)
  4. ??? (B117)
  5. Martin Janík (B130)
  6. Martin Kuba (B130)
  7. Radek Ošlejšek (B311)

Třetí písemka

  • Úterý 4.12. 7:00 hod.
  1. Luděk Bártek (A104)
  2. Pavel Drášil (B117)
  3. Martin Janík (B130)
  4. ??? (B130)
  5. Tomáš Pitner (B311)
  • Úterý 4.12. 20:00 hod.
  1. ??? (A104)
  2. Aleš Zlámal, Michal Oprendek (B116)
  3. Michal Oprendek (B116 - notebooky)
  4. Jan Pomikálek (B117)
  5. Martin Janík (B130)
  6. ??? (B130)
  7. Tomáš Gregar (B311)
  • Středa 5.12. 20:00 hod.
  1. Pavel Drášil (A104)
  2. Aleš Zlámal, Michal Oprendek (B116)
  3. Michal Oprendek (B116 - notebooky)
  4. Jan Pomikálek (B117)
  5. Martin Janík (B130)
  6. ??? (B130)
  7. Luděk Bártek (B311)
  • Pátek 7.12. 15:00 hod.
  1. Luděk Bártek (A104)
  2. Aleš Zlámal (B116)
  3. ??? (B116 - notebooky)
  4. ??? (B117)
  5. Martin Janík (B130)
  6. ??? (B130)
  7. Tomáš Gregar (B311)

Opravná písemka + závěrečná (předtermín)

  • Úterý 11.12. 20:00 hod.
  1. ??? (A104)
  2. Aleš Zlámal (B116)
  3. ??? (B116 - notebooky)
  4. ??? (B117)
  5. Martin Janík (B130)
  6. ??? (B130)
  7. ??? (B311)
  • Středa 12.12. 20:00 hod.
  1. Pavel Drášil (A104)
  2. Aleš Zlámal (B116)
  3. ??? (B116 - notebooky)
  4. ??? (B117)
  5. ??? (B130)
  6. ??? (B130)
  7. ??? (B311)
  • Pátek 14.12. 15:00 hod.
  1. ??? (A104)
  2. Aleš Zlámal (B116)
  3. ??? (B116 - notebooky)
  4. ??? (B117)
  5. Martin Janík (B130)
  6. ??? (B130)
  7. ??? (B311)

Závěrečná písemka - předtermín

  • Úterý 18.12. 20:00 hod.
  1. ??? (A104)
  2. Aleš Zlámal (B116)
  3. ??? (B116 - notebooky)
  4. ??? (B117)
  5. Martin Janík (B130)
  6. ??? (B130)
  7. ??? (B311)
  • Středa 19.12. 20:00 hod.
  1. Pavel Drášil (A104)
  2. Aleš Zlámal (B116)
  3. ??? (B116 - notebooky)
  4. ??? (B117)
  5. Martin Janík (B130)
  6. ??? (B130)
  7. ??? (B311)

Závěrečná písemka

  • termín
  1. hlídající (učebna)

Zpětná vazba z písemek

Prosím o zapisování vašich postřehů z písemek pro následující účely:

  • podrobnější návod pro psaní textu zadání písemek, případných spouštěných metod main() a testovacích tříd:
  1. ve všech prvních písemkách chybělo nějaké úvodní povídání prózou, jaká situace se programem modeluje
  2. ve středu 17. října 2007 chybělo, co má vrátit toString() objektu Repository, když je skříňka obsazena (většina si to odvodila z chybových textů testu), ale v metodě main() měl být výpis instanciovaného objektu typu Repository s atributem free nastaveným na false
  3. páteční (19. října 2007) test byl až příliš podobný loňskému s vlaky, který jsem týden před testem viděl studenty řešit
  • co dalšího studentům říci či zdůraznit na cvičení:
  1. jak se testuje rovnost objektů - včetně Stringu
  2. přiřazení má hodnotu, která se rovná přiřazované hodnotě
  3. zdůraznit rozdil mezi "=" a "=="
  4. dávat pozor na pořadí parametrů metod
  5. pokud si autor není 100%ně jist jaká je implicitní inicialisace atributů, tak ať raději atribut inicialisuje sám explicitně
  6. upozornit studenty, že třída nemusí mít tolik, případně více, atributů než kolik má konstruktor parametrů
  7. "if (podminka) return true; else return false;" je ekvivalentní k "return podminka;"

Ukládání do IS

Návrh systému vnitřního mapování (vnitřních odkazů) na jednotlivé typy materiálů v IS:

Odevzdávárny řešení písemek a úloh

Zadání písemek a úloh

  • URL složky zadání bude https://is.muni.cz/auth/el/1433/podzim2007/PB162/za, v rámci této složky budou podsložky:
    • pisemka1/2005-10-06-0800 – zadání písemky pro určitý společný termín;
    • uloha1 – zadání úlohy daného čísla (číslo může být 1..8 nebo 'premiova').