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



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

IB111 Programování a algoritmizace. Programovací jazyky

Programování - úvod. Programování. Proces programování. Vlastnosti dobrého programu: Kapitola seznamuje se základními pojmy programování.

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í

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

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

Úvod do informačních technologií

Netradiční programovací jazyky

Schopnosti překladačů vybraných objektově orientovaných jazyků

Programovací jazyk univerzální notace pro zápis algoritmů, implementována.

Sazba zdrojových kódů (balíček listings)

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

Martin Hejtmánek hejtmmar

PB161 Programování v jazyce C++ Přednáška 7

PB161 Programování v jazyce C++ Přednáška 7

Programovací jazyky. Obsah. Proč používáme programovací jazyky? Programovací jazyk

Programovací jazyky Přehled a vývoj

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

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Teorie a praxe SW inženýrství

Úvod do jazyka C. Proč jazyk C

1. Obecně o programování

Sada 1 - Základy programování

Paradigmata programování 1

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

Program a životní cyklus programu

Základy C++ doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

IB111 Programování a algoritmizace. Objektově orientované programování (OOP)

1. Úvod. Podmínky absolvování

Funkcionální programování

1 Úvod do kompilátorů

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

Základy programování Programovací jazyky. doc. RNDr. Petr Šaloun, Ph.D. VŠB-TUO, FEI (přednáška připravena z podkladů Ing. Michala Radeckého)

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

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

DTP Základy programování Úvod do předmětu

IB015 Neimperativní programování. Organizace a motivace kurzu, programovací jazyk Haskell. Jiří Barnat

Programování a algoritmizace: úvod

Programovací jazyky. Ing. Marek Běhálek Katedra informatiky FEI VŠB-TUO A-1018 /

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

Programování v C++ Úplnej úvod. Peta (maj@arcig.cz, SPR AG )

Sémantika Tabulka symbolů Intermediální kód Typová kontrola, přetypování Statická a dynamická sémantika. Sémantická analýza.

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

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ , 5.1 a 5.2 8/14

Functional and Logic Programming Functional languages

HISTORIE VÝPOČETNÍ TECHNIKY. Od abakusu k PC

Funkcionální programování. Kristýna Kaslová

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

Matematika v programovacích

Praktické tipy, programovací jazyky. IB111 Základy programování Radek Pelánek

Úvod. Co je to programovací jazyk? Proč studovat programovací jazyky? Klasifikace jazyků

Úvod. doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 /

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

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

Software je ve světě IT vše, co není Hardware. Do softwaru patří aplikace, program, proces, algoritmus, ale i data (text, obrázky), operační systém

Vizuální programovací jazyk

Free & Open Source software. Liberix. prezentací. Open Source. software. Free Software. projektů pro studenty. Rekapitulace. Liberix o.p.s.

Algoritmy a jejich znázorňování.

Programování a algoritmizace: úvod

Objektově orientovaný přístup

IB111 Úvod do programování Úvod kurzu

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

11. Přehled prog. jazyků

Úvod. Proč studovat programovací jazyky? Klasifikace jazyků. Co je to programovací jazyk?

doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 /

Úvod do informačních technologií

Příprava prezentace počítačové fyziky

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

Pokročilé programování v jazyce C pro chemiky (C3220) Úvod do jazyka C++

Úvod do programování (ALG ) F F U K. Jonathan L. Verner. Department of Logic

Software, licence, programování

Další aspekty architektur CISC a RISC Aktuálnost obsahu registru

Programovací jazyky. Ing. Marek Běhálek Katedra informatiky FEI VŠB-TUO A-1018 /

Programování. Debugging a testování. Martin Urza

Schopnosti překladačů vybraných strukturovaných jazyků

8) Jaké jsou důvody pro použití víceprůchodového překladače Dříve hlavně kvůli úspoře paměti, dnes spíše z důvodu optimalizace

Úvod SISD. Sekvenční výpočty SIMD MIMD

Zřízení studijního oboru HPC (High performance computing)

Úvod z historie. Kompilátory. Kompilace / Kompilátor Compile / Compiler. Pojem kompilátoru. Úvod z historie

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

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

IB109 Návrh a implementace paralelních systémů. Organizace kurzu a úvod. RNDr. Jiří Barnat, Ph.D.

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE FORMALISMY PRO SYNTAXÍ ŘÍZENÝ PŘEKLAD: PŘEKLADOVÉ A ATRIBUTOVÉ GRAMATIKY.

Pojem algoritmus a jeho základní vlastnosti

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

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

Nástroje a frameworky pro automatizovaný vývoj. Jaroslav Žáček jaroslav.zacek@osu.cz

