Obsah

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.

Další možností je napsat mi na mail (topfer@d3s.mff.cuni.cz) a domluvit si konzultaci.

V čem budeme programovat a jak to nainstaluju

Na první přednášce bude ukázka použití interpretu Pythonu z příkazové řádky, potom jednoduché prostředí IDLE, které se instaluje společně s Pythonem a nakonec Visual Studio, ve kterém bude probíhat zbytek přednášek. Já budu na cvičení používat Visual Studio Code, což je textový editor inspirovaný Visual Studiem, ale podstatně menší a hlavně běží i na Linuxu a macOS. Taky si nejspíš ukážeme PyCharm od JetBrains, který můžete jako studenti používat zdarma. 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é. Pro přihlášení použijte stejné jméno a heslo jako do SISu.

Instalace VS Code

  1. Nainstalujte si Python 3.
  2. Nainstalujte si Visual Studio Code.
  3. Přidejte si do VS Code rozšíření pro Python (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).

Stejné pokyny v angličtině najdete taky v dokumentaci VS Code.

ReCodEx

Domácí úkoly z obou cvičení budou zadávány a odevzdávány pomocí systému ReCodEx.

První přihlášení

  • 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 Algoritmizace a Programování 1 (programování má dvě skupiny – jednu na domácí úkoly a jednu na práci na cvičeních).

Pokud vám něco nefunguje, zkuste se podívat na FAQ ReCodExu, případně mi napište email.

Odevzdávání úloh

Otevřete si úlohu a klikněte na tlačítko Odevzdat nové řešení. ReCodEx váš program automaticky spustí a vyzkouší, jestli vypisuje správný výsledek pro různé vstupy (testy). Na následujícím obrázku je ukázka, jak může dopadnout vyhodnocení:

  1. OK znamená, že váš program pro daný test vypisuje správný výsledek.
  2. Chyba znamená, že váš program nevypisuje správný výsledek. Pokud jsou v následujících třech sloupcích samé zelené fajfky, váš program doběhne, ale vypisuje špatný výsledek.
    • ⚠️ Poznámka: Pozor na to, že ReCodEx vyhodnocuje správnost vašeho řešení tak, že ho porovná se vzorovým výsledkem. Porovnávání probíhá znak po znaku, takže text, který váš program vypíše, musí úplně přesně odpovídat vzorovému výstupu (nesmí v něm být ani žádný znak navíc). Hlavně si dejte pozor na to, že použití input("Zadej číslo: ") taky vypisuje na výstup a ReCodEx to nejspíš nevezme. Radši vždy používejte input() bez parametrů (prázdné kulaté závorky).
  3. Pokud váš program běží příliš dlouho (u úloh z Programování 1 by se to stát němělo), ReCodEx ho ukončí a vy uvidíte červený křížek ve 4. sloupci vyhodnocení.
  4. Pokud váš program spotřebuje příliš mnoho paměti (u úloh z Programování 1 by se to stát němělo), ReCodEx ho ukončí a vy uvidíte červený křížek ve 3. sloupci vyhodnocení.
  5. Pokud váš program spadne s chybou (např. ValueError při převodu textového řetězce na číslo, nebo LookupError při přistupování k indexu mimo rozsah seznamu) bude tato chyba vypsána v posledním sloupci vyhodnocení.

Ukázka ReCodExu

Řešení můžete odevzdávat i opakovaně. Body se vždy počítají z nejlepšího odevzdaného řešení.

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 skript sshfslogin, 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
  • na Linuxu se můžete připojit pomocí SSH: ssh LOGIN@u-pl0.ms.mff.cuni.cz (místo LOGIN dejte vaše přihlašovací jméno), kopírovat soubory můžete třeba pomocí SCP.