SlideShare una empresa de Scribd logo
1 de 62
Descargar para leer sin conexión
Ú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č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
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?




                                                  Úvod do programování Přednáška 1
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ět  tajemnému umění programovat počítač“


— John Maeda, Creative Code




                                                     Úvod do programování Přednáška 1
Úvod do programování Přednáška 1
Úvod do programování Přednáška 1
Jared Tarbell: Substrate (www.complexification.net)




                                                      Úvod do programování Přednáška 1
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
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 se mu „udílí příkazy“?
Kdo mu je udílí?

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




                                           Úvod do programování Přednáška 1
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 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
Ú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 Things   (1988)




                                                           Úvod do programování Přednáška 1
Úvod do programování Přednáška 1
HLEDISKO UŽIVATELE


  Kontext
          ×
Konzistence
 HLEDISKO PROGRAMÁTORA




                         Úvod do programování Přednáška 1
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 programování Přednáška 1
5   Algoritmus




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




                                  Úvod do programování Přednáška 1
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
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
? 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
? 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
? 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
? 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
? 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
˚
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
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
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
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
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
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
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
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.capitalize




                                           Úvod do programování Přednáška 1
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
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
Zdroje   (viz www.ruby-lang.org/en/documentation)




     www.pine.fm/LearnToProgram (původní verze)
                                                    Úvod do programování Přednáška 1
www.poignantguide.net/ruby
NEJBLÁZNIVĚJŠÍ UČEBNICE PROGRAMOVÁNÍ NA SVĚTĚ




                                                Úvod do programování Přednáška 1
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: ř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
Děkuji!
 

Más contenido relacionado

Más de Karel Minarik

Elastic Search: Beyond Ordinary Fulltext Search (Webexpo 2011 Prague)
Elastic Search: Beyond Ordinary Fulltext Search (Webexpo 2011 Prague)Elastic Search: Beyond Ordinary Fulltext Search (Webexpo 2011 Prague)
Elastic Search: Beyond Ordinary Fulltext Search (Webexpo 2011 Prague)Karel Minarik
 
Your Data, Your Search, ElasticSearch (EURUKO 2011)
Your Data, Your Search, ElasticSearch (EURUKO 2011)Your Data, Your Search, ElasticSearch (EURUKO 2011)
Your Data, Your Search, ElasticSearch (EURUKO 2011)Karel Minarik
 
Redis — The AK-47 of Post-relational Databases
Redis — The AK-47 of Post-relational DatabasesRedis — The AK-47 of Post-relational Databases
Redis — The AK-47 of Post-relational DatabasesKarel Minarik
 
CouchDB – A Database for the Web
CouchDB – A Database for the WebCouchDB – A Database for the Web
CouchDB – A Database for the WebKarel Minarik
 
Spoiling The Youth With Ruby (Euruko 2010)
Spoiling The Youth With Ruby (Euruko 2010)Spoiling The Youth With Ruby (Euruko 2010)
Spoiling The Youth With Ruby (Euruko 2010)Karel Minarik
 
Verzovani kodu s Gitem (Karel Minarik)
Verzovani kodu s Gitem (Karel Minarik)Verzovani kodu s Gitem (Karel Minarik)
Verzovani kodu s Gitem (Karel Minarik)Karel Minarik
 
Představení Ruby on Rails [Junior Internet]
Představení Ruby on Rails [Junior Internet]Představení Ruby on Rails [Junior Internet]
Představení Ruby on Rails [Junior Internet]Karel Minarik
 
Efektivni vyvoj webovych aplikaci v Ruby on Rails (Webexpo)
Efektivni vyvoj webovych aplikaci v Ruby on Rails (Webexpo)Efektivni vyvoj webovych aplikaci v Ruby on Rails (Webexpo)
Efektivni vyvoj webovych aplikaci v Ruby on Rails (Webexpo)Karel Minarik
 
Úvod do Ruby on Rails
Úvod do Ruby on RailsÚvod do Ruby on Rails
Úvod do Ruby on RailsKarel Minarik
 
Úvod do programování 7
Úvod do programování 7Úvod do programování 7
Úvod do programování 7Karel Minarik
 
Úvod do programování 5
Úvod do programování 5Úvod do programování 5
Úvod do programování 5Karel Minarik
 
Úvod do programování 4
Úvod do programování 4Úvod do programování 4
Úvod do programování 4Karel Minarik
 
Úvod do programování 3 (to be continued)
Úvod do programování 3 (to be continued)Úvod do programování 3 (to be continued)
Úvod do programování 3 (to be continued)Karel Minarik
 
Historie programovacích jazyků
Historie programovacích jazykůHistorie programovacích jazyků
Historie programovacích jazykůKarel Minarik
 
Interaktivita, originalita a návrhové vzory
Interaktivita, originalita a návrhové vzoryInteraktivita, originalita a návrhové vzory
Interaktivita, originalita a návrhové vzoryKarel Minarik
 

Más de Karel Minarik (15)

Elastic Search: Beyond Ordinary Fulltext Search (Webexpo 2011 Prague)
Elastic Search: Beyond Ordinary Fulltext Search (Webexpo 2011 Prague)Elastic Search: Beyond Ordinary Fulltext Search (Webexpo 2011 Prague)
Elastic Search: Beyond Ordinary Fulltext Search (Webexpo 2011 Prague)
 
Your Data, Your Search, ElasticSearch (EURUKO 2011)
Your Data, Your Search, ElasticSearch (EURUKO 2011)Your Data, Your Search, ElasticSearch (EURUKO 2011)
Your Data, Your Search, ElasticSearch (EURUKO 2011)
 
