+ All Categories
Home > Documents > IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu...

IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu...

Date post: 28-Sep-2020
Category:
Upload: others
View: 6 times
Download: 0 times
Share this document with a friend
62
IB111 Úvod do programování Úvod kurzu 2016
Transcript
Page 1: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

IB111 Úvod do programováníÚvod kurzu

2016

Page 2: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Úvodní dotazník

1 programátorské zkušenostiA (téměř) žádnéB dílčí zkušenosti, ale nepříliš kvalitníC dobré zkušenosti

2 programovací jazykPythonC, C++, C#JavaPascalPHPjiné

Page 3: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Úvodní dotazník

očekávání o využití programování

A intenzivní, profesníB nějak určitě, otázka jak mocC spíš ne

Page 4: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Dnešní přednáška

o předmětuorganizace, ukončenípojmy – algoritmus, programovánímotivace, širší kontextpředstavení Pythonu, rychlé demo

více o samotném programování až příště

Page 5: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Cíle předmětu

zvládnutí základních programátorských konstrukcí(proměnné, funkce, if, for, while, . . . )obecné principy použitelné v řadě programovacích jazykůúvod do programátorského a algoritmického stylu myšlení

Page 6: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Programovací jazyk Python

Úvod do programování skrze PythonnikolivÚvod do programování v Python

Python je používán pro ilustraci pojmů a příkladů, nacvičeníchdůraz na obecné koncepty, cílem není detailní zvládnutíPythonuzáměrně neprobíráme specifika Pythonuzvládnutí konkrétního jazyka – trénink a praxe

Page 7: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Programátorská kultura

Programy by měly být nejen korektní, ale i „pěknéÿ.

Page 8: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Co čekat: příklady

výpočty: faktoriál, prvočísla, odmocnina, náhodná číslaobrázky: želví grafika, „textová grafikaÿ, bitmapyjednoduché hry: hádání čísla, jednorozměrné piškvorkyzpracování dat: statistiky dat ze souboru

Page 9: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext
Page 10: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Forma předmětu

2h přednáška, nepovinná, ale velmi doporučenáRadek Pelánek / Nikola Benešhodně „příkladový stylÿslidy nemusí být pochopitelné bez komentáře, obsahují izáměrné chyby (pro ilustraci)záznamy dostupné, ale plátno nepříliš čitelnéna cvičení často algoritmy z přednášky

2h cvičení, povinnéprogramování v jazyce Pythonvíce skupin, cvičícíchspeciální cvičení 01

Page 11: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Komunikace

řešení problémů, nestandardní situace, . . .

cvičící spíše než přednášejícíosobně (po cvičení, přednášce) spíše než elektronickydiskuzní fórum spíše než mail

Page 12: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Hodnocení předmětu

závěrečná písemná zkouška: 200 bodů (50 %)zkouší se principy, algoritmy, pojmytest s výběrem možností, podobné průběžnýmOdpovědníkům

průběžná zkouška u počítače: 80 bodů (20 %)programování v rámci jednoho cvičeníúkoly – variace na příklady ze cvičení

domácí úkoly: 120 bodů (30 %)6 za semestrbodování: 15, 15, 15, 25, 25, 25

výjimečné bonusové body

Page 13: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Hodnocení předmětu – minimum pro ukončení

účast na cvičení (max. 2 neomluvené hodiny)odevzdání všech 6 domácích úloh (alespoň 1 bod zakaždou)alespoň 80 bodů za domácí úlohyalespoň 100 bodů ze závěrečné písemkyalespoň 220 bodů celkově

Page 14: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Domácí úkoly – organizace

skupiny: rámcově stejné zadání, odlišné detailypřesné zadání, termín odevzdání – kompetence cvičících

Page 15: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Domácí úkoly – neúplná řešení

pokud nezvládnete úlohu kompletně, zkuste alespoň něco(za méně bodů) – jasně označte:

částečné řešenípozměněná (zjednodušená) úlohapřevzatá část řešení (z webu) a doplněna vlastní úprava

pokud řešení není úplné, uveďte v komentáři „známénedostatkyÿ

Page 16: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Opisování

pracujte samostatněopisování se trestá zápornými body a disciplinární komisíneřešíme, kdo opisoval – nesdílejte svoje řešení

Page 17: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Speciální cvičení

skupina 01pro ty, kdo již mají programátorské zkušenostibez pravidelných cvičení a domácích úloh3 projekty, osobní prezentace

Page 18: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Stránka předmětu

http://www.fi.muni.cz/IB111/

harmonogram přednášek, cvičení, úkolůvýukové materiálydoplňující informace

