Zápočtový test.
Dořešení úlohy z minula.
Metodiky vývoje – framework.
Řešení těžkých úloh, zkoušková úloha (zadání).
Kreslení konstrukcí – dokončení(ukázka pokročilejšího využití Properties).
Unit testy, výjimky.
Algoritmus příšery pro DÚ.
Agilní vývoj – kreslení konstrukcí.
[SkiaSharp demo] [Kreslení konstrukcí - vstupy]
[program ze cvičení (.zip) – Git repozitář, průběžně commitovaný]
Dynamické programování. Těžká úloha (poslanci).
Dynamické programování (úlohy).
Cvičení nebude – Velikonoce
Porovnávání vlastních typů – dokončení. Na co nezapomenout.
Pexeso – GUI pomocí WinForms, vodopádový model vývoje.
Refactoring [Program.cs], naming conventions. Čtení vstupu ze souboru (kód viz Refactoring).
Porovnávání vlastních typů [Template.cs] – na co nezapomenout.
Dekompozice, objektový návrh. Objekty, dokumentační komentáře, knihovní datové struktury.
Programování v C# (čtečka čísel), seznámení s Visual Studiem
Cvičení nebylo
Zápočtový program je větší software, který naprogramujete doma během semestru, zkouškového nebo prázdnin. Téma si vymyslíte sami, jakmile jej budete mít rozmyšlené (nejpozději však do 20. 5.), sepište specifikaci – krátký (1–2 odstavce) popis tématu (tj. co váš program bude dělat) – a pošlete mi ji ke schválení.
Program se odevzdává skrz fakultní Gitlab, kde budete (později během semestru) mít připraven repozitář
( https://gitlab.mff.cuni.cz/teaching/nprg031/2324-summer/student-LOGIN_DO_SISU
), do kterého přidáte váš program.
Součástí odevzdávaného programu musí být také dokumentace, která má tři hlavní části:
docs
a v ní mít několik souborů ve formátu Markdown (.md
). Do souboru README.md
pak vložte rozcestník (odkazy) na jednotlivé části dokumentace.
Dokumentaci můžete psát česky, slovensky, nebo anglicky.
Program odevzdejte nejpozději do 31. 8. (doporučuji dříve), abych měl dost času se na něj podívat a vy měli dostatek času opravit případné závady do konce akademického roku (30. 9. – po tomto datu už vám nemohu zapsat zápočet).
Zápočtový program nemusí být nutně napsán v C#, můžete použít jiný jazyk, který dobře znáte nebo se hodí pro vybranou úlohu. Pokud ale budete chtít použít jiný jazyk než C#, domluvte se na tom se mnou předem (= uveďte to ve specifikaci).
Pěkný seznam možných témat má na svém webu Martin Mareš, další návrhy a informace k zápočtovému programu sepsal i Jirka Mayer. Návod a rady k psaní dokumentace najdete na webu Rudolfa Kryla.Používat můžete cokoliv, já budu na cvičeních používat Visual Studio (pouze pro Windows). Pro naše účely bude stačit zdarma dostupná verze Community. Při instalaci vyberte komponentu .NET desktop development (Vývoj desktopových aplikací pro .NET).
Pokud by vám Community edice nestačila, jakožto studenti informatiky na MFF UK máte nárok i na Enterprise edici (pro studijní účely): Jděte na portal.azure.com a přihlašte se pomocí vaše UKČO @cuni.cz, budete přesměrováni na přihlašovací stránku CAS UK. Po přihlášení zvolte službu Education a v levém menu položku Software. Tam najdete licenční klíče k různému softwaru od MS, mimo jiné k VS Enterprise. A také třeba k Windows 10/11 Education.
Jiná možná IDE (vhodná zejména pro Linux) jsou Visual Studio Code (s rozšířením pro C#) nebo Rider od JetBrains (pro studenty zdarma).
Programovací úkoly vám ReCodEx ihned zkontroluje a oboduje. Pokud vaše řešení nebude 100%, můžete odevzdat nové. Počet pokusů bude omezen, počítat se bude ten nejlepší. Některé úkoly (např. nalezení co nejlepšího řešení nějaké těžké úlohy, programy s GUI, …) budu opravovat ručně, tudíž budete mít obvykle jen jeden pokus.
Jak ReCodEx zprovoznit:
Pokud máte soubory uložené na Studentském
úložišti (disk (su.mff.cuni.cz)
), dostane se k nim například přes webové
rozhraní https://su.mff.cuni.cz/.
Pokud máte soubory na afs (ve škole disk Z:
), můžete se k nim připojit vzdáleně pomocí OpenAFS, návod na wiki laboratoře Rotunda.
Jiný způsob je skrze vzdálený přístup na nějaký počítač v počítačové laboratoři Rotunda (co dalšího tam můžete dělat zde):
ssh login@u-plXX.ms.mff.cuni.cz
, místo XX
zadejte
číslo z rozsahu 1–?, login a heslo jako do SISuu-plXX.ms.mff.cuni.cz
, místo XX
zadejte
číslo z rozsahu 1–?, např. u-pl1.ms.mff.cuni.cz