Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ノンプログラマーのためのプログラミング講座 第2回「ビジュアル・プログラミング入門」

ノンプログラマーのためのプログラミング講座 第2回「ビジュアル・プログラミング入門」

2013年2月25日に五反田・ゲンロンカフェで開催した「ノンプログラマーのためのプログラミング講座」の講義資料です。

Fushimi Ryohei

February 25, 2013
Tweet

More Decks by Fushimi Ryohei

Other Decks in Programming

Transcript

  1. Hackers’ Cafe ͜ͷߨ࠲ͷߏ੒ ୈҰճ  ߨࢣਗ਼ਫ྄ ɹڭཆͱͯ͠ͷϓϩάϥϛϯά ୈχճ  ߨࢣ෬ݟྒྷฏ

    ɹϏδϡΞϧϓϩάϥϛϯάೖ໳ ୈࡾճ ্݄० ߨࢣਗ਼ਫ྄ ɹϒϩοΫ͔Β+BWB4DSJQU΁ ୈ࢛ճ ݄Լ० ߨࢣ෬ݟྒྷฏ ɹ+BWB4DSJQUͰήʔϜ։ൃ͢Δ ୈޒճ ্݄० ߨࢣਗ਼ਫ྄ ɹϓϩάϥϛϯάͷະདྷ
  2. Hackers’ Cafe ͜ͷߨ࠲ͷߏ੒ ୈҰճ  ߨࢣਗ਼ਫ྄ ɹڭཆͱͯ͠ͷϓϩάϥϛϯά ୈχճ  ߨࢣ෬ݟྒྷฏ

    ɹϏδϡΞϧϓϩάϥϛϯάೖ໳ ୈࡾճ ্݄० ߨࢣਗ਼ਫ྄ ɹϒϩοΫ͔Β+BWB4DSJQU΁ ୈ࢛ճ ݄Լ० ߨࢣ෬ݟྒྷฏ ɹ+BWB4DSJQUͰήʔϜ։ൃ͢Δ ୈޒճ ্݄० ߨࢣਗ਼ਫ྄ ɹϓϩάϥϛϯάͷະདྷ
  3. Hackers’ Cafe ͜ͷߨ࠲ͷߏ੒ ୈҰճ  ߨࢣਗ਼ਫ྄ ɹڭཆͱͯ͠ͷϓϩάϥϛϯά ୈχճ  ߨࢣ෬ݟྒྷฏ

    ɹϏδϡΞϧϓϩάϥϛϯάೖ໳ ୈࡾճ ্݄० ߨࢣਗ਼ਫ྄ ɹϒϩοΫ͔Β+BWB4DSJQU΁ ୈ࢛ճ ݄Լ० ߨࢣ෬ݟྒྷฏ ɹ+BWB4DSJQUͰήʔϜ։ൃ͢Δ ୈޒճ ্݄० ߨࢣਗ਼ਫ྄ ɹϓϩάϥϛϯάͷະདྷ
  4. Hackers’ Cafe ͜ͷߨ࠲ͷߏ੒ ୈҰճ  ߨࢣਗ਼ਫ྄ ɹڭཆͱͯ͠ͷϓϩάϥϛϯά ୈχճ  ߨࢣ෬ݟྒྷฏ

    ɹϏδϡΞϧϓϩάϥϛϯάೖ໳ ୈࡾճ ্݄० ߨࢣਗ਼ਫ྄ ɹϒϩοΫ͔Β+BWB4DSJQU΁ ୈ࢛ճ ݄Լ० ߨࢣ෬ݟྒྷฏ ɹ+BWB4DSJQUͰήʔϜ։ൃ͢Δ ୈޒճ ্݄० ߨࢣਗ਼ਫ྄ ɹϓϩάϥϛϯάͷະདྷ
  5. Hackers’ Cafe ͜ͷߨ࠲ͷߏ੒ ୈҰճ  ߨࢣਗ਼ਫ྄ ɹڭཆͱͯ͠ͷϓϩάϥϛϯά ୈχճ  ߨࢣ෬ݟྒྷฏ

    ɹϏδϡΞϧϓϩάϥϛϯάೖ໳ ୈࡾճ ্݄० ߨࢣਗ਼ਫ྄ ɹϒϩοΫ͔Β+BWB4DSJQU΁ ୈ࢛ճ ݄Լ० ߨࢣ෬ݟྒྷฏ ɹ+BWB4DSJQUͰήʔϜ։ൃ͢Δ ୈޒճ ্݄० ߨࢣਗ਼ਫ྄ ɹϓϩάϥϛϯάͷະདྷ
  6. Hackers’ Cafe ͜ͷߨ࠲ͷߏ੒ ୈҰճ  ߨࢣਗ਼ਫ྄ ɹڭཆͱͯ͠ͷϓϩάϥϛϯά ୈχճ  ߨࢣ෬ݟྒྷฏ

    ɹϏδϡΞϧϓϩάϥϛϯάೖ໳ ୈࡾճ ্݄० ߨࢣਗ਼ਫ྄ ɹϒϩοΫ͔Β+BWB4DSJQU΁ ୈ࢛ճ ݄Լ० ߨࢣ෬ݟྒྷฏ ɹ+BWB4DSJQUͰήʔϜ։ൃ͢Δ ୈޒճ ্݄० ߨࢣਗ਼ਫ྄ ɹϓϩάϥϛϯάͷະདྷ
  7. Hackers’ Cafe ϓϩάϥϜͷ͍Ζ͍Ζ ӡಈձͷϓϩάϥϜ ݁ࠗࣜͷࣜ࣍ୈ ΧϦΩϡϥϜ ։ձࣜ ۄೖΕ N૸ ٍഅઓ

    େۄૹΓ ΨΠμϯε ϓϩάϥϛϯά֓࿦ ܭࢉػՊֶͷجૅ ΞϧΰϦζϜͱσʔλߏ଄ ϓϩάϥϛϯά࣮श ։৔ ৽࿠৽්ೖ৔ ओෂѫࡰɾסഋ έʔΩೖ౛ ͓৭௚͠ ΩϟϯυϧαʔϏε ༑ਓʹΑΔ༨ڵ ՖՇ͔Β෕΁ͷखࢴ ดձ ·͞ʹखॱΛهड़ͯ͠Δ
  8. ϓϩάϥϛϯά͸ ਓ ྨ ͕ ͜ Ε · Ͱ ҭ Μ

    Ͱ དྷ ͨ ଟ͘ͷࢥ૝΍ֶ໰ͷ੒Ռ͕ڽू͞Εɺ ·ͨɺͳ͓վྑ͞Εଓ͚͍ͯ·͢ɻ ਺ֶɺ෺ཧֶɺݴޠֶɺ෼ྨֶɺ౳ʑ ͋Γͱ͋ΒΏΔֶ໰ͷूେ੒Λखܰʹ ࢖͏ͨΊʹମܥͩͯΒΕͨख๏͕ͦ͜ ϓ ϩ ά ϥ ϛ ϯ ά ͳ ͷ Ͱ ͢
  9. KBWBTDSJQUXJOEPXTFU*OUFSWBM GVODUJPO \ EOFX%BUF  JG EHFU)PVST  \ BMFSU

    8BLFVQ ^ ^    ໨֮·࣌͠ܭ ͜ͷΧοί͸Կ ͜ͷΧοί͸ Ͳ͏ҧ͏ͷ ͳͥߦͷ࢝Ί͕ ҧ͏Ґஔʹ͋Δͷ Ͳ͏ͯ͠Χοί͕ ͨ͘͞Μ͋Δͷ
  10. ʮΧοίʯ͸ɺ͋ͳͨΛਂԕͳ ϓϩάϥϛϯάݴޠͷੈքʹ ༠͍ಋ͘༯ਫ਼ͱͳΔ (  )  {  }  [  ] (defun

    pow (x y) (if (< y 0) ! (pow-iter (/ 1 x) (* y -1) 1) ! (pow-iter x y 1))) (defun pow-iter (x y sum) (if (= y 0) ! sum ! (pow-iter x (1- y) (* sum x))))
  11. KBWBTDSJQUXJOEPXTFU*OUFSWBM GVODUJPO \ EOFX%BUF  JG EHFU)PVST  \ BMFSU

    8BLFVQ  ^ ^    Χοίͷछྨ͕ͲΜͳҙຯΛ͍࣋ͬͯΔͷ͔ʜ ͪΐͬ͜ͱղઆ ৄ͘͠͸࣍ճ
  12. KBWBTDSJQUXJOEPXTFU*OUFSWBM GVODUJPO \ EOFX%BUF  JG EHFU)PVST  \ BMFSU

    8BLFVQ ^ ^    ʮ࣌ʹͳͬͨΒىͯ͜͠΄͍͠ͳʜʯ
  13. KBWBTDSJQUXJOEPXTFU*OUFSWBM GVODUJPO \ EOFX%BUF  JG EHFU)PVST  \ BMFSU

    8BLFVQ ^ ^    ʮ࣌ʹͳͬͨΒىͯ͜͠΄͍͠ͳʜʯ ʮ࣌ա͗ʹىͯ͜͠Ͷʯ
  14. KBWBTDSJQUXJOEPXTFU*OUFSWBM GVODUJPO \ EOFX%BUF  JG EHFU)PVST  \ BMFSU

    8BLFVQ ^ ^    ʮ࣌ʹͳͬͨΒىͯ͜͠΄͍͠ͳʜʯ ʮ࣌ա͗ʹىͯ͜͠Ͷʯ ೔ຊޠͷ΄͏͕؆୯͡ΌΜ ͳΜͰ͜Μͳʹ೉͍͠ݴޠΛ ֶͿඞཁ͕͋Δͷ
  15. ๏཯ͷ৚จ ࡋ൑ॴͷ൑ྫ ໾ॴͷެจॻ ͔͠͠ͳ͕Βɼݪ৹ͷ্ه൑அ͸ੋೝ͢Δ͜ͱ͕Ͱ͖ͳ͍ɻͦͷཧ༝͸ɼ࣍ ͷͱ͓ΓͰ͋Δɻ ຽ๏̏̔̕৚ͷ̎ୈ߲̎͸ɼࠜ఍౰ݖͷ୲อ͢΂͖࠴ݖͷൣғ͸࠴຿ऀͱͷಛఆ ͷܧଓతऔҾܖ໿ʹΑͬͯੜͣΔ΋ͷͦͷଞ࠴຿ऀͱͷҰఆͷछྨͷऔҾʹΑͬͯ ੜͣΔ΋ͷʹݶఆͯ͠ఆΊͳ͚Ε͹ͳΒͳ͍ࢫنఆ͓ͯ͠Γɼલهࣄ࣮ؔ܎ʹΑΕ ͹ɼຊ݅ࠜ఍౰ݖ͸ɼಉ߲ʹج͖ͮɼ୲อ͢΂͖࠴ݖͷൣғΛࠜ఍౰࠴຿ऀͰ͋Δ ̘ͱͷʮอূҕୗऔҾʯʹΑͬͯੜͣΔ΋ͷʹݶఆ͢Δ΋ͷͰ͋Δ͜ͱ͕໌Β͔Ͱ

    ͋Δɻͦͯ͠ɼ৴༻อূڠձͱࠜ఍౰࠴຿ऀͱͷอূҕୗऔҾͱ͸ɼ৴༻อূڠձ ͕ࠜ఍౰࠴຿ऀͷґཔΛड͚ͯಉਓΛओ࠴຿ऀͱ͢Δ࠴຿ʹ͍ͭͯอূਓͱͳΔ ʢอূܖ໿Λక݁͢Δʣ͜ͱɼͦΕʹ൐ͬͯ৴༻อূڠձ͕ࠜ఍౰࠴຿ऀʹରͯ͠ ҕୗΛड͚ͨอূਓͱͯ͠ٻঈݖΛऔಘ͢Δ͜ͱ౳ΛओͨΔ಺༰ͱ͢ΔऔҾΛࢦ͢ ΋ͷͱཧղ͞Εɼࠜ఍౰࠴຿ऀͰͳ͍ऀ͕৴༻อূڠձʹରͯ͠ෛ୲͢Δ࠴຿ʹͭ ͍ͯͷࠜ఍౰࠴຿ऀͷอূ࠴຿͸ɼ্هऔҾͱ͸ؔ܎ͷͳ͍΋ͷͱ͍Θͳ͚Ε͹ͳ Βͳ͍ɻಉ߲ͷنఆ͢ΔʮҰఆͷछྨͷऔҾʯ͸ɼඃ୲อ࠴ݖͷ۩ମతൣғΛը͢ ΂͖ج४ͱͯ͠ୈࡾऀʹର͢Δؔ܎ʹ͓͍ͯ΋໌֬ͳ΋ͷͰ͋Δ͜ͱΛཁ͢Δ΋ͷ Ͱ͋ΓɼʮอূҕୗऔҾʯͱ͍͏ද͕ࣔɼ๏ఆ͞Εͨ৴༻อূڠձͷۀ຿ʹؔ͢Δ ͢΂ͯͷऔҾΛҙຯ͢Δ΋ͷͱղ͢Δ͜ͱ΋Ͱ͖ͳ͍ɻ ̍จ͕௕ͯ͘ ߏ଄͕෼͔ΓͮΒ͍ʜ
  16. KBWBTDSJQUXJOEPXTFU*OUFSWBM GVODUJPO \ EOFX%BUF  JG EHFU)PVST  \ BMFSU

    8BLFVQ ^ ^    ʮ࣌ʹͳͬͨΒىͯ͜͠΄͍͠ͳʜʯ ࣌ܭΛνΣοΫͯ͠ɺ ΋͠΋࣌ܭͷ࣌਑͕ Λࢦ͍ͯ͠Ε͹ɺ 8BLFVQͱ͍͏ μΠΞϩάΛදࣔ͠ ͦ͏Ͱͳ͚Ε͹ Կ΋͠ͳ͍͜ͱΛ ෼ʹ౓܁Γฦ͢ Χοίͷ͓͔͛Ͱਖ਼֬ͳهड़͕Ͱ͖Δ ߦ಄ΛͣΒ͓͔ͨ͛͠Ͱߏ଄͕෼͔Γ΍͍͢
  17. KBWBTDSJQUXJOEPXTFU*OUFSWBM GVODUJPO \ EOFX%BUF  JG EHFU)PVST  \ BMFSU

    8BLFVQ ^ ^    ͳͥΧοί͕ ͜Μͳʹଟ͍ͷ ͳͥΧοίͷ࢝·ΓΛ ଗ͑Δඞཁ͕͋Δͷ
  18. KBWBTDSJQUXJOEPXTFU*OUFSWBM GVODUJPO \ EOFX%BUF  JG EHFU)PVST  \ BMFSU

    8BLFVQ ^ ^    ͳͥΧοί͕ ͜Μͳʹଟ͍ͷ ͳͥΧοίͷ࢝·ΓΛ ଗ͑Δඞཁ͕͋Δͷ ܭࢉػցʹɺࢦࣔͷߏ଄Λ ਖ਼֬ʹ఻͑ΔͨΊ ਓ͕ؒ༩͍͑ͯΔࢦࣔͷߏ଄Λ ਖ਼֬ʹཧղ͢ΔͨΊ
  19. ϓϩάϥϛϯά͸ ਓ ྨ ͕ ͜ Ε · Ͱ ҭ Μ

    Ͱ དྷ ͨ ଟ͘ͷࢥ૝΍ֶ໰ͷ੒Ռ͕ڽू͞Εɺ ·ͨɺͳ͓վྑ͞Εଓ͚͍ͯ·͢ɻ ਺ֶɺ෺ཧֶɺݴޠֶɺ෼ྨֶɺ౳ʑ ͋Γͱ͋ΒΏΔֶ໰ͷूେ੒Λखܰʹ ࢖͏ͨΊʹମܥͩͯΒΕͨख๏͕ͦ͜ ϓ ϩ ά ϥ ϛ ϯ ά ͳ ͷ Ͱ ͢
  20. ϓϩάϥϛϯά͸ ਓ ྨ ͕ ͜ Ε · Ͱ ҭ Μ

    Ͱ དྷ ͨ ଟ͘ͷࢥ૝΍ֶ໰ͷ੒Ռ͕ڽू͞Εɺ ·ͨɺͳ͓վྑ͞Εଓ͚͍ͯ·͢ɻ ਺ֶɺ෺ཧֶɺݴޠֶɺ෼ྨֶɺ౳ʑ ͋Γͱ͋ΒΏΔֶ໰ͷूେ੒Λखܰʹ ࢖͏ͨΊʹମܥͩͯΒΕͨख๏͕ͦ͜ ϓ ϩ ά ϥ ϛ ϯ ά ͳ ͷ Ͱ ͢
  21. KBWBTDSJQUXJOEPXTFU*OUFSWBM GVODUJPO \ EOFX%BUF  JG EHFU)PVST  \ BMFSU

    8BLFVQ ^ ^    ͱͯ΋ຊ࣭తͳ࣭໰ ͜ͷΧοί͸Կ ͜ͷΧοί͸ Ͳ͏͍͏ҙຯ ͳͥߦͷ࢝Ί͕ ҧ͏Ґஔʹ͋Δͷ
  22. Hackers’ Cafe ͜ͷߨ࠲ͷߏ੒ ୈҰճ  ߨࢣਗ਼ਫ྄ ɹڭཆͱͯ͠ͷϓϩάϥϛϯά ୈχճ  ߨࢣ෬ݟྒྷฏ

    ɹϏδϡΞϧϓϩάϥϛϯάೖ໳ ୈࡾճ ্݄० ߨࢣਗ਼ਫ྄ ɹϒϩοΫ͔Β+BWB4DSJQU΁ ୈ࢛ճ ݄Լ० ߨࢣ෬ݟྒྷฏ ɹ+BWB4DSJQUͰήʔϜ։ൃ͢Δ ୈޒճ ্݄० ߨࢣਗ਼ਫ྄ ɹϓϩάϥϛϯάͷະདྷ