Cvičení z Programování 2, LS 2023/2024

Pondělí od 12:20 v N8 (IMPAKT)
Cvičení vede Jakub Mestek (jakub.mestek<at>mff.cuni.cz)
Cvičení v AR 2022/2023

Obsah cvičení

12. cvičení, 20. 5.

Zápočtový test.

11. cvičení, 13. 5.

Dořešení úlohy z minula.

Metodiky vývoje – framework.

10. cvičení, 6. 5.

Řešení těžkých úloh, zkoušková úloha (zadání).

9. cvičení, 29. 4.

Kreslení konstrukcí – dokončení(ukázka pokročilejšího využití Properties).

Unit testy, výjimky.

Algoritmus příšery pro DÚ.

[programy ze cvičení]

8. cvičení, 22. 4.

Agilní vývoj – kreslení konstrukcí.

[SkiaSharp demo] [Kreslení konstrukcí - vstupy]

[program ze cvičení (.zip) – Git repozitář, průběžně commitovaný]

6. cvičení, 8. 4.

Dynamické programování. Těžká úloha (poslanci).

6. cvičení, 8. 4.

Dynamické programování (úlohy).

[programy ze cvičení]

1. 4.

Cvičení nebude – Velikonoce

5. cvičení, 25. 3.

Porovnávání vlastních typů – dokončení. Na co nezapomenout.

Pexeso – GUI pomocí WinForms, vodopádový model vývoje.

[programy ze cvičení]

4. cvičení, 18. 3.

Refactoring [Program.cs], naming conventions. Čtení vstupu ze souboru (kód viz Refactoring).

Porovnávání vlastních typů [Template.cs]na co nezapomenout.

[programy ze cvičení]

3. cvičení, 11. 3.

Dekompozice, objektový návrh. Objekty, dokumentační komentáře, knihovní datové struktury.

[programy]

2. cvičení, 4. 3.

Programování v C# (čtečka čísel), seznámení s Visual Studiem

[Cheat sheet] [programy]

26. 2.

Cvičení nebylo

1. cvičení, 19. 2.

Úvodní informace

Těžká úloha – pošta

[slidy]

Podmínky získání zápočtu

Zápočtový program

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:

Vhodný způsob, jak psát dokumentaci je vytvořit si v repozitáři složku 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.

Návody

Vývojové prostředí

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).

ReCodEx

Pro zadávání a odvezdávání domácích úkolů budeme používat systém ReCodEx.

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:

Přístup k souborům na školních počítačích

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):

-->