Úvod do programování aneb Do nitra stroje
PŘEDNÁŠKA                       Karel Minařík
            1
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čno...
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...
Proč se na Studiích nových médií
3   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...
Úvod do programování Přednáška 1
Úvod do programování Přednáška 1
Jared Tarbell: Substrate (www.complexification.net)




                                                      Úvod do prog...
Orientace na rozumění člověku a společnosti
                    SPOLEČENSKÉ VĚDY
                           ×

           ...
Demytologizace světa




                Úvod do programování Přednáška 1
Úvod do programování Přednáška 1
Rozumět




          Úvod do programování Přednáška 1
Úvod do programování Přednáška 1
Frustrace




            Úvod do programování Přednáška 1
Vztah ke stroji




                  Úvod do programování Přednáška 1
Úvod do programování Přednáška 1
Úvod do programování Přednáška 1
Co je praktickým cílem
    našeho kursu?




                    Úvod do programování Přednáška 1
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 s...
Úvod do programování Přednáška 1
Kontext vs. konzistence
4   aneb „Jak uvažuje programátor?”




                                      Úvod do programování
Ada Lovelace programování Přednáška 1
        Úvod do (1815—1852)
…the Engine might compose elaborate and scientific
pieces of music of any degree of complexity or extent.
— Ada Lovelace

...
Příslib techniky




                   Úvod do programování Přednáška 1
„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 d...
Úvod do programování Přednáška 1
Použitelnost — ergonomie ovládání
Usability




                          Úvod do programování Přednáška 1
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...
Úvod do programování Přednáška 1
HLEDISKO UŽIVATELE


  Kontext
          ×
Konzistence
 HLEDISKO PROGRAMÁTORA




                         Úvod do program...
PŘÍKLAD




Storno objednávek v aplikaci

                         Úvod do programování Přednáška 1
Programátoři obtížně řeší
kontextově závislé úlohy.
  Na rozdíl od počítačů.




                            Úvod do progr...
5   Algoritmus




                 Úvod do programování
Algoritmus je základem každého programu
Algoritmus je sekvence příkazů




                                  Úvod do progr...
Algoritmus je konečný seznam uspokojivě
definovaných instrukcí pro splnění určitého
úkolu. Z počátečního stavu algoritmus ...
1. Nalít olej do pánve
2. Zapálit plyn
3. Vzít vejce
4. Rozklepnout vejce o okraj pánve




                       Úvod do...
? 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 ...
? 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 ...
? Najít pánev
      Fatal Error

   ? Najít olej
Do!lyNalít olej do pánve
   1. vejce
   2. Zapálit plyn
   ? Čím zapálit ...
˚
VLASTNOSTI ALGORITMU

1. Konečnost

2. Determinovanost

3. Vstup

4. Výstup
5. Efektivita

6. Obecnost
http://cs.wikiped...
JEDNODUCHÝ ALGORITMUS




Nalezení největšího čísla
z neuspořádaného seznamu čísel
http://en.wikipedia.org/wiki/Algorithm#...
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 se...
FORMÁLNÍ ZÁPIS V ANGLIČTINĚ
Algorithm LargestNumber
Input: A non-empty list of numbers L
Output: The largest number in the...
ZÁPIS V PROGRAMOVACÍM JAZYCE



    input = [1, 5, 3, 95, 43, 56, 32, 90, 2, 4, 19]
1

    largest = input.first
2

    in...
ZÁPIS V PROGRAMOVACÍM JAZYCE



    input = [1, 5, 3, 95, 43, 56, 32, 90, 2, 4, 19]
1

    largest = input.first
2

    in...
ZÁPIS V PROGRAMOVACÍM JAZYCE



    input = [1, 5, 3, 95, 43, 56, 32, 90, 2, 4, 19]
1

    largest = input.first
2

    in...
6   Programovací jazyk Ruby




                              Úvod do programování
Syntax

5.times { print quot;Hurá!quot; }

