Warning
This page is located in archive. Go to the latest version of this course pages. Go the latest version of this page.

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, který jsme vám pro tento předmět vygenerovali.
  • 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.

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: 2022/10/06 09:51 by ledvima1