PB162/Příprava: Porovnání verzí

Z FI WIKI
Přejít na: navigace, hledání
(Druhá písemka)
(Druhá písemka)
Řádka 135: Řádka 135:
 
# ''???'' (''B117'')
 
# ''???'' (''B117'')
 
# ''[[Uživatel:yanas|Martin Janík]]'' (''B130'')
 
# ''[[Uživatel:yanas|Martin Janík]]'' (''B130'')
# ''???'' (''B130'')
+
# ''[[Uživatel:Kuba|Martin Kuba]]'' (''B130'')
 
# ''???'' (''B311'')
 
# ''???'' (''B311'')
  

Verze z 6. 11. 2007, 08:54

Organizace výuky podzim 2007

Cvičení

Jsou dvouhodinová, skupin je 23 (viz IS).

Adresa na všechny vyučující

Ú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

Ú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

Upozornění na zpětnou vazbu z písemek

Vizte odstavec za třetí písemkou

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. ??? (B130)
  5. ??? (B311)
  • Ú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. ??? (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. ??? (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. ??? (B311)

Třetí 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:
1) 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
2) co dalšího studentům říci či zdůraznit na cvičení

ad 1)
  • ve všech prvních písemkách chybělo (to je moje chyba) nějaké úvodní povídání prózou, jaká situace se programem modeluje
  • ve středu 17. října 2007 chybělo (a je to opět moje chyba), 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
  • 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
ad 2)
  • jak se testuje rovnost objektů - včetně Stringu
  • přiřazení má hodnotu, která se rovná přiřazované hodnotě
  • zdůraznit rozdil mezi "=" a "=="
  • dávat pozor na pořadí parametrů metod
  • pokud si autor není 100%ně jist jaká je implicitní inicialisace atributů, tak ať raději atribut inicialisuje sám explicitně
  • upozornit studenty, že třída nemusí mít tolik, případně více, atributů než kolik má konstruktor parametrů
  • "if (podminka) return true; else return false;" je ekvivalentní k "return podminka;"

Opravná písemka

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

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

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

Závěrečná písemka

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

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').