Hodnocení předmětu

  • Klasifikace předmětu - 0-100 bodů
    • max. 10 bodů za úkoly zadané na cvičeních.
    • max. 50 bodů za kvalitu a včasnost odevzdání semestrální práce.
    • max. 40 bodů za závěrečný test. Test nebude delší než 90 min, bude poté opraven a následně bude probíhat udělování známek.
  • Předmět je zakončen klasifikovaným zápočtem, který bude udělen za úspěšné (viz níže) odevzdání všech tří checkpointů, získání alespoň 5 bodů z úkolů na cvičení a za získání alespoň 20 bodů v závěrečném testu.
  • Semestrální práci budete vypracovávat ve dvojicích. Skupiny o více či méně lidech jsou možné pouze po domluvě.
  • Body za semestrální práci se získávají průběžně v následujících checkpointech:
  • Veškerý kód i dokumenty související se SP musí být nahrány v Git repozitáři v systému Gitlab. Doporučujeme využít repozitář, který jsme vám pro tento předmět vygenerovali (ale můžete vytvořit i repozitář vlastní).
  • Možná témata semestrálních prací: topics.pdf.
  • Než začnete vypracovávat SP, pozorně si přečtěte popis všech checkpointů.,
  • Pro všechny checkpointy platí, že
    • Datum odevzdání znamená poslední možné datum uploadu (ve 23.59.59) do odevzdávacího systému (viz link na úvodní straně předmětu).
    • Pro každý checkpoint se odevzdává soubor commit.txt, jehož jediným obsahem je URL commitu určeného k hodnocení ve Vašem Git repozitáři v systému Gitlab. Tedy např. https://gitlab.fel.cvut.cz/ear/rest-client-demo/commit/7682643f08890a8ec1713c8217dae4654562ae9b
    • Nejbližší cvičení následující po datu skutečného odevzdání je třeba daný checkpoint prezentovat svému cvičícímu; prezentace musí vycházet z toho, co bylo odevzdáno do systému (viz link na úvodní straně předmětu) - to bude předmětem hodnocení daného checkpointu. V dobře odůvodněných případech je možné prezentovat checkpoint v jiném termínu, vždy po předchozí včasné domluvě se cvičícím.
    • Při odevzdání musí být přítomni všichni členové skupiny. Od všech členů skupiny se očekává znalost celého systému. Každý člen skupiny může dostat jiné hodnocení.
    • Za každý týden zpoždění se hodnocení daného checkpointu snižuje o 5 bodů. CP2 je navíc třeba odevzdat nejpozději týden před koncem zkouškového období, abychom měli dost času na ohodnocení práce.
    • Checkpoint je úspěšně odevzdaný, pokud za něj získáte alespoň 50% bodů (bez započtení penalizace za časové zpoždění)
  • Celkové hodnocení předmětu se provádí dle ECTS stupnice:
Body Stupeň ECTS Známka
100 - 90 A výborně
89 - 80 B velmi dobře
79 - 70 C dobře
69 - 60 D uspokojivě
59 - 50 E dostatečně
49 a méně F nedostatečně

Úkoly na cvičeních

Na vybraných cvičeních budou zadány bodované úkoly. Požadavkem předmětu je, aby student získal alespoň polovinu z možných bodů udělovaných za tyto úlohy. Úlohy lze vypracovat a odevzdat na cvičení, nebo je dokončit doma, a to vždy do půlnoci neděle následující bezprostředně po daném cvičení. Kód řešení úlohy student nahraje do gitu, kde ho cvičího zkontroluje.

Odevzdání ještě na daném cvičení je odměněno jedním bonusovým bodem.

Závěrečný test

Závěrečný test trvá 90 minut a skládá se z 10 otázek, každé hodnocené 4 body. Kromě prvního pokusu, je možné test ještě dvakrát opakovat. Otázky spadají do následujících kategorií:

  • Zaškrtávací
    • Otázka má 4 možnosti,
    • Správně může být 0 či více možností,
    • Za každou správnou odpověď získáte 1 bod, za špatnou 1 bod ztratíte (minimum je 0 bodů za otázku). Tedy např. má-li otázka správné možnosti a), c) a student zaškrtne pouze možnost a), získá 2 body, protože za nezaškrtnutí c) nejenže nezíská bod, ale zároveň je mu bod stržen za chybnou odpověď.
    • Příklad
      • Vyberte pravdivá tvrzení
        • a) JPA slouží k odstínění uživatele od konkrétního druhu databázové technologie (souborový systém, relační databáze, NoSQL databáze, atp.), nikoliv však od její konkrétní implementace (PostgreSQL, MySQL, atp.).
        • b) Metodu EntityManager.persist() je možné použít na objekt, který má hodnotu identifikátoru (@Id) různou od null.
        • c) Perzistentní jednotka (Persistence Unit) slouží k popisu struktury konkrétní databáze a je tak sdílena více perzistentními kontexty.
        • d) Inverzní stranu obousměrného vztahu nelze použít pro modifikaci daného vztahu.
  • Analytická
    • Otázka obsahuje část kódu a úkolem studenta je:
      • Vysvětlit, co daný kód dělá,
      • Odhalit chybu v kódu,
      • Vysvětlit, proč daný kód nebude dělat to, co se od něj očekává apod.
    • Příklad
      • Následující kód (metoda EnterpriseInformationSystem.addPerson) využívá framework Spring. Má umožnit přidání jména uživatele do hlavního repozitáře systému, a zálohování tohoto jména v druhém, záložním, repozitáři. Vysvětlete, jak předložený kód po zavolání metody addPerson funguje a co vypíše na konzoli.

@Component
@Scope("prototype")
public class EnterpriseInformationSystem {
@Autowired
private PersonRepository repository;
@Autowired
private PersonRepository backupRepository;
...
public void addPerson(String name) {
	repository.getPersons().add(name);
	backupRepository.getPersons().add(name);
 
	repository.getPersons().clear();
	System.out.println(backupRepository.getPersons().size());
}
}
@Component
@Scope("singleton")
public class PersonRepository {
	private List<String> persons;
public List<String> getPersons() { return persons; }
}

  • Syntetická
    • Úkolem bude v pseudokódu naimplementovat nějakou funkcionalitu,
    • Nebo popsat postup implementace nějaké funkcionality.
    • Příklad
      • Jaké technologie využívá Spring pro implementaci horizontálních služeb (cross-cutting concerns). např. transakční přístup k metodám, autorizace přístupu k metodám, atp. Jak daná technologie funguje ?
courses/b6b36ear/hodnoceni.txt · Last modified: 2024/09/25 09:14 by ledvima1