Redis — The AK-47 of Post-relational Databases
Redis — The AK-47 of Post-relational DatabasesRedis — The AK-47 of Post-relational Databases
Redis — The AK-47 of Post-relational Databases
 
CouchDB – A Database for the Web
CouchDB – A Database for the WebCouchDB – A Database for the Web
CouchDB – A Database for the Web
 
Spoiling The Youth With Ruby (Euruko 2010)
Spoiling The Youth With Ruby (Euruko 2010)Spoiling The Youth With Ruby (Euruko 2010)
Spoiling The Youth With Ruby (Euruko 2010)
 
Verzovani kodu s Gitem (Karel Minarik)
Verzovani kodu s Gitem (Karel Minarik)Verzovani kodu s Gitem (Karel Minarik)
Verzovani kodu s Gitem (Karel Minarik)
 
Představení Ruby on Rails [Junior Internet]
Představení Ruby on Rails [Junior Internet]Představení Ruby on Rails [Junior Internet]
Představení Ruby on Rails [Junior Internet]
 
Efektivni vyvoj webovych aplikaci v Ruby on Rails (Webexpo)
Efektivni vyvoj webovych aplikaci v Ruby on Rails (Webexpo)Efektivni vyvoj webovych aplikaci v Ruby on Rails (Webexpo)
Efektivni vyvoj webovych aplikaci v Ruby on Rails (Webexpo)
 
Úvod do Ruby on Rails
Úvod do Ruby on RailsÚvod do Ruby on Rails
Úvod do Ruby on Rails
 
Úvod do programování 7
Úvod do programování 7Úvod do programování 7
Úvod do programování 7
 
Úvod do programování 5
Úvod do programování 5Úvod do programování 5
Úvod do programování 5
 
Úvod do programování 4
Úvod do programování 4Úvod do programování 4
Úvod do programování 4
 
Úvod do programování 3 (to be continued)
Úvod do programování 3 (to be continued)Úvod do programování 3 (to be continued)
Úvod do programování 3 (to be continued)
 
Historie programovacích jazyků
Historie programovacích jazykůHistorie programovacích jazyků
Historie programovacích jazyků
 
Interaktivita, originalita a návrhové vzory
Interaktivita, originalita a návrhové vzoryInteraktivita, originalita a návrhové vzory
Interaktivita, originalita a návrhové vzory
 

Úvod do programování aneb Do nitra stroje

  • 1. Úvod do programování aneb Do nitra stroje PŘEDNÁŠKA Karel Minařík 1
  • 2. 1 www.google.com/search?q=karel+minařík Úvod do programování
  • 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. 2 A vy? Úvod do programování
  • 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. Proč se na Studiích nových médií 3 zabývat programováním? Úvod do programování
  • 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. Úvod do programování Přednáška 1
  • 9. Úvod do programování Přednáška 1
  • 10. Jared Tarbell: Substrate (www.complexification.net) Úvod do programování Přednáška 1
  • 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. Demytologizace světa Úvod do programování Přednáška 1
  • 13. Úvod do programování Přednáška 1
  • 14. Rozumět Úvod do programování Přednáška 1
  • 15. Úvod do programování Přednáška 1
  • 16. Frustrace Úvod do programování Přednáška 1
  • 17. Vztah ke stroji Úvod do programování Přednáška 1
  • 18. Úvod do programování Přednáška 1
  • 19. Úvod do programování Přednáška 1
  • 20. Co je praktickým cílem našeho kursu? Úvod do programování Přednáška 1
  • 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. Úvod do programování Přednáška 1
  • 23. Kontext vs. konzistence 4 aneb „Jak uvažuje programátor?” Úvod do programování
  • 24. Ada Lovelace programování Přednáška 1 Úvod do (1815—1852)
  • 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. Příslib techniky Úvod do programování Přednáška 1
  • 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. Úvod do programování Přednáška 1
  • 29. Použitelnost — ergonomie ovládání Usability Úvod do programování Přednáška 1
  • 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. Úvod do programování Přednáška 1
  • 32. HLEDISKO UŽIVATELE Kontext × Konzistence HLEDISKO PROGRAMÁTORA Úvod do programování Přednáška 1
  • 33. PŘÍKLAD Storno objednávek v aplikaci Úvod do programování Přednáška 1
  • 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. 5 Algoritmus Úvod do programování
  • 36. Algoritmus je základem každého programu Algoritmus je sekvence příkazů Úvod do programování Přednáška 1
  • 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. 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. ? 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. ? 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. ? 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. ? 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. ? 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. ˚ 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. 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. 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. 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. 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. 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. 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. 6 Programovací jazyk Ruby Úvod do programování
  • 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. 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. 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. Zdroje (viz www.ruby-lang.org/en/documentation) www.pine.fm/LearnToProgram (původní verze) Úvod do programování Přednáška 1
  • 56. www.poignantguide.net/ruby NEJBLÁZNIVĚJŠÍ UČEBNICE PROGRAMOVÁNÍ NA SVĚTĚ Úvod do programování Přednáška 1
  • 57. Ruby on Rails! Úvod do programování Přednáška 1
  • 58. Ruby on Rails Úvod do programování Přednáška 1
  • 59. Vyzkoušejte na http://tryruby.hobix.com Úvod do programování Přednáška 1
  • 60. 7 Plán kursu Úvod do programování
  • 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