print [quot;banánquot;, quot;citronquot;, quot;ananasquot;].sort.last.capitaliz...
Objektově orientovaný jazyk


            Pes    věc/podstatné jméno
   OBJEKT
            malý vlastnost/přídavné jméno
V...
Knihovny

…
google-geo (2.0, 1.0)
  A simple, elegant library for getting geocoding information from Google Maps.
…
google...
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!




                 Úvod do programování Přednáška 1
Ruby on Rails




                Úvod do programování Přednáška 1
Vyzkoušejte na http://tryruby.hobix.com




                              Úvod do programování Přednáška 1
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: ř...
Děkuji!
 
Upcoming SlideShare
Loading in...5
×

Úvod do programování aneb Do nitra stroje

2,175

Published on

Přednášky na oboru "Studium nových médií" na katedře Informační vědy FFUK

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,175
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
21
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Úvod do programování aneb Do nitra stroje

  1. 1. Úvod do programování aneb Do nitra stroje PŘEDNÁŠKA Karel Minařík 1
  2. 2. 1 www.google.com/search?q=karel+minařík Úvod do programování
  3. 3. 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 Úvod do programování Přednáška 1
  4. 4. 2 A vy? Úvod do programování
  5. 5. → 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? Úvod do programování Přednáška 1
  6. 6. Proč se na Studiích nových médií 3 zabývat programováním? Úvod do programování
  7. 7. „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 Úvod do programování Přednáška 1
  8. 8. Úvod do programování Přednáška 1
  9. 9. Úvod do programování Přednáška 1
  10. 10. Jared Tarbell: Substrate (www.complexification.net) Úvod do programování Přednáška 1
  11. 11. 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í Úvod do programování Přednáška 1
  12. 12. Demytologizace světa Úvod do programování Přednáška 1
  13. 13. Úvod do programování Přednáška 1
  14. 14. Rozumět Úvod do programování Přednáška 1
  15. 15. Úvod do programování Přednáška 1
  16. 16. Frustrace Úvod do programování Přednáška 1
  17. 17. Vztah ke stroji Úvod do programování Přednáška 1
  18. 18. Úvod do programování Přednáška 1
  19. 19. Úvod do programování Přednáška 1
  20. 20. Co je praktickým cílem našeho kursu? Úvod do programování Přednáška 1
  21. 21. 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í? Úvod do programování Přednáška 1
  22. 22. Úvod do programování Přednáška 1
  23. 23. Kontext vs. konzistence 4 aneb „Jak uvažuje programátor?” Úvod do programování
  24. 24. Ada Lovelace programování Přednáška 1 Úvod do (1815—1852)
  25. 25. …the Engine might compose elaborate and scientific pieces of music of any degree of complexity or extent. — Ada Lovelace Úvod do programování Přednáška 1
  26. 26. Příslib techniky Úvod do programování Přednáška 1
  27. 27. „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 Úvod do programování Přednáška 1
  28. 28. Úvod do programování Přednáška 1
  29. 29. Použitelnost — ergonomie ovládání Usability Úvod do programování Přednáška 1
  30. 30. 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) Úvod do programování Přednáška 1
  31. 31. Úvod do programování Přednáška 1
  32. 32. HLEDISKO UŽIVATELE Kontext × Konzistence HLEDISKO PROGRAMÁTORA Úvod do programování Přednáška 1
  33. 33. PŘÍKLAD Storno objednávek v aplikaci Úvod do programování Přednáška 1
  34. 34. Programátoři obtížně řeší kontextově závislé úlohy. Na rozdíl od počítačů. Úvod do programování Přednáška 1
  35. 35. 5 Algoritmus Úvod do programování
  36. 36. Algoritmus je základem každého programu Algoritmus je sekvence příkazů Úvod do programování Přednáška 1
  37. 37. 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 Úvod do programování Přednáška 1
  38. 38. 1. Nalít olej do pánve 2. Zapálit plyn 3. Vzít vejce 4. Rozklepnout vejce o okraj pánve Úvod do programování Přednáška 1
  39. 39. ? 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 Úvod do programování Přednáška 1
  40. 40. ? 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 Úvod do programování Přednáška 1
  41. 41. ? 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 Úvod do programování Přednáška 1
  42. 42. ? 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 Úvod do programování Přednáška 1
  43. 43. ? Najít pánev Fatal Error ? Najít olej Do!lyNalít olej do pánve 1. vejce 2. Zapálit plyn ? Čím zapálit plyn Cancel OK 3. Vzít vejce 4. Rozklepnout vejce o okraj pánve Úvod do programování Přednáška 1
  44. 44. ˚ VLASTNOSTI ALGORITMU 1. Konečnost 2. Determinovanost 3. Vstup 4. Výstup 5. Efektivita 6. Obecnost http://cs.wikipedia.org/wiki/Algoritmus Úvod do programování Přednáška 1
  45. 45. JEDNODUCHÝ ALGORITMUS Nalezení největšího čísla z neuspořádaného seznamu čísel http://en.wikipedia.org/wiki/Algorithm#Example Úvod do programování Přednáška 1
  46. 46. 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. Úvod do programování Přednáška 1
  47. 47. 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 Úvod do programování Přednáška 1
  48. 48. ZÁPIS V PROGRAMOVACÍM JAZYCE input = [1, 5, 3, 95, 43, 56, 32, 90, 2, 4, 19] 1 largest = input.first 2 input.each do |i| 3 largest = i if i > largest 4 end 5 print quot;Nejvyšší číslo je: #{largest}quot; 6 Úvod do programování Přednáška 1
  49. 49. ZÁPIS V PROGRAMOVACÍM JAZYCE input = [1, 5, 3, 95, 43, 56, 32, 90, 2, 4, 19] 1 largest = input.first 2 input.each do |i| 3 largest = i if i > largest 4 end 5 print quot;Nejvyšší číslo je: #{largest}quot; 6 „tajemné umění programovat počítač“ Úvod do programování Přednáška 1
  50. 50. ZÁPIS V PROGRAMOVACÍM JAZYCE input = [1, 5, 3, 95, 43, 56, 32, 90, 2, 4, 19] 1 largest = input.first 2 input.each do |i| 3 largest = i if i > largest 4 end 5 print quot;Nejvyšší číslo je: #{largest}quot; 6 „tajemné umění programovat počítač“ Syntax Úvod do programování Přednáška 1
  51. 51. 6 Programovací jazyk Ruby Úvod do programování
  52. 52. Syntax 5.times { print quot;Hurá!quot; } print [quot;banánquot;, quot;citronquot;, quot;ananasquot;].sort.last.capitalize Úvod do programování Přednáška 1
  53. 53. Objektově orientovaný jazyk Pes věc/podstatné jméno OBJEKT malý vlastnost/přídavné jméno VLASTNOST stekej činnost/sloveso METODA class Pes def velikost return @velikost end def stekej print “Haf!” end end Úvod do programování Přednáška 1
  54. 54. 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. … Úvod do programování Přednáška 1
  55. 55. Zdroje (viz www.ruby-lang.org/en/documentation) www.pine.fm/LearnToProgram (původní verze) Úvod do programování Přednáška 1
  56. 56. www.poignantguide.net/ruby NEJBLÁZNIVĚJŠÍ UČEBNICE PROGRAMOVÁNÍ NA SVĚTĚ Úvod do programování Přednáška 1
  57. 57. Ruby on Rails! Úvod do programování Přednáška 1
  58. 58. Ruby on Rails Úvod do programování Přednáška 1
  59. 59. Vyzkoušejte na http://tryruby.hobix.com Úvod do programování Přednáška 1
  60. 60. 7 Plán kursu Úvod do programování
  61. 61. 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 Úvod do programování Přednáška 1
  62. 62. Děkuji! 
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×