Page 19: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Studijní materiály v ISu

Relevantní agendy z ISu pro tento předmět:Učební materiály – slidy z přednášekOrganizační pokyny – archiv zaslaných mailůOdpovědníky – tréninkové testy, dobrovolné, doporučenéOdevzdávárny – odevzdávání domácích úlohPoznámkové bloky – počet bodů z úlohDiskuse – nejasnosti, tipy na zajímavé zdroje, . . .

Page 20: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Sbírka příkladů

http://www.fi.muni.cz/IB111/sbirka/

interaktivní webová stránkapříklady ze cvičeníprocvičení nad rámec cvičení

Page 21: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Doplňkové zdroje – knihy

Python Programming: An Introduction to ComputerScience, J. M. Zelle.Introduction to Computing and Programming in Python,A Multimedia Approach. M. Guzdial, B. Ericson.Programátorská cvičebnice, R. Pelánek.Jak to vyřešit, R. Pelánek.

Page 22: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Doplňkové zdroje – web

Učíme se programovat v jazyce Python,http://howto.py.cz/index.htm

http://interactivepython.org – interaktivníučebnicedokumentace k Pythonuhttps://www.hackerrank.com/ – příklady, řešení (aopravování) v prohlížečiCoursera, Udacity kurzynapř. Learn to Program: The Fundamentals, An Introduction to Interactive Programming in Python

sdílejte užitečné zdroje v diskusním fóru předmětu

Page 23: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Předpoklady

základní počítačová gramotnoststředoškolská matematika (např. faktoriál, prvočíslo,logaritmus)logické spojky (and, or, . . .)angličtina (alespoň pasivně, základní porozumění)

rychlotest: Kahoot

Page 24: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Osvěžení základů

tutor.fi.muni.cz

Binární křížovkaRobotanikMatematické pexeso

Page 25: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Náročnost předmětu

. . . závisí na vstupních dovednostech

A žádné programátorské zkušenosti⇒ náročné, nezbytné věnovat průběžně čas nad rámecpřednášek a cvičení

B dílčí programátorské zkušenosti⇒ není těžké, pokud se předmětu průběžně poctivě věnujete

C dobré programátorské zkušenosti⇒ celkem snadné, ale nepodcenit (především 2. polovinukurzu a závěrečnou zkoušku)

Page 26: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Motivační úloha

převozník, loďka uveze jen 1další kus nákladunáklad: vlk, koza, zelíbez dozoru:

vlk žere kozukoza žere zelí

jak dostat vše bezpečně nadruhou stranu

Jak řešit úlohu algoritmicky? Co to znamená?

http://www.fi.muni.cz/~xpelanek/IB111/vkz/

Page 27: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Motivační úloha

převozník, loďka uveze jen 1další kus nákladunáklad: vlk, koza, zelíbez dozoru:

vlk žere kozukoza žere zelí

jak dostat vše bezpečně nadruhou stranu

Jak řešit úlohu algoritmicky? Co to znamená?

http://www.fi.muni.cz/~xpelanek/IB111/vkz/

Page 28: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Algoritmus

návod/postup, jak „mechanickyÿ vyřešit určitý typúlohy/problémupříklady:

rozklad na součin prvočíselnalezení nejkratší cesty mezi dvěma městyvygenerovat zadání Sudoku

Page 29: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Žádoucí vlastnosti algoritmu

má jasný vstup a výstupobecný (nejen pro omezenou třídu instancí)deterministický (vždy jednoznačné, jak postupovat)konečný, efektivní

Page 30: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Programování

za algoritmus můžeme považovat i recept, návodprogramování – zápis algoritmů pro počítačepočítače jsou „hloupéÿ – zápis algoritmu musí býtopravdu přesný (srovnej „osolíme přiměřeněÿ)nutnost vyjadřovat se přesně:

otrava – náročný zápisbonus – nutnost myslet přesně

Page 31: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Programování: motivace

Proč pořádně zvládnout základy programování?

základ pro další studiumužitečnost

profesníobčasná

elegance, kreativita, „sílaÿ

Page 32: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Programování: způsoby využití

(příklady, rozhodně ne kompletní klasifikace)aplikaceprogramování pro webvestavěné systémyvědecké výpočtyskriptování

každé důraz na něco jiného, sdílí ale základní principy„informatického myšleníÿ, námi probírané základní konstrukcejsou potřeba všude

Page 33: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Aplikace

„samostatnéÿ aplikace pro stolní počítače, mobilnízařízenípříklady:

kancelářský softwareeditace grafiky, zvuku, videahry

důraz na interakci s uživatelemvyužití knihoven, práce s operačním systémem

