Přejít na:

Zápočtové úlohy jsou dvě: první je TeXem vysázený text odevzdávaný na papíře, druhou úlohou je návrh a použití vlastního jednoduchého XML jazyka.

Pozdní odevzdání zápočtových dokumentů z jiného důvodu než omluveného (doložená nemoc apod.) je možné do prvního vypsaného zkouškového termínu, ale bude bodově penalizováno 5 body za každý zápočtový dokument. Stejným počtem bodů bude penalizována i případná oprava zápočtových dokumentů, o kterou musíte zažádat na svém opravném termínu.

Přejít: navigace | na začátek stránky | na konec stránky

První zápočtový dokument – TeXem sázený dokument

  1. Dokument bude v češtině nebo slovenštině.
  2. Dokument bude mít dvě obsahově stejné podoby – elektronickou a papírovou.
  3. Rozsah papírové verze budou právě 4 strany A4 (kvůli automatickému skenování při použití odplist potištěné jednostranně). První část bude obsahově váš strukturovaný životopis, druhý bude průvodní nebo doporučující dopis k životopisu, anebo jiný dokument (esej do VB000 Základy odborného stylu apod.). Tento dokument případně rozsahově upravte tak, aby se vešel do zadaného rozsahu – výsek nemusí být významově koherentní.
  4. Elektronická verze bude klikací (hypertextový rejstřík apod.).
  5. Dokument bude obsahovat bibliografii zpracovanou programem BibTeX nebo BibLaTeX.
  6. Dokument bude obsahovat rejstřík vytvořený programem xindy/texindy.
  7. Dokument bude mít vloženou bitmapovou grafiku (například vaši fotku v životopisu).
  8. Dokument bude obsahovat grafiku z programu MetaFont či MetaPost. Za vektorovou grafiku je možné považovat i původní netriviální obrázek vytvořený vhodnými makry TeXu (např. s pomocí tikz, xfig).
  9. Papírová verze bude odevzdána na papíře, s podpisem tvůrce, nejpozději do pondělí 11. 12. 2017, 11:00 h, sekretářce kateder (místnost B407, případně schránka před ní). Dejte si pozor na kvalitu tisku – kontury znaků by měly být jasně viditelné a grafické prvky by neměly být rozpixelované.
  10. Plné zdroje elektronické verze umožňující přesazbu dokumentu budou ve formě jediného komprimovaného archivu nejpozději do téhož data v Odevzdávárně předmětu v IS MU.
Přejít: navigace | na začátek stránky | na konec stránky

Druhý zápočtový dokument – návrh vlastního XML jazyka

Úkolem je navrhnout vlastní jednoduchý XML jazyk pro uchovávání databáze kontaktů (adresář osob).

  1. Každá osoba je (ne nutně jednoznačně) identifikována svým jménem.
    • To je značkami logicky rozděleno minimálně na křestní jméno a příjmení.
  2. Pro každou osobu je možné evidovat libovolné množství
    • e-mailových adres,
    • telefonních čísel a 
    • odkazů na webové stránky.
    Volitelně je pro adresy, čísla a odkazy možné specifikovat typ z předdefinovaného seznamu přípustných voleb, např. osobní, pracovní, jiná.
  3. Krom e-mailů, telefonů a odkazů na web umožněte specifikaci jiného typu kontaktu jako dvojice jména služby (libovolný uživatelem zadaný rozumně dlouhý řetěz písmen a číslic, např. Skype, Jabber apod.) a ID uživatele v dané službě (opět libovolný rozumně dlouhý řetězec, tentokrát včetně povolení speciálních znaků typu zavináč [@] apod.).
  4. Umožněte ke kontaktu přidat libovolný počet poštovních adres strukturovaných na
    • jméno ulice,
    • číslo orientační/popisné,
    • PSČ,
    • město apod.
  5. Umožněte přidat libovolný počet poznámek (nestrukturované textové pole s větší povolenou délkou a možností zadávat více řádků textu).

Technicky je úkolem:

  1. Navrhnout XML jazyk dle volného textového zadání výše,
  2. formalizovat jeho specifikaci vytvořením strojově validovatelné gramatiky v jazyce XML Schema (případně jiném formalizmu typu RELAX NG, Schematron apod.; to ale předem konzultujte s vyučujícím) a 
  3. připravit XSL stylesheet, který každý platný dokument v tomto jazyce převede na validní XHTML (1.0 či vyšší) nebo HTML (4.01 či vyšší) stránku splňující zásady W4D s vhodnou grafickou reprezentací obsažených dat,
    • tj. řadit seznam dle abecedy (dle příjmení),
    • jména osob zobrazovat v jednotném formátu (např. „Příjmení, Jméno“ apod.),
    • e-mailové adresy a odkazy na webové adresy prezentovat jako „klikatelné“ odkazy,
    • vhodně graficky oddělit jednotlivé záznamy (jméno kontaktu je nadpis a jemu příslušející údaje využívají značkování logicky podřízené) atd.