Klasické metodiky softwarového inženýrství I N G M A R T I N M O L H A N E C, C S C. Y 1 3 A N W

Algoritmus. Cílem kapitoly je seznámit žáky se základy algoritmu, s jeho tvorbou a způsoby zápisu.

Algoritmy. BI-PA1 Programování a Algoritmizace I. Ladislav Vagner

Osnova. GIOP a IIOP IDL IOR POA. IDL Klient Server. 2 Historie. 3 Princip a základní pojmy. 4 Implementace. 5 Aplikace CORBA

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

Základní datové typy, proměnné - deklarujeme předem - C je case sensitive rozlišuje malá a velká písmena v názvech proměnných a funkcí

1. Úvod. Obsah předmětu =komparativní studie programovacích jazyků

Programové prostředky IS/IT

Principy operačních systémů. Lekce 3: Virtualizace paměti

Programovací jazyky a jejich využití

C2115 Praktický úvod do superpočítání

Transkript:

IB111 Úvod do programování skrze Python Přednáška 13 Programovací jazyky Nikola Beneš 18 prosinec 2015 IB111 přednáška 13: programovací jazyky 18 prosinec 2015 1 / 21

Osnova dnešní přednášky Programovací jazyky historie a vývoj přehled a použití Shrnutí předmětu Co dál? co jsme se naučili? programovací a algoritmické předměty na FI IB111 přednáška 13: programovací jazyky 18 prosinec 2015 2 / 21

Programovací jazyky IB111 přednáška 13: programovací jazyky 18 prosinec 2015 3 / 21

Kvízová otázka Kdo byl první programátor? Ada, hraběnka z Lovelace Minulý týden uplynulo 200 let od jejího narození (Ada Lovelace Day 10 prosince) IB111 přednáška 13: programovací jazyky 18 prosinec 2015 4 / 21

Historie programovacích jazyků Počátky první počítač (nikdy nesestrojen): 1837 Charles Babbage první programátorka: Ada, hraběnka z Lovelace děrné štítky automatický tkalcovský stav (1801, Joseph-Marie Jaquard) zpracování sčítání lidu (1890, Hermann Hollerith) IB111 přednáška 13: programovací jazyky 18 prosinec 2015 5 / 21

Historie programovacích jazyků Teoretické základy programování lambda kalkul Alonzo Church Turingův stroj Alan Turing a další První počítače (40 léta) strojový kód první programovací jazyky IB111 přednáška 13: programovací jazyky 18 prosinec 2015 6 / 21

Historie programovacích jazyků Počátky vývoje programovacích jazyků (50-60 léta) FORTRAN používaný dodnes pro vědeckotechnické výpočty LISP některé dialekty používány dodnes, významný vliv na rozvoj funkcionálních jazyků ALGOL významný vliv na vývoj programovacích jazyků a jiné (COBOL, CPL, ) IB111 přednáška 13: programovací jazyky 18 prosinec 2015 7 / 21

Historie programovacích jazyků Další vývoj (70-80 léta) strukturované programování jazyk C, Ada, objektově-orientované programování Simula, Smalltalk, jazyk C++ logické a funkcionální programování Prolog, ML, Scheme, Moderní programovací jazyky (90 léta a dál) Haskell, Python, Ruby, Java, JavaScript, C#, vývoj stále pokračuje vznikají nové jazyky staré jazyky se vyvíjejí a mění IB111 přednáška 13: programovací jazyky 18 prosinec 2015 8 / 21

Dělení programovacích jazyků Podle míry abstrakce jazyky vyšší/nižší úrovně Podle způsobu překladu a spuštění kompilované/interpretované Podle paradigmatu imperativní/deklarativní Další druhy skriptovací objektově-orientované paralelní Většina jazyků kombinuje více přístupů IB111 přednáška 13: programovací jazyky 18 prosinec 2015 9 / 21

Dělení programovacích jazyků Podle míry abstrakce (spíše spojitý přechod) Vývoj nejnižší programovací jazyky strojový kód assembler (jazyk symbolických adres) o něco vyšší programovací jazyky (manuální správa paměti) Pascal, C, Ada, C++ ještě vyšší programovací jazyky (automatická správa paměti) Java, Python, moderní C++ směrem k vyšším jazykům je vhodné pamatovat i na nižší úrovně abstrakce často usnadňuje pochopení vyšších úrovní abstrakce nebývají vždy dokonalé IB111 přednáška 13: programovací jazyky 18 prosinec 2015 10 / 21