Page 34: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Programování pro web

příklady:informační systémye-obchodyprezentace firmy

široká škála:drobné úpravy existujících systémů (CMS)vytváření vlastních rozsáhlých systémů

práce s databázemi, integrace různých prostředků(Python/PHP, JavaScript, CSS, HTML, . . .)důraz na soukromí – přístupová práva v IS, elektronicképlatby

Page 35: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Vestavěné systémy

příklady:kuchyňské spotřebiče, GPS, mobil, foťákdopravní prostředkyzdravotnické přístroje

nízko-úrovňové programování, ovladačeúzké propojení s konkrétním hardwarembezpečnost, práce s limitovanými zdroji (paměť, energie)

Page 36: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Vědecké výpočty

příklady:simulace počasí, klimatubioinformatika (protein folding, analýza genomu, . . .)

vymýšlení algoritmů (urychlení výpočtu, distribuovanévýpočty)propojení informatiky a matematiky (příp. jiných disciplín)zpracování rozsáhlých datuživatelské rozhraní a interaktivita jsou jen malá část

Page 37: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Skriptování

příklady:převod dat mezi různými formátyrychlá analýza datprototypy, experimentydrobné úpravy systému (např. správce sítě)

malý rozsah, specifický účelčasto jednorázové aplikace„programování pro běžný životÿ

Page 38: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Programování v malém / ve velkém

programování v malémdesítky až stovky řádků kódunezávislé na „ostatníchÿtento předmět

programování ve velkémtisíce až milióny řádkůzávislosti, souvislosti, návrh, testování, . . .další předměty (OOP, softwarové inženýrství, . . .)

Page 39: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Programování v malém: motivace

nutná prerekvizita pro kvalitní programování ve velkémtrénink myšleníprakticky užitečné, i když nejste programátor na plnýúvazek

Page 40: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Praktické programování v malém: příklady

tvorba studijního kataloguvytvoření interaktivní webové úlohy pro systém Tutorzpracování botanických datvytváření šifer pro Tmouobrázky do knihy Hlavolamikon

pokud neovládáte X, pak vás často ani nenapadne, že by sevám X mohlo hodit

Page 41: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext
Page 42: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext
Page 43: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Obrázky do knihy

”0102010902050302030703080401040304090507060606100701. . .;3131313113:3131231213-;10”

3131313113

3 1 3 1 2 3 1 2 1 3

Page 44: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Doporučené cvičení

rutinní činnost na počítači⇓

programátorské cvičení

Page 45: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Nejen užitečnost . . .

programování je zajímavé i samo o soběelegantní myšlenkyradost z objevování, experimentovánítvoření, kreativita„sílaÿ – pár stisků klávesnice a vytvoříte něco nového azajímavého

Page 46: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Elegance

Mandelbrotova množina, 25 řádků kódu

Page 47: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Programovací jazyky

zdrojový kód(program) překladač

strojovýkód

vstupy výstupyběžící

program

zdrojový kód(program)

vstupy

výstupyinterpret

kompilovaný program

interpretovaný program

Page 48: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Programovací jazyky: klasifikace I

nízko-úrovňové

kompilovanénutnost řešit specifika konkrétního systémuexplicitní práce s pamětínáročnější vývoj (nízká efektivita práce)vysoká efektivita programu

vysoko-úrovňové

interpretovanénezávislé na konkrétním systémuvyužití abstraktních datových typůsnadnější vývoj (vysoká efektivita práce)nižší efektivita programu

nikoliv dvě kategorie, ale plynulý přechod; zjednodušeno

Page 49: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Programovací jazyky: klasifikace II

zjednodušená klasifikace a použití

nízko-úrovňové C, FORTRAN, . . .vestavěné systémy, rychlé výpočty

objektové C++, Java, C#, . . .klasické aplikace, rozsáhlé systémy

skriptovací Python, PHP, JavaScript, Perl, . . .programování pro web, skriptování, prototypy

deklarativní Prolog, LISP, Haskell, . . .umělá inteligence

více na samostatné přednášce na konci semestru

Page 50: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Python

vysoko-úrovňový – velká míra abstrakce, „spustitelnýpseudokódÿinterpretovaný – pomalejší než kompilovaný, ale většívolnostpedagogický – byl tak navržen, dnes již dominantnívýukový jazykmoderní a široce používaný – patří mezi přibližně 5nejpoužívanějších jazykůvolně a snadno dostupný na všech platformáchširoká nabídka knihoven

Page 51: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Původ jazyka a názvu

autor:Guido van Rossumkonec 80. let

název podle:Monty Python’sFlying Circus

Page 52: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

https://xkcd.com/353/https://www.explainxkcd.com/wiki/index.php/353

Page 53: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Příklad aplikace: Slepé mapy

Python, Django, JavaScript, řada dílčích knihoven

Page 54: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Data

id;user;place_asked;place_answered;type;inserted;response_time;place_map;language;options;ip_country;ip_id10101829;124252;124;124;2;2015-05-21 07:39:18;3107;231;0;[124, 214];CZ;4528010101830;124242;1304;1304;1;2015-05-21 07:39:19;4225;225;0;[];CZ;1087710101831;124252;127;127;1;2015-05-21 07:39:22;3878;231;0;[73, 127];CZ;4528010101832;123553;604;;1;2015-05-21 07:39:25;10790;126;0;[];CZ;4511010101833;124242;1016;1017;1;2015-05-21 07:39:30;9887;225;0;[];CZ;1087710101834;124242;1300;;1;2015-05-21 07:39:33;735;225;0;[];CZ;1087710101835;124252;112;111;2;2015-05-21 07:39:36;13422;231;0;[54, 169, 111, 112, 214, 186];CZ;4528010101836;124239;151;151;1;2015-05-21 07:39:39;4346;227;1;[];US;3599910101837;123553;450;445;1;2015-05-21 07:39:40;12790;126;0;[];CZ;4511010101838;124239;224;224;1;2015-05-21 07:39:43;2896;227;1;[];US;3599910101839;124252;134;134;1;2015-05-21 07:39:43;4297;231;0;[134, 214, 127];CZ;4528010101840;124239;183;183;1;2015-05-21 07:39:47;2719;227;1;[];US;3599910101841;124239;180;180;1;2015-05-21 07:39:50;3007;227;1;[];US;3599910101842;124252;218;207;1;2015-05-21 07:39:54;5732;231;0;[];CZ;4528010101843;124239;87;87;1;2015-05-21 07:39:54;3145;227;1;[];US;35999...

http://www.fi.muni.cz/adaptivelearning/?a=data

Page 55: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Analýza dat

Python, NumPy, SciPy, Pandas, matplotlib, Kartograph,networkx, . . .

Page 56: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Programování v tomto kurzu

důraz na obecné principy, nikoliv specifika Pythonuvětšina konceptů snadno a velmi podobně realizovatelná vjiných jazycíchpoužíváme Python 3 (zpětně nekompatibilní s Python 2)minimální použití rozšiřujících knihoven

Page 57: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Osnova I: Základy

Základní konstrukce (proměnné, výrazy, řídicí struktury,funkce)Programy pracující s čísly (číselné typy, jednoduchéukázky, dělitelnost, náhoda)Řetězce a seznamy (a kryptografické odbočky)Vyhledávání a řazení (práce se seznamem, binárnívyhledávání, řadicí algoritmy, základy složitosti)

Page 58: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Osnova II: Důležité věci detailněji

Datové typy a jejich užití (seznam, zásobník, fronta,slovník, množina)Rekurze (rekurzivní funkce, příklady)Práce se soubory, správa paměti (proměnné podrobněji)Složené datové typy, objekty v PythonuPráce s textem

Page 59: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Osnova III: Aplikace, praxe

Příklady aplikace datových strukturObrázky (reprezentace, generování, úpravy)Vývoj programů (návrh, dekompozice problému,dokumentace, testování; případová studie)Programovací jazyky (přehled jazyků a jejich užití),praktické postřehy

Page 60: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Hlavní návaznosti

IB002 Algoritmy a datové struktury IPB161 Programování v jazyce C++PB162 Programování v jazyce JavaIB015 Neimperativní programováníPB007 Softwarové inženýrství I

Page 61: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Odpadá 2. přednáška

samostudium, podklady e-mailem

proměnnétypy (číslo, řetězec, bool)print (funkce pro výpis)výrazy, operátory (aritmetické, logické)podmínky (if/else)cykly (for, while)bloky kódufunkce

Page 62: IB111 Úvod do programování Úvod kurzu · 2016. 9. 22. · Dne„ní płednÆ„ka o płedmìtu organizace, ukonŁení pojmy { algoritmus, programovÆní motivace, „ir„í kontext

Závěrečný příklad na zamyšlení: Vězni a karty

Albert dostane 5 karet ze standardního balíčku 52 karetvybere jednu z nichzbylé čtyři poskládá do zvoleného pořadí a dá jeBedřichoviBedřich musí určit, jaká je ta pátá odstraněná kartaJaký systém si mají Albert s Bedřichem domluvit?


Recommended