Technické řešení demonstrujte:

  1. Vytvořením sady tří platných databází kontaktů (třech samostatných XML souborů) ve vašem jazyce:
    1. soubor nebude obsahovat žádné kontakty, tj. bude demonstrovat platný dokument, který ale neobsahuje žádné záznamy.
    2. soubor bude obsahovat právě jeden kontakt s využitím všech datových polí a jejich možností, které váš jazyk umožňuje, tj. bude představovat příklad maximální podoby záznamu, kterou je možné vaším jazykem vyjádřit.
    3. soubor bude obsahovat 5 různých záznamů s různým stupněm vyplnění údajů, tj. bude příkladem reálného dokumentu, kde pro různé kontakty bude využita různá sada podporovaných údajů.
  2. Připravte také sadu několika nevalidních dokumentů, které budou demonstrovat možné chyby v dokumentech, které jsou odhaleny jejich validací, např.
    • nepovolený formát e-mailové adresy (kde např. úplně chybí znak @ apod.) či telefonního čísla,
    • chybějící povinné datové pole,
    • výskyt neznámého pole,
    • nepovolený počet výskytů platného pole apod.

Sadu všech souborů (včetně vygenerovaných [X]HTML reprezentací) vhodně pojmenujte (např. schema.xsd; to-html.xsl; valid-empty.{xml,html}, valid-full-record.{xml,html}, valid-real-world-records.{xml,html}; invalid-email-format.xml, ... apod.) a odevzdejte ve formě jediného komprimovaného archivu do Odevzdávárny předmětu v IS MU do pondělí 11. 12. 2017, 11:00 h.

Zadání obou zápočtových úloh není (a ani nemůže a nechce být) vyčerpávající a není možné jej brát jako seznam povinných bodů, jejichž doslovné splnění vede k plnému počtu bodů a nesplnění některých z nich k přesné bodové strážce „za kus“. Konečné hodnocení bude reflektovat celkovou funkčnost a kvalitu provedení, preciznost formální definice (co všechno a jak přesně kontrolujete), dojem z grafického provedení (X)HTML reprezentace dat apod. Precizní provedení jazyka s menším množstvím možností může být cennější než rozsáhlý jazyk s chabou definicí platných dat.

Nadstandardně pěkné provedení může být snadno ohodnoceno i více než 100 % bodů plánovaných na tento zápočtový dokument. Zapojte vlastní invenci a nápady – co třeba poštovní adresy obohatit o odkazy na zobrazení místa v Google Maps / OpenStreetMap / Mapy.cz apod.? (Stačí řešit vygenerováním odkazu, který text adresy zadá dané službě k vyhledání.) Bonusové body lze rovněž získat za přípravu XSL transformací, které vstupní XML dokument převedou do alternativního formátu, např. LaTeXu.

Přejít: navigace | na začátek stránky | na konec stránky

Použití systému pro správu verzí

Při přípravě elektronických dokumentů je velmi žádoucí používat nějaký systém pro správu verzí. Volitelně můžete při vývoji svých zápočtových dokumentů použít systém pro správu verzí Subversion (silně doporučeno; o použití Subversion při práci s TeXem vyšel článek ve Zpravodaji CSTUG), případně jiný (zejména Git). Jeho korektní použití bude odměněno až 5 bonusovými body.

Pro použití Subversion pro PB029 si ve Fakultní administrativě vytvořte v připravené aplikaci repositář pojmenovaný ve tvaru <váš-fi-login>_PB029 (PB verzálkami!). Po vytvoření dodatečně přidělte právo čtení pro uživatele xnovot32, xruzick7sojka. Použití jiného systému pro správu verzí konzultujte s vyučujícím; odkazy na příslušný repozitář a další informace potřebné pro kontrolu zdokumentujte v rámci archivů odevzdávaných do Odevzdávárny předmětu v IS MU (ideálně např. pomocí textového souboru README.txt).

Body budou přiděleny jen v případě, že od odevzdání zápočtových dokumentů bude až do jejich konečného vyhodnocení dostupný repositář splňující uvedené požadavky, a pokud tento repositář byl při vývoji dokumentů skutečně použit (tzn. byly do něj ukládány jednotlivé vývojové verze dokumentů v průběhu jejich přípravy během semestru, ne jen vložena jejich finální verze předtím připravená bez použití systému pro správu verzí).

Přejít: navigace | na začátek stránky | na konec stránky