Dělení programovacích jazyků Podle způsobu překladu a spuštění kompilované jazyky (C, C++, Pascal, ) překladač (kompilátor) překlad do strojového kódu výhoda: rychlost za běhu interpretované jazyky (JavaScript, Perl, PHP, ) interpret postupně čte program a vykonává příkazy pomalejší, ale odpadá fáze překladu Různé kombinace (kompromisy) jazyky, které mohou být překládány i interpretovány kompilace do mezikódu (Python, Java, ) interpretuje se mezikód kompilace za běhu (JIT, Just-In-Time kompilace v Javě) IB111 přednáška 13: programovací jazyky 18 prosinec 2015 11 / 21

Paradigmata programovacích jazyků Imperativní jazyky program je posloupnost instrukcí instrukce jsou rozkazy, které určují, co má počítač dělat Deklarativní jazyky program je popis toho, co se má udělat logické programování (Prolog) program je popsán pomocí logických formulí funkcionální programování (Haskell) program je popsán pomocí funkcí funkce nemají vedlejší efekty rekurse Moderní jazyky kombinují více přístupů: funkcionální prvky v C++, Javě, Pythonu, IB111 přednáška 13: programovací jazyky 18 prosinec 2015 12 / 21

Další druhy programovacích jazyků Skriptovací jazyky užitečné pro jednoduché programy, tzv skripty usnadnění zdlouhavé manuální činnosti Bash, Perl, Python, Objektově-orientované jazyky využívají objektového návrhu programu většina moderních jazyků obsahuje nějaké prvky OOP C++, Java, Python, Objective C, C#, Paralelní výpočty počítání na více procesorech / více počítačích zároveň získává na popularitě podpora v moderních jazycích (např C++11) proč? procesory už moc rychlejší nebudou IB111 přednáška 13: programovací jazyky 18 prosinec 2015 13 / 21

Jaký jazyk používat? Programovacích jazyků je mnoho Který si mám vybrat? špatně položená otázka není žádný jeden ideální jazyk použitelný pro všechny druhy úkolů záleží na tom, co řešíme může být výhodné kombinovat více jazyků/přístupů Doporučení nefixujte se na jeden jazyk učte se různé jazyky různé jazyky s sebou nesou i různé způsoby přemýšlení Kolik programovacích jazyků umíš, tolikrát jsi programátorem IB111 přednáška 13: programovací jazyky 18 prosinec 2015 14 / 21

Shrnutí předmětu IB111 přednáška 13: programovací jazyky 18 prosinec 2015 15 / 21

Shrnutí předmětu Co jsme se naučili? základy programování můžeme donutit počítač, aby dělal to, co chceme programování nám může usnadnit práci programování nám umožňuje dělat zajímavé a zábavné věci IB111 přednáška 13: programovací jazyky 18 prosinec 2015 16 / 21

Co dál? IB111 přednáška 13: programovací jazyky 18 prosinec 2015 17 / 21

Výhled do budoucnosti Co dál? kde se dozvím víc o programování? jaké programovací/algoritmické předměty fakulta nabízí? kdo ze mě udělá lepšího programátora? IB111 přednáška 13: programovací jazyky 18 prosinec 2015 18 / 21

Výuka programování / algoritmizace na FI Algoritmy (směr k větší abstrakci) IB002 Algoritmy a datové struktury I programátorské úlohy v Pythonu (a C) navazující IV003 Algoritmy a datové struktury II Programování podrobněji (směr k nižší abstrakci, jak funguje počítač) PB071 Úvod do jazyka C správa paměti, práce s řetězci, Objektově-orientované programování PB161 Programování v jazyce C++ PB162 Programování v jazyce Java (a navazující předměty) Jiná paradigmata IB015 Neimperativní programování Haskell, Prolog IB111 přednáška 13: programovací jazyky 18 prosinec 2015 19 / 21

Výuka programování / algoritmizace na FI Paralelní programování IB109 Návrh a implementace paralelních systémů navazující PV197 GPU Programming používání grafických karet pro masivně paralelní výpočty Více o jazyce Python a jiných jazycích PV248 Kurz jazyka Python velmi omezená kapacita PV249 Vývoj v jazyce Ruby PV178 Úvod do vývoje v C#/NET (a navazující předměty) Teorie programování co je možné pomocí počítače řešit? jak rychle je to možné řešit? vyčíslitelnost a složitost učí se v rámci různých předmětů (IB102, IB107) IB111 přednáška 13: programovací jazyky 18 prosinec 2015 20 / 21

A to je vše Pěkné svátky, úspěšné zkouškové, a nezapomeňte programovat IB111 přednáška 13: programovací jazyky 18 prosinec 2015 21 / 21