Aktuálně, 26. dubna: konvexní obal
- Úkol na dnešek: G3 Konvexní obal
- Zadání na neexistující hodinu 3. května: S1 Buňkový automat
- Zadání na 10. května vypíšu příští pátek ráno.
Organizace třetího čtvrtletí
- Na konci každé hodiny zadám práci.
- Termín odevzdání je důsledně před začátkem následující hodiny.
- Splnit práci jde buďto fungujícím kódem, nebo vysvětlením (stačí jeden odstavec), jak jste postupovali a proč to nešlo.
- Na jedničku z pololetí musíte splnit 80% prací, nezávisle na tom, jak jste přítomní ve škole. Další známky jdou po 10%.
- Na začátku hodiny si dáme krátké cvičení (například doplňovačku) a pak společně rozebereme řešení práce z minula.
jméno | G1 | G2 | G3 |
---|---|---|---|
AH | ✓ | ✓ | |
FŠ | ✓ | ✓ | ✓ |
LM | ✓ | ✓ | ✓ |
MMa | ✓ | ✓ | ✓ |
MMl | ✓ | ✓ | |
MB | ✓ | ✓ | ✓ |
TP | ✓ | ✓ | ✓ |
Témata na druhé pololetí
Třídění
Cíle: efektivita různých široce známých algoritmů a vychytávky v implementaci
- 9. února: Zkontrolujte, že je T1 seznam setříděný
- 23. února: selské třídění
- 8. března: třídění vkládáním, třídění výběrem, bubble sort
- 15. března: třídění sléváním
- domácí úkol: T4 Merge (slití dvou seznamů, které jsou setříděné)
- cvičení na doplnění kódu
- Merge sort
- Quicksort
- 22. března: třídění rozdělováním
- domácí úkol: T5 Partition (rozdělení seznamu na menší a větší část)
- 5. dubna: halda
- domácí úkol: T6 Heap pop (oprava haldového pravidla potom, co odebereme prvek)
Geometrie
- G1 Otočení bodů v rovině
- G2 Plocha mnohoúhelníka
- G3 Konvexní obal
Další témata
- Simulace: vedení tepla materiálem, pohyb aut a zácpy na dálnici
- Hry: piškvorky, tetris
- Open source software: build libovolného projektu, úprava, pull request
Úlohy na první pololetí
Úkolem na první pololetí je splnit 25 programovacích úloh. To znamená pokaždé na semináři splnit jednu, a k tomu pár navíc.
Odevzdaná úloha musí být spustitelný program bez chyb, který dává správný výsledek pro libovolný vstup v mezích zadání úlohy.
Úlohy jsou seřazené od nejlehčích po nejtěžší, podle mého úsudku. Všichni účastníci semináře by měli být schopní splnit každou z následujících úloh.
Každý den vám započítám nanejvýš jednu splněnou úlohu. Plánujte s ohledem na to, že pololetní známku bychom měli uzavřít 26. ledna.
- Program vypisující Nazdar
- Délka řetězce
- Velikost písmene
- Největší souřadnice
- Dělitelné sedmnácti
- Přesné mocniny
- Opsaná a vepsaná koule
- Čas na hodinách
- Průnik intervalů
- Opakované umocňování
- Lednička
- Klasifikace úkolů
- Kořeny kvadratické rovnice
- Pravidelná čísla
- Collatzova hypotéza
- Tahání jedné nebo dvou sirek
- Fibonacciho posloupnost
- Rozzipovaný seznam
- Počítání uvozovek
- Hra na tahání sirek
- Všechny pozice
- Největší dlaždička
- Správné závorky
- Caesarova šifra
- Číslování řádků
- Délka escapovaného řetězce
- Celočíselná plocha kruhu
- Všechny tvary
- Optimální placení dluhů
- (spíš 18,5) Levá ★
- (spíš 26,5) RLE komprese ★
- RLE dekomprese ★
Perličky
Následující úlohy jsou snad pěkné a zábavné. Náročné jsou ale trochu nad rámec toho, co bych si troufal vyžadovat od všech. Pusťte se do nich, pokud máte chuť na silnější zážitek. Bodované jsou stejně jako ty předcházející.
Řazené jsou od těch, které mě osobně těší řešit po ty, které se mi programovat nechce.
- Odsazený kód
- Fronta na úřadě
- Řazení mailů
- Kasino
- Přepište text na smajlíky
- (bude doplněno)
- (bude doplněno)
- Dělitelná trojice
- (bude doplněno)
- (bude doplněno)
- Číslo na text
- Plocha průniku dvou kružnic
Další cvičení
Klasifikace
Úkolem je splnit 25 úloh za pololetí. Za každých pět nesplněných úloh (zaokrouhleno nahoru) bude stržený stupeň.
To podrobněji znamená, že za 24 až 20 bodů napíšu na pololetní vysvědčení dvojku, za 19 až 15 bodů trojku atd.
V tabulce 1 znamená splněnou úlohu, zatímco 0 znamená, že odevzdané řešení nesplňuje zadání.
jméno | součet | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | P1 | P2 | P4 | P5 | P11 | P12 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
AH | 3 | 1 | 1 | 1 | |||||||||||||||||||||||||||||||||||
FŠ | 25 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | |||||||||||||
FH | 18 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | ||||||||||||||||||||
LM | 25 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | |||||||||||||
MMa | 20 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | ||||||||||||||||||
MMl | 25 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | |||||||||||||
MB | 25 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | |||||||||||||
TP | 25 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
Odkazy
- Oficiální dokumentace docs.python.org
- Český návod Nauč se Python
- Čitelné, leč neúplné návody na w3schools.com
- Korespondenční seminář KSP
- Programovací sport Code Golf
Úlohy z loňska
Datové typy
- Program vypisující Nazdar (do 4. října) †
- Délka řetězce (do 11. října) †
- Názvy typů (do 24. ledna) †
- Třída počítající průměr (do 24. ledna) †
- Trojúhelníková nerovnost (do 24. ledna) †
Podmínky a cykly
- Nezáporná čísla (do 11. října) †
- Kratší z parametrů (do 18. října) †
- Celočíselný logaritmus (do 25. října) †
- Transponovaná čtvercová matice (do 25. října) †
- Výskyt čísla 5 (do 6. prosince) †
- Skupiny stejných hodnot (do 13. prosince) †
Rébusy
- Had poskládaný v mřížce (do 1. listopadu) †
- Mřížka s čísly (do 1. ledna) †
- Rovnice s číslicemi (do 10. ledna) †
- Tahy koněm (do 17. ledna) †
- Piškvorky (do 24. ledna) †
- Bludiště (nebodováno) †
Řetězce a regulární výrazy
- Vyplnění jednoho druhým (do 18. října) †
- Pořadí událostí (do 20. prosince) †
- Čísla v textu (do 23. prosince) †
- Symetrická slova (do 23. prosince) †
- Japonština (do 10. ledna) †
- Hlučný kávovar (do 10. ledna) †
Matematika
- Sčítání času na hodinách (do 1. listopadu) †
- Odmocnina z velkého čísla (do 29. listopadu) †
- Bonusová výzva (není bodováno, do 31. prosince) †
- Maticové násobení (do 3. ledna) †
- Kochova křivka (do 10. ledna) †
- Největší dlaždička (do 24. ledna) †
Seznamy, slovníky, množiny
- Odlišnosti v seznamech (do 1. listopadu) †
- Kružnice z dvojic (do 15. listopadu) †
- Okraj trojúhelníkové sítě (do 24. listopadu) †
- Zvířata na arše (do 24. listopadu) †
- Nejčastější písmena (do 6. prosince) †
- Slévání seznamů (do 3. ledna) †
- Propojené ostrovy (do 17. ledna) †
- Hosté na mejdanu (do 24. ledna) †
Odkazy
- Oficiální dokumentace docs.python.org
- Čitelné, leč neúplné návody na w3schools.com
- Korespondenční seminář KSP
- Programovací sport Code Golf