====== Spam III ======
* Dotazy a odpovědi
* Kontrola DÚ z minulého týdne
* Tutoriál: Dědičnost
* Programovací úloha
* Individuální konzultace
===== DoD 20.11. 2015 =====
http://www.fel.cvut.cz/cz/prestudent/dod.html
Pokud budete mít cestu okolo své střední školy, nebo budete mluvit s mladšími kolegy, pozvěte je. Pro další informace, kontaktuje Veroniku Šínovou, https://usermap.cvut.cz/profile/sinovver/
===== Programovací testík =====
[[courses:a4b99rph:internal:kratke_testiky:tyden_05|Zadání]] na interních stránkách.
===== Dědičnost v OOP =====
* Bude se týkat tříd ''TrainingCorpus'' a jednotlivých spam filtrů.
==== Interaktivní programovací úloha a příklad k diskusi ====
++++ Teplé nápoje |
Máme malé automatizované bistro. Prodáváme v něm tureckou kávu a čaj. Recept na kávu:
- Uvař vodu
- Dej do šálku dávku mleté kávy
- Zalij kávu vodou
- Přidej mléko, cukr, atd., pokud si to zákazník přeje.
Recept na čaj:
- Uvař vodu
- Dej do šálku sáček čaje
- Zalij čaj vodou
- Přidej citron, cukr, atd., pokud si to zákazník přeje.
Dotazy k diskusi:
* Jaké entity zde vystupují? Co mají společného?
* Jaké jsou mezi nimi vztahy? (Is-a)
Vytvořte software pro automatické vyřizování objednávek tak, aby následující kód
objednavka = [TureckaKava('mléko a cukr'),
Caj('citrón'),
TureckaKava('mléko')]
for napoj in objednavka:
napoj.priprav()
print()
měl následující výstup:
Vařím vodu.
Dávám do šálku lžičku mleté kávy.
Nalévám vodu do šálku.
Přidávám mléko a cukr.
Vařím vodu.
Dávám do šálku sáček čaje.
Nalévám vodu do šálku.
Přidávám citrón.
Vařím vodu.
Dávám do šálku lžičku mleté kávy.
Nalévám vodu do šálku.
Přidávám mléko.
> {{page>courses:a4b99rph:internal:cviceni:tyden07#Napoje&editbtn}}
++++
++++ Dopravní prostředky |
Mějme strategickou počítačovou hru typu Civilizace, Transport Tycoon nebo SimCity. Ve hře se vyskytují různé typy dopravních prostředků:
* Co mají společného?
* Jaké jsou mezi nimi vztahy? (Is-a)
Předpokládejme, že chceme namodelovat schopnost těchto prostředků pohybovat se s tím, že bychom chtěli nějak zohlednit, že ne každé místo může být pro každý dopravní prostředek dosažitelné. Zkusme vytvořit systém, který např. po inicializaci 3 prostředků a po požadavku na přesun do Prahy
vehicles = [
WaterVehicle(id='Titanic', current_location='Liverpool'),
GroundVehicle(id='Humvee', current_location='Baghdad'),
AirVehicle(id='Air Force One', current_location='Washington')
]
for vehicle in vehicles:
vehicle.move_to('Prague')
print(vehicle)
vypíše např. toto:
Titanic: No route available. Current location: Liverpool
Humvee: Travelled via ('Baghdad', 'gas station', 'Prague'). Current location: Prague
Air Force One: Travelled via ('Washington', 'Prague'). Current location: Prague
> {{page>courses:a4b99rph:internal:cviceni:tyden07#dopravni_prostredky&editbtn}}
++++
===== Hádanka =====
> {{page>courses:a4b99rph:internal:cviceni:tyden07#Hadanka&editbtn}}
===== Programování =====
Dotáhněte úlohu spam filter do stavu, kdy vám fungují jednoduché filtry a jste schopni spočítat jejich kvalitu (tedy až do kroku 4). Pokud vám něco není jasné, **ptejte se cvičícího!**
====== Domácí úkol ======
V neděli je termín [[courses:a4b99rph:cviceni:spam:specifikace#odevzdani_1|odevzdání první části]] úlohy spam filter. Do Upload systému odevzdávekte vypracovanou funkci ''compute_quality_for_corpus()'' v modulu ''quality.py''. Společně s tímto modulem musíte odevzdat i všechny další moduly, které jsou pro úspěšnou činnost modulu ''quality'' potřeba. (Pravděpodobně se bude jednat o moduly ''confmat'', ''utils'' a možná další.) **Své moduly umístěte do kořene archívu! Archív by neměl obsahovat žádné adresáře!**
===== Programování =====
* [[courses:a4b99rph:cviceni:spam:krok5|Krok 5 - třída TrainingCorpus]], pokud ji ve svém filtru budete využívat.
* [[courses:a4b99rph:cviceni:spam:krok6|Krok 6 - vlastní filtr]]: začněte na něm pracovat, ode dneška na něj máte cca 16 dní.