Obsah
- konzultace
- v čem budeme programovat
- vytvoření nového C# projektu
- ReCodEx
- procvičování
- přístup k souborům na školních počítačích
Dotazy a konzultace
Pokud vám něco, co říkám, nebude jasné, ptejte se. Ideálně hned, dokud je to aktuální. Je velmi pravděpodobné, že v učebně sedí několik dalších lidí s úplně stejným dotazem, ale bojí se zeptat. Nebojte se. Cvičení je pro vás. Cílem je, abyste látku pochopili, ne abych ji já jen zbytečně odvykládal.
Pokud se stydíte zeptat, nebo je váš dotaz moc dlouhý či kontroverzní, můžete se zeptat po skončení cvičení. V tomto čase většina ostatních studentů už odejde a zůstanou jen ti, kteří se mnou chtějí něco řešit.
Pokud by někdo chtěl něco dovysvětlit nebo se mu nedařilo a chtěl by probrat cokoliv jiného, napište mi email a domluvíme se na termínu konzultace.
V čem budeme programovat a jak to nainstaluju
Já budu na cvičení používat Visual Studio Code, které jsme používali v zimním semestru (a na rozdíl od Visual Studia, které se používá na přednáškách, jde spustit i na jiných platformách než Windows). Taky nesmím zapomenout na prostředí Rider od JetBrains, které můžete jako studenti používat zdarma, nicméně není v labu nainstalované. Pokud už máte nainstalovaný nebo oblíbený jiný editor (Atom, Sublime, …), problém s tím nemám.
Na počítačích v učebně jsou všechny potřebné nástroje už nainstalované.
Dokumentace C#
V dokumentaci k C# najdete popis tříd a metod ze standardní knihovny, které se vám při programování můžou hodit.
Instalace VS Code
- Nainstalujte si Visual Studio Code.
- Přidejte si do VS Code rozšíření pro C# (rozšíření se do VS Code přidávají v levém panelu v ikoně Extensions nebo přes odkaz z webového prohlížeče).
- Automaticky by se měl nainstalovat i .NET. Můžete to ověřit spuštěním příkazu
dotnet --version
v terminálu (možná bude nutné před tím restartovat VS Code). Pokud nefunguje, můžete .NET nainstalovat ručně. - Pokud máte s rozšířením problémy, můžete zkusit nainstalovat jeho starší verzi (1.26.0).
- Automaticky by se měl nainstalovat i .NET. Můžete to ověřit spuštěním příkazu
Stejné pokyny v angličtině najdete taky v dokumentaci VS Code. Pro vývoj budeme používat .NET Core, postup vytvoření nového projektu najdete níže, ukážeme si ho na cvičení nebo ho najdete v dokumentaci VS Code.
Vytvoření nového projektu
Ve Visual Studiu je to snadné, stačí kliknout na File → New → Project… a vybrat Console App. Pak se nastaví jméno a umístění projektu. Pro naše projekty doporučuji zaškrtnout Place solution and project in the same directory, protože budeme pracovat vždy jen s jedním projektem současně, takže nepotřebujeme vytvářet pro projekt podsložku. Pokud chcete program odevzdávat do ReCodExu, věnujte pozornost rámečku níže. Existuje také rozšíření Recodex Template, které vám dovolí místo Console App vybrat Recodex, čímž by se věci zmíněné v rámečku měly nastavit automaticky.
Ve VS Code ovšem tlačítko pro vytvoření nového projektu není. Pomůžeme si příkazem dotnet
na příkazové řádce.
- Vytvořte složku, ve které chcete projekt mít a přejděte do ní v terminálu.
- Spusťte
dotnet new console
. To vám vyrobíProgram.cs
, který můžete editovat a spustit. Pokud chcete program odevzdávat do ReCodExu, věnujte pozornost rámečku níže. - Hodí se mít VS Code otevřený ve složce projektu, to se udělá snadno spuštěním
code .
(včetně tečky), což otevře VS Code v aktuální složce. - Když je VS Code otevřený přímo ve složce projektu, umí sám vygenerovat soubory potřebné pro spuštění projektu. Stačí na kartě Run and Debug kliknout na Generate C# Assets for Build and Debug.
- Poznámka: V labu se mi tlačítko nezobrazovalo a nefungovalo ani zadání příkazu ručně (pomocí
Ctrl+Shift+P
):.NET: Generate Assets for Build and Debug
. Nakonec pomohlo nainstalovat starší verzi rozšíření pro C# (1.26.0).
- Poznámka: V labu se mi tlačítko nezobrazovalo a nefungovalo ani zadání příkazu ručně (pomocí
- Spustit program pak můžete z karty Run and Debug kliknutím na zelenou šipku nahoře (klávesová zkratka F5).
- Pokud vám nefunguje nebo nevyhovuje čtení vstupu přes okno Debug Console, můžete VS Code nastavit, aby četl vstup z terminálu (jako to bylo v Pythonu v ZS). Je potřeba ve vygenerovaném souboru
.vscode/launch.json
změnit řádek"console": "internalConsole",
na"console": "integratedTerminal",
.
- Pokud vám nefunguje nebo nevyhovuje čtení vstupu přes okno Debug Console, můžete VS Code nastavit, aby četl vstup z terminálu (jako to bylo v Pythonu v ZS). Je potřeba ve vygenerovaném souboru
Z příkazové řádky se projekt dá spustit pomocí dotnet run
.
ReCodEx a C#
-
V ReCodExu nefungují top-level statements (program bez
Main
metody). Aby program v ReCodExu fungoval, musíte založit projekt sMain
metodou pomocí příkazudotnet new console --use-program-main
(v kroku 2 výše). Pokud používáte Visual Studio, zaškrtněte při vytváření projektu možnost Do not use top-level statements. -
Nově vytvořený projekt používá implicitní importy (takže na začátku programu nemusíte mít napsané
using System;
a některé další), které jsou v ReCodExu vypnuté. Může se vám stát, že vám kód lokálně půjde zkompilovat, ale v ReCodExu neprojde. Řešení je vypnout si implicitní importy i u sebe: z.csproj
souboru odstraňte řádek<ImplicitUsings>enable</ImplicitUsings>
. Na začátek vašeho souboru s programem (.cs
) pak budete muset doplnit řádekusing System;
(a možná takyusing System.Collections.Generic;
a nějaké další).
ReCodEx
Domácí úkoly budou zadávány a odevzdávány pomocí systému ReCodEx.
Jak rozchodit ReCodEx:
- Jděte na https://recodex.mff.cuni.cz/login.
- V sekci Přihlásit se pomocí externí služby klikněte na Ověřit uživatele.
- Přihlaste se pomocí Centrální Autentizační Služby (CAS CUNI). Jméno a heslo jsou stejné jako do SISu.
- V menu vlevo dole je položka SIS Integrace. Tam se přidejte do skupin Programování 2 (dvě skupiny – jedna na domácí úkoly a jedna na práci na cvičeních).
Chci se procvičovat doma a nevím jak
Středoškolská soutěž Kasiopea má archiv domácích kol, kde se obtížnost úloh stupňuje od velmi lehkých k velmi náročným.
Korespondenční seminář z programování má online k dispozici nejen úlohy, ale i kuchařky vysvětlující nejrůznější oblasti algoritmizace, diskrétní matematiky a spousty dalších užitečných oblastí. Lehčí úlohy najdete v začátečnické kategorii.
Průvodce labyrintem algoritmů je kniha (dostupná online) shrnující látku předmětů Algoritmizace, Algoritmy a datové struktury I a Algoritmy a datové struktury II. Její úvodní kapitoly rozebírají paměťovou a časovou složitost, binární vyhledávání, Euklidův algoritmus, třídění, haldy apod.
Přístup k souborům na školních počítačích
Pokud pracujete na školních počítačích a chtěli byste k vytvořeným souborům mít přístup i z domova, jde to poměrně snadno – stačí je uložit na AFS:
- na Windows ukládejte soubory na disk
Z:
(měl by se připojit automaticky po přihlášení; pokud ho nevidíte, spusťte skriptsshfslogin
, který je na ploše), - na Linuxu do svého domovského adresáře.
Z domova pak k AFS můžete přistupovat pomocí vzdáleného přístupu k počítačům v laboratoři Rotunda (co dalšího s nimi můžete dělat se dozvíte zde):
- na Windows třeba pomocí WinSCP
- vytvořte si Nové spojení (New Connection), protokol: SFTP, hostitel (host):
u-pl0.ms.mff.cuni.cz
, jméno a heslo jako do SISu
- vytvořte si Nové spojení (New Connection), protokol: SFTP, hostitel (host):
- na Linuxu se můžete připojit pomocí SSH:
ssh LOGIN@u-pl0.ms.mff.cuni.cz
(místoLOGIN
dejte vaše přihlašovací jméno), kopírovat soubory můžete třeba pomocí SCP.