Programování a algoritmizace: úvod

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

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

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

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

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

IB111 Programování a algoritmizace. Programovací jazyky

11. Přehled prog. jazyků

Úvod. Programovací paradigmata

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

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

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

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

Matematika v programovacích

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

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

Ú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):

Podmínky pro hodnocení žáků v předmětu informatika

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

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

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

Podmínky pro hodnocení žáků v předmětu informatika

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

Soulad studijního programu. Aplikovaná informatika

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

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

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í.

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

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

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

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

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

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

Program a životní cyklus programu

PHP framework Nette. Kapitola Úvod. 1.2 Architektura Nette

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

Informatika na Univerzitě Palackého

Informační a komunikační technologie

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

MBI - technologická realizace modelu

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

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

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

Úvod do Informatiky 2006

1. VYMEZENÍ ODBORNÉ STÁŽE

Zadání maturitní práce ve školním roce 2016/2017

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

Architektura počítačů Agenda

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

Programování. Úvod a základní principy. Martin Urza

Přínos k rozvoji klíčových kompetencí:

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

IB111 Úvod do programování skrze Python

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

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

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

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

Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části:

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

Hodnoticí standard. Programátor (kód: M) Odborná způsobilost. Platnost standardu. Skupina oborů: Informatické obory (kód: 18)

Informatika na gymnáziu Dan Lessner

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

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

Programovací jazyky Přehled a vývoj

5.15 INFORMATIKA A VÝPOČETNÍ TECHNIKA

DELTA - STŘEDNÍ ŠKOLA INFORMATIKY A EKONOMIE, s.r.o. Obor informační technologie AJAX ESHOP. Maturitní projekt. Třída:

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

Hospodářská informatika

Bakalářský studijní obor informatika

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

Navazující magisterské studium na FI MU. #fimuni

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

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

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

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

1. VYMEZENÍ ODBORNÉ STÁŽE

Formy komunikace s knihovnami

HIT jednotný koncept výuky NC programování

Teorie a praxe SW inženýrství

Zoltán Szabó, Jan Münz

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

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

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

InformatikaaVT(1) Cílem předmětu je: Žáci:

CASE. Jaroslav Žáček

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

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

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

Results of innovation of the course Application software

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

Rozklad na prvočinitele. 3. prosince 2010

Možnosti integrace uměleckých postupů do vzdělávání na technicky zaměřených vysokých školách. Mgr. et MgA. Anna Ronovská

Analýza a Návrh. Analýza

Informatika pro 2. stupeň

Energetický ústav Odbor termomechaniky a techniky prostředí. Možnosti implementace vlastního kódu pro použití v simulačním software TRNSYS

MATURITNÍ ZKOUŠKY Obor: OBCHODNÍ AKADEMIE

Vývoj informačních systémů. Přehled témat a úkolů

1 Úvod 1.1 Vlastnosti programového vybavení (SW)

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

Transkript:

Programování a algoritmizace: úvod 2011

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

Cíle předmětu Úvod do programátorského a algoritmického stylu myšlení Obecné principy použitelné v řadě programovacích jazyků Základní algoritmy a datové struktury Přehled programovacích jazyků a jejich výhod/nevýhod

Forma předmětu 2h přednáška, nepovinné, ale velmi doporučené slidy nemusí být pochopitelné bez komentáře na cvičení často algoritmy z přednášky Radek Pelánek / Zdeněk Říha 2h cvičení, povinné programování v jazyce Python důraz na algoritmy, nikoliv na prog. jazyk Radek Pelánek / Zdeněk Říha; Jan Rygl domácí úlohy náročnost závisí na předchozích zkušenostech

Ukončení předmětu zkouška písemná, zkouší se principy, algoritmy, pojmy nikoliv programování na počítači alespoň 50 % bodů bodované úkoly ze cvičení alespoň 75 % bodů účast na cvičení (max. 2 neomluvené hodiny) známka podle součtu bodů ze zkoušky a úkolů ze cvičení

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

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ů (zadání domácích úloh) Odevzdávárny odevzdávání domácích úloh Poznámkové bloky počet bodů z úloh

Další zdroje pro studium knihy, např.: Introduction to the design and analysis of algorithms, A. Levitin. Algoritmy (Datové struktury a programovací techniky), P. Wróblewski. Python Programming: An Introduction to Computer Science, J. M. Zelle. Jak to vyřešit, R. Pelánek. internetové zdroje, např.: Učíme se programovat v jazyce Python, http://howto.py.cz Wikipedia články k probíraným tématům dokumentace k Pythonu MIT Open Courseware: Introduction to Computer Science and Programming (videa z přednášek)

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á?

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í: způsoby využití Zkuste vymyslet (vzpomenout si) na co nejrozmanitější způsoby využití programování.

Programování: způsoby využití (příklady, rozhodně ne kompletní klasifikace) klasické 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í

Klasické 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 prosředků (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

Ilustrační příklad: Tmou Ukázka z praxe : Tmou: kde všude se může hodit programování (a informatické myšlení) programování se hodí, i když nejste programátor na plný úvazek šifrovací hra pro dospělé šifry často sofistikované konstrukce šifer občas náročná využití programování

Rotující gravitační bludiště

Šifrovací mřížka

Vývojová stádia šifrovací mřížky

Permutace tvarů

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: 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 (nízká 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, Perl, PHP, Javascript,... programování pro web, skriptování, prototypy deklarativní Prolog, LISP, Haskell,... umělá inteligence

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ý cca 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

Motivační příklady na algoritmizaci jednorozměrné piškvorky Hanojské věže Sudoku vězni a karty

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?