Úvod do programování aneb Do nitra stroje



Podobné dokumenty
Do nitra stroje s programovacím jazykem Ruby. Karel Minařík

Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost

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

Algoritmizace a programování. Ak. rok 2012/2013 vbp 1. ze 44

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


2. lekce Algoritmus, cyklus Miroslav Jílek

Operátory pro maticové operace (operace s celými maticemi) * násobení maticové Pro čísla platí: 2*2

Programování II. Modularita 2017/18

Program a životní cyklus programu

Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program

Základy algoritmizace

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.

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

Algoritmy a algoritmizace

Základy programování Zdrojový kód, dokumentace, týmová práce

Algoritmizace, základy programování, VY_32_INOVACE_PRG_ALGO_01

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

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

VISUAL BASIC. Přehled témat

Základy analýzy. autor. Jan Novotný února 2007

Úvod do programování

11. Přehled prog. jazyků

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

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

Komprimace/Dekomprimace

Obsah. 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody

Lekce 01 Úvod do algoritmizace

Algoritmizace prostorových úloh

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

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

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

Softwarové komponenty a Internet

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

Vývoj Internetových Aplikací

2. Modelovací jazyk UML 2.1 Struktura UML Diagram tříd Asociace OCL. 3. Smalltalk 3.1 Jazyk Pojmenování

Tvorba software a algoritmizace

Virtuální ověřování výroby Robotika Process Simulate Virtual Commissioning Virtuelle Inbetriebnahme

Úvod. Programovací paradigmata

1 Strukturované programování

Analýza a Návrh. Analýza

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

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

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

Ukázka knihy z internetového knihkupectví

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

Martin Hejtmánek hejtmmar

Úvod Game designer Struktura hry Formální a dramatické elementy Dynamika her Konec. Úvod do game designu 1 / 37

Vzdělávací obsah vyučovacího předmětu

Hranová konzistence. Arc consistency AC. Nejprve se zabýváme binárními CSP. podmínka odpovídá hraně v grafu podmínek

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

Inženýr IT a řídících systémů

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

Algoritmizace prostorových úloh

Ruby on Rails. Bc. Tomáš Juřík Bc. Bára Huňková

Paralelní programování

8 Třídy, objekty, metody, předávání argumentů metod

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

Code Contracts. Robert Haken [MVP ASP.NET, MCT] Software architect, Owner at HAVIT, s.r.o. knowledge-base.havit.cz

Algoritmizace. 1. Úvod. Algoritmus

Architektura softwarových systémů

Úvod do Groovy pro Java experty

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE STRUKTURA PŘEKLADAČE

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

Natural Language Toolkit

Funkce, podmíněný příkaz if-else, příkaz cyklu for

Seminář z IVT Algoritmizace. Slovanské gymnázium Olomouc Tomáš Kühr

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

Co je to matematika?

Vývojové prostředí,průvodce novou aplikací

Stručný obsah. Část I. Část II. Část III. Úvod do vývoje v prostředí Visual Studio 25. Návrh uživatelského rozhraní 127

Analýza a design na reálném projektu. Richard Michalský

Funkce - opakování. Funkce může přijímat parametry na vstupu a může vracet parametry na výstupu.

Java/QE Akademie - Osnova

Nástroje na vývoj aplikací pro ios Trocha motivace na úvod Co budete potřebovat Co když nemáte k dispozici počítač s macos? Vývojové prostředí Xcode

Joelův test. 12 kroků k lepšímu programování. Jaroslav Šnajdr

Návrh uživatelského rozhraní

VYHLEDÁVÁNÍ NA INTERNETU. Přednášející: Ondřej Douša

Kombinované studium aplikované informatiky na katedře informatiky

ARIS Platform softwarová podpora řízení procesů Procesní ARIS laboratoř základ moderní výuky.

TECHNICKÁ UNIVERZITA V LIBERCI Fakulta mechatroniky, informatiky a mezioborových studií

Informatika na Univerzitě Palackého

Řídicí struktury. alg3 1

Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

Hodnoticí standard. Návrhář software (kód: N) Odborná způsobilost. Platnost standardu. Skupina oborů: Informatické obory (kód: 18)

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

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

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Podmíněný příkaz

Algoritmus. Algoritmus je posloupnost kroků, které jsou potřeba k vyřešení problému.

Software602 Form Designer

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

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

Plánovací diář a Google Calendar

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

Hotelová škola, Obchodní akademie a Střední průmyslová škola Teplice, Benešovo náměstí 1, p.o. III/2 - Inovace a zkvalitnění výuky prostřednictvím ICT

Algoritmizace. Cíle předmětu

Počítačová simulace logistických procesů I. 11. přednáška Programování v SimTalk. ŠAVŠ, Fábry

2. Začlenění HCI do životního cyklu software

Transkript:

Úvod do programování aneb Do nitra stroje PŘEDNÁŠKA 1 Karel Minařík

1 www.google.com/search?q=karel+minařík Úvod do programování

Karel Minařík Absolvent FFUK, obor filosofie DIPLOMOVÁ PRÁCE: Exaktní fantazie. Umění jako kritika a záchrana skutečnosti v Adornově Estetické teorii Web designer a vývojář na volné noze od roku 2000 Art Director / Informační architekt ve společnosti ILIKETHIS! Výuka web designu na Institutu Digitálních Médií Blog o Ruby on Rails na http://blog.karmi.cz KONZULTAČNÍ HODINY: středa 12.00 13.30 KONTAKT: karmi@karmi.cz

2 A vy? Úvod do programování

Co jste studovali v bakalářském studiu? Proč studujete/zajímáte se o Studia nových médií? Jaké máte zkušenosti s programováním?

3 Proč se na Studiích nových médií zabývat programováním? Úvod do programování

Používat nějaký nástroj na počítači vyžaduje zřídkakdy více než umět klikat myší; vytvořit takový nástroj vyžaduje rozumět tajemnému umění programovat počítač John Maeda, Creative Code

Jared Tarbell: Substrate (www.complexification.net)

Orientace na rozumění člověku a společnosti SPOLEČENSKÉ VĚDY PŘÍRODNÍ VĚDY Orientace na rozumění přírodě a postižení zákonitostí

Demytologizace světa

Rozumět

Frustrace

Vztah ke stroji

Co je praktickým cílem našeho kursu?

Zabýváme se počítači Jak počítače ovlivnují ˇ svět? Nová média Co se děje v nitru stroje? Jak se mu udílí příkazy? Kdo mu je udílí?

4 Kontext vs. konzistence aneb Jak uvažuje programátor? Úvod do programování

Ada Lovelace (1815 1852)

the Engine might compose elaborate and scientific pieces of music of any degree of complexity or extent. Ada Lovelace

Příslib techniky

Programátoři počítačů píšou, testují a udržují v chodu detailní instrukce, nazývané počítačové programy, které počítače dodržují, aby vykonávaly své funkce. Programátoři také vymýšlejí, navrhují a testují logické struktury pro řešení problémů za pomoci počítače. Wikipedia.org

Použitelnost ergonomie ovládání Usability

Ovládací prvky elektrického vařiče Která plotýnka se ovládá kterým knoflíkem? Donald A. Norman, The Design of Everyday Things (1988)

HLEDISKO UŽIVATELE Kontext Konzistence HLEDISKO PROGRAMÁTORA

PŘÍKLAD Storno objednávek v aplikaci

Programátoři obtížně řeší kontextově závislé úlohy. Na rozdíl od počítačů.

5 Algoritmus Úvod do programování

Algoritmus je základem každého programu Algoritmus je sekvence příkazů

Algoritmus je konečný seznam uspokojivě definovaných instrukcí pro splnění určitého úkolu. Z počátečního stavu algoritmus skončí v definovaném konečném stavu. Wikipedia

1. Nalít olej do pánve 2. Zapálit plyn 3. Vzít vejce 4. Rozklepnout vejce o okraj pánve

? Vzít pánev 1. Nalít olej do pánve 2. Zapálit plyn 3. Vzít vejce 4. Rozklepnout vejce o okraj pánve

? Najít pánev? Najít olej 1. Nalít olej do pánve 2. Zapálit plyn 3. Vzít vejce 4. Rozklepnout vejce o okraj pánve

? Najít pánev? Najít olej 1. Nalít olej do pánve 2. Zapálit plyn? Čím zapálit plyn 3. Vzít vejce 4. Rozklepnout vejce o okraj pánve

? Najít pánev? Najít olej 1. Nalít olej do pánve 2. Zapálit plyn? Čím zapálit plyn 3. Vzít vejce 4. Rozklepnout vejce o okraj pánve

? Najít pánev Fatal Error? Najít olej Do!ly 1. Nalít vejce olej do pánve 2. Zapálit plyn? Čím zapálit Cancel plynok 3. Vzít vejce 4. Rozklepnout vejce o okraj pánve

VLASTNOSTI ALGORITMU 1. Konečnost 2. Determinovanost 3. Vstup 4. Výstup 5. Efektivita 6. Obecnost http://cs.wikipedia.org/wiki/algoritmus

JEDNODUCHÝ ALGORITMUS Nalezení největšího čísla z neuspořádaného seznamu čísel http://en.wikipedia.org/wiki/algorithm#example

POPIS 1. Předpokládejme, že první číslo v seznamu je největší. 2. Podívejme se na postupně na každé zbývající číslo v seznamu. Pokud je větší než dosud největší číslo, zapišme si je. 3. Jakmile jsme prošli všechna čísla, je poslední zapsané číslo největším číslem v seznamu.

FORMÁLNÍ ZÁPIS V ANGLIČTINĚ Algorithm LargestNumber Input: A non-empty list of numbers L Output: The largest number in the list L largest L0 for each item in the list L 1, do if the item > largest, then largest the item return largest

ZÁPIS V PROGRAMOVACÍM JAZYCE 1 input = [1, 5, 3, 95, 43, 56, 32, 90, 2, 4, 19] 2 largest = input.first 3 input.each do i 4 largest = i if i > largest 5 end 6 print "Nejvyšší číslo je: #{largest}"

ZÁPIS V PROGRAMOVACÍM JAZYCE 1 input = [1, 5, 3, 95, 43, 56, 32, 90, 2, 4, 19] 2 largest = input.first 3 input.each do i 4 largest = i if i > largest 5 end 6 print "Nejvyšší číslo je: #{largest}" tajemné umění programovat počítač

ZÁPIS V PROGRAMOVACÍM JAZYCE 1 input = [1, 5, 3, 95, 43, 56, 32, 90, 2, 4, 19] 2 largest = input.first 3 input.each do i 4 largest = i if i > largest 5 end 6 print "Nejvyšší číslo je: #{largest}" tajemné umění programovat počítač Syntax

6 Programovací jazyk Ruby Úvod do programování

Syntax 5.times { print "Hurá!" } print ["banán", "citron", "ananas"].sort.last.capitalize

Objektově orientovaný jazyk OBJEKT Pes věc/podstatné jméno VLASTNOST malý vlastnost/přídavné jméno METODA stekej činnost/sloveso class Pes def velikost return @velikost end def stekej print Haf! end end

Knihovny google-geo (2.0, 1.0) A simple, elegant library for getting geocoding information from Google Maps. googlecalendar (0.0.5, 0.0.4, 0.0.3, 0.0.2) Google Calendar api for Ruby iphoto2 (1.0.1, 1.0.0) iphoto contains methods to parse and access the contents of the iphoto pictures. net-sftp (1.1.0, 1.0.1, 1.0.0, 0.9.0, 0.5.0) Net::SFTP is a pure-ruby implementation of the SFTP client protocol. pdf-writer (1.1.3, 1.1.2, 1.1.1, 1.1.0, 1.0.1, 1.0.0) A pure Ruby PDF document creation library. yahoo-weather (1.0.0) A Ruby object-oriented interface to the Yahoo! Weather service. youtube (0.8.6, 0.8.5, 0.8.0, 0.1.1, 0.1.0, 0.0.1) A Ruby object-oriented interface to the YouTube REST API.

Zdroje (viz www.ruby-lang.org/en/documentation) www.pine.fm/learntoprogram (původní verze)

www.poignantguide.net/ruby NEJBLÁZNIVĚJŠÍ UČEBNICE PROGRAMOVÁNÍ NA SVĚTĚ

Ruby on Rails!

Ruby on Rails

Vyzkoušejte na http://tryruby.hobix.com

7 Plán kursu Úvod do programování

PLÁN KURSU Historie programovacích jazyků Rozdělení programovacích jazyků Základní elementy programovacího jazyka: řetězce (texty), čísla, pole, kolekce, podmínky, smyčky, proměnné, Objekty a objektově orientované programování (versus ostatní typy) Grafické rozhraní (GUI). Web jako grafické rozhraní aplikací Diagramy, wireframes, skici, pomůcky, nástroje Testování software Vedení softwarového projektu ÚKOLY Práce s čísly a textem LITERATURA Chris Pine, Learn to Program (Amazon.com za $13.57 nebo www.pine.fm/learntoprogram) Možné pokračování v dalším semestru: Architektura webových aplikací a Ruby on Rails

Děkuji!