IB111 Úvod do programování skrze Python Úvod kurzu

Podobné dokumenty
Programování a algoritmizace: úvod

Programování a algoritmizace: úvod

IB111 Úvod do programování skrze Python Úvod kurzu

IB111 Úvod do programování Úvod kurzu

IB111 Základy programování Úvod kurzu. Radek Pelánek

Modulární systém dalšího vzdělávání pedagogických pracovníků JmK v přírodních vědách a informatice CZ.1.07/1.3.10/ Brožura dobré praxe

IV122 Matematika a programování Úvod kurzu. Radek Pelánek

IB111 Programování a algoritmizace. Programovací jazyky

IB111 Úvod do programování skrze Python Přednáška 13

Modelování a simulace: o předmětu. Radek Pelánek

Modelování a simulace: o předmětu. Radek Pelánek

Úvod. Programovací paradigmata

Úvod do Informatiky. 0 Organizační pokyny k výuce IB000. Organizátor předmětu: Ondrej Moriš Cvičící (online přes IS MU):

11. Přehled prog. jazyků

Matematika v programovacích

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Úvod do Informatiky 2006

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Jaký programovací jazyk učit jako první a jak ho učit?

Program a životní cyklus programu

C2184 Úvod do programování v Pythonu podzim Mgr. Stanislav Geidl Národní centrum pro výzkum biomolekul Masarykova univerzita.

MATLAB Úvod. Úvod do Matlabu. Miloslav Čapek

Datová věda (Data Science) akademický navazující magisterský program

CODEWEEK 2014 Rozvoj algoritmického myšlení nejen pomocí programu MS Excel. Michaela Ševečková

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

5.1.7 Informatika a výpočetní technika. Časové, obsahové a organizační vymezení. ročník hodinová dotace

PARAMETRY EFEKTIVITY UČENÍ SE ŽÁKA V PROSTŘEDÍ E-LEARNINGU SE ZAMĚŘENÍM NA ADAPTIVNÍ VÝUKOVÉ MATERIÁLY

IB111 Úvod do programování skrze Python

Soulad studijního programu. Aplikovaná informatika

PB029 Elektronická příprava dokumentů

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

Biostatistika a e-learning na Lékařské fakultě UK v Hradci Králové

Programování: základní konstrukce, příklady, aplikace. IB111 Programování a algoritmizace

STRUČNÝ POPIS E LEARNINGOVÝCH KURZŮ

Informatika na Univerzitě Palackého

5.15 INFORMATIKA A VÝPOČETNÍ TECHNIKA

Informační média a služby

Informační a komunikační technologie

Informace pro výběr bakalářského oboru

C2184 Úvod do programování v Pythonu podzim Stanislav Geidl Národní centrum pro výzkum biomolekul Masarykova univerzita. Úvod.

Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

INOVACE PŘEDMĚTŮ ICT. MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika

Management informačních systémů. Název Information systems management Způsob ukončení * přednášek týdně

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Jméno a Příjmení. Třída. Škola

Profilová část maturitní zkoušky 2017/2018

nástroj pro jednoduchou správu a vedení agendy studentských počítačových sítí na kolejích SU OPF Karviná Ing.

Bakalářský studijní obor informatika

1. VYMEZENÍ ODBORNÉ STÁŽE

Informatika pro 2. stupeň

Informatika na gymnáziu Dan Lessner

Ostravská univerzita v Ostravě. Katedra informatiky a počítačů prf.osu.cz/kip

Vrstvy programového vybavení Klasifikace Systémové prostředky, ostatní SW Pořizování Využití

Studijní obor: Aplikovaná informatika Studium: Prezenční Specializace: co Etapa: první Verze: 2019 Kreditní limit: 180 kr.

4IZ440 Propojená data na webu Organizační úvod

Vzdělávací oblast: Informatika a informační a komunikační technologie Vzdělávací obor: Programování. Předmět: Programování

Distanční vzdělávání na VŠFS. nástin koncepce

IB111 Úvod do programování skrze Python Přednáška 13

TÉMATICKÝ OKRUH Softwarové inženýrství

Algoritmizace- úvod. Ing. Tomáš Otáhal

Informatika. tercie. Mgr. Kateřina Macová 1

1. VYMEZENÍ ODBORNÉ STÁŽE

Praktické využití Mathematica CalcCenter. Ing. Petr Kubín, Ph.D. Katedra elektroenergetiky, ČVUT v Praze, FEL

Seminář z Informatiky a výpočetní techniky. Slovanské gymnázium Olomouc 4. září 2014 Tomáš Kühr

1 Základních pojmy z oblasti programování, vyšší programovací jazyky, programovací paradigmata

Results of innovation of the course Application software

Informace k soutěži o prostředky z IP 2015 Pedagogická činnost. Česká zemědělská univerzita v Praze Provozně ekonomická fakulta

Maturitní témata Školní rok: 2015/2016

Studium informatiky: přehled českých vysokých škol

Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace. Maturitní otázky z předmětu INFORMATIKA A VÝPOČETNÍ TECHNIKA

Institucionální akreditace - bakalářské studium informatiky

Reálné gymnázium a základní škola města Prostějova Školní vzdělávací program pro ZV Ruku v ruce

Maturitní témata. IKT, školní rok 2017/18. 1 Struktura osobního počítače. 2 Operační systém. 3 Uživatelský software.

čtyřleté gymnázium a vyšší stupeň osmiletého gymnázia

ANOTACE vytvořených/inovovaných materiálů

ZŠ a MŠ, Brno, Horníkova 1 - Školní vzdělávací program

4IZ440 Propojená data na webu Organizační a kontextový úvod

Programovací jazyky Přehled a vývoj

Karta předmětu prezenční studium

Kombinované studium aplikované informatiky na katedře informatiky

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U

INFORMATIKA. Jindřich Kaluža. Ludmila Kalužová

Počítačová Podpora Studia. Přednáška 5 Úvod do html a některých souvisejících IT. Web jako platforma pro vývoj aplikací.

S ICT ve výuce to umíme_dodávka dodatečného software

ALGORITMIZACE. Výukový materiál pro tercii osmiletého gymnázia

3 Co je algoritmus? Trocha historie Definice algoritmu Vlastnosti algoritmu... 3

VZDĚLÁVACÍ OBLAST INFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE VYUČOVACÍ PŘEDMĚT: INFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE. Charakteristika vyučovacího předmětu:

PHP framework Nette. Kapitola Úvod. 1.2 Architektura Nette

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Úvod do programovacího jazyka Python

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320

IB013 Logické programování I Hana Rudová. jaro 2011

Bakalářský studijní program. a management (STM)

Struktura e-learningových výukových programù a možnosti jejího využití

Masterský studijní obor datové & webové inženýrství

V t í á t V á V s ČVU V T v v P r P a r ze

Profilová část maturitní zkoušky 2013/2014

Transkript:

IB111 Úvod do programování skrze Python Úvod kurzu 2013

Dnešní přednáška o předmětu administrativa základy algoritmus, programování motivace

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

Úvod do programování skrze Python Python je používán pro ilustraci pojmů a příkladů, na cvičeních důraz na obecné koncepty, cílem není detailní zvládnutí Pythonu záměrně neprobíráme některá specifika Pythonu zvládnutí konkrétního jazyka trénink a praxe

Kontext máte (většina z vás) volbu mezi: IB001 Úvod do programování skrze C (4+2 kr.) IB111 Úvod do programování skrze Python (4+2 kr.) ( IB999 Vstupní test z programování (0 kr.) ) výhody a nevýhody Pythonu oproti C: + příjemnější na použití + snadnější začátky + využití v mat. softwaru (Sage) - odlišná syntaxe od ostatních jazyků, které dále potkáte (C++, Java)

Co čekat: příklady výpočty: faktoriál, prvočísla, odmocnina, náhodná čísla obrázky: želví grafika, textová grafika, bitmapy jednoduché hry: hádání čísla, jednorozměrné piškvorky zpracování dat ze souboru, regulární výrazy

Forma předmětu 2h přednáška, nepovinné, ale velmi doporučené Radek Pelánek / Zdeněk Říha slidy nemusí být pochopitelné bez komentáře 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 Python více skupin, cvičících

Hodnocení předmětu závěrečná písemná zkouška: 50 bodů zkouší se principy, algoritmy, pojmy test s výběrem možností, podobné průběžným Odpovědníkům průběžná zkouška u počítače: 20 bodů programování v rámci jednoho cvičení úkoly variace na příklady ze cvičení domácí úkoly: 30 bodů 6 za semestr po 5 bodech výjimečné bonusové body účast na cvičení (max. 2 neomluvené hodiny) minimum pro ukončení: 25 bodů DÚ + průběžná zk, 25 bodů závěrečná zk

Domácí úkoly pracujte samostatně, opisování se trestá zápornými body; neřešíme, kdo opisoval pokud nezvládnete úlohu kompletně, zkuste alespoň něco (za méně bodů) jasně označte: částečné řešení převzít část cizího řešení a doplnit vlastní kus pozměněná (zjednodušená) úloha pokud řešení není úplné, uveďte v komentáři známé nedostatky domácí úkoly (přesné zadání, termín odevzdání) v kompetenci cvičících

Stránka předmětu http://www.fi.muni.cz/~xpelanek/ib111/ harmonogram přednášek, cvičení, úkolů výukové materiály doplňující informace

Studijní materiály v ISu Relevantní agendy z ISu pro tento předmět: Učební materiály slidy z přednášek Organizační pokyny archiv zaslaných mailů Odpovědníky tréninkové testy, dobrovolné, doporučené Odevzdávárny odevzdávání domácích úloh Poznámkové bloky počet bodů z úloh

Doplňkové zdroje knihy Python Programming: An Introduction to Computer Science, 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.

Doplňkové zdroje web Učíme se programovat v jazyce Python, http://howto.py.cz/index.htm http://interactivepython.org interaktivní učebnice dokumentace k Pythonu Khan Academy Computer Science Coursera, Udacity kurzy např. Learn to Program: The Fundamentals, An Introduction to Interactive Programming in Python sdílejte užitečné zdroje v diskuzním fóru předmětu

Předpoklady základní počítačová gramotnost středoškolská matematika (např. faktoriál, prvočíslo, logaritmus) logické spojky (and, or,...)

Osvěžení základů tutor.fi.muni.cz Binární křížovka Robotanik Matematické pexeso

Motivační úloha převozník, loďka uveze jen 1 další kus nákladu náklad: vlk, koza, zelí bez dozoru: vlk žere kozu koza žere zelí jak dostat vše bezpečně na druhou stranu

Motivační úloha převozník, loďka uveze jen 1 další kus nákladu náklad: vlk, koza, zelí bez dozoru: vlk žere kozu koza žere zelí jak dostat vše bezpečně na druhou stranu Jak řešit úlohu algoritmicky? Co to znamená? http://www.fi.muni.cz/~xpelanek/ib111/vkz/

Algoritmus návod/postup, jak mechanicky vyřešit určitý typ úlohy/problému typické příklady: rozklad na součin prvočísel nalezení nejkratší cesty mezi dvěma městy vygenerovat zadání Sudoku

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

Programování za algoritmus můžeme považovat i recept, návod programování zápis algoritmů pro počítače počítače jsou hloupé zápis algoritmu musí být opravdu přesný (srovnej osolíme přiměřeně ) nutnost vyjadřovat se přesně: otrava náročný zápis bonus nutnost myslet přesně

Programování: motivace Proč pořádně zvládnout základy programování: základ pro další studium užitečnost profesní občasná elegance, kreativita, síla

Programování: způsoby využití (příklady, rozhodně ne kompletní klasifikace) rozsáhlé aplikace programování pro web vestavěné systémy vědecké výpočty skriptování každé důraz na něco jiného, sdílí ale základní principy informatického myšlení

Samostatné rozsáhlé aplikace příklady: kancelářský, účetní software editace grafiky, zvuku, videa hry rozsáhlé projekty důraz na interakci s uživatelem využití knihoven, práce s operačním systémem

Programování pro web příklady: informační systémy e-obchody prezentace firmy široká škála: drobné úpravy existují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

Vestavěné systémy příklady: kuchyňské spotřebiče, GPS, mobil, foťák dopravní prostředky nízko-úrovňové programování, ovladače úzké propojení s konkrétním hardwarem bezpečnost, práce s limitovanými zdroji (paměť, energie)

Vědecké výpočty příklady: simulace počasí, klimatu bioinformatika (protein folding, analýza genomu,...) vymýšlení algoritmů (urychlení výpočtu, distribované výpočty) propojení informatiky a matematiky (příp. jiných disciplín) zpracování rozsáhlých dat uživatelské rozhraní a interaktivita jsou jen malá část

Skriptování příklady: převod dat mezi různými formáty rychlá analýza dat prototypy, experimenty drobné úpravy systému (např. správce sítě) malý rozsah, specifický účel často jednorázové aplikace

Programování v malém / ve velkém programování v malém desítky až stovky řádků kódu nezávislé na ostatních tento předmět programování ve velkém tisíce až milióny řádků závislosti, souvislosti, návrh, testování,... další předměty (OOP, softwarové inženýrství,...)

Programování v malém: motivace nutná prerekvizita pro kvalitní programování ve velkém prakticky užitečné, i když nejste programátor na plný úvazek

Praktické programování v malém: příklady tvorba studijního katalogu vytvoření interaktivní webové úlohy pro systém Tutor zpracování botanických dat generování šifer pro Tmou pokud neovládáte X, pak vás často ani nenapadne, že by se vám X mohlo hodit

Nejen užitečnost... programování je zajímavé i samo o sobě elegantní myšlenky radost z objevování, experimentování tvoření, kreativita síla pár stisků klávesnice a vytvoříte něco nového a zajímavého

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

Programovací jazyky kompilovaný program zdrojový kód (program) překladač strojový kód vstupy běžící program výstupy interpretovaný program zdrojový kód (program) interpret výstupy vstupy

Programovací jazyky: klasifikace I nízko-úrovňové vysoko-úrovňové kompilované nutnost řešit specifika konkrétního systému explicitní práce s pamětí náročnější vývoj (nizká efektivita práce) vysoká efektivita programu interpretované nezávislé na konkrétním systému využ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

Programovací jazyky: klasifikace II zjednodušená klasifikace a použití nízko-úrovňové C, FORTRAN,... vědecké výpočty, vestavěné systémy 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

Python vysoko-úrovňový velká míra abstrakce, spustitelný pseudokód interpretovaný pomalejší než kompilovaný, ale větší volnost pedagogický byl tak navržen moderní a široce používaný přibližně 7. nejpoužívanější jazyk volně a snadno dostupný na všech platformách

Programování v tomto kurzu důraz na obecné principy, nikoliv specifika Pythonu většina konceptů snadno a velmi podobně realizovatelná v jiných jazycích používáme Python 2.7

Závěrečný motivační příklad: Vězni a karty Albert dostane 5 karet ze standardního balíčku 52 karet vybere jednu z nich zbylé čtyři poskládá do zvoleného pořadí a dá je Bedřichovi Bedřich musí určit, jaká je ta pátá odstraněná karta Jaký systém si mají Albert s Bedřichem domluvit?