Slide 1

Slide 1 text

プログラミング実習 事前講義 稲⽥和⺒ @筑波⼤学⼤学院 1

Slide 2

Slide 2 text

稲⽥ 和⺒ ● 筑波⼤学⼤学院 博⼠課程 1年 ● 1997年⽣まれ、⼤阪出⾝ ● メディアアート‧メディア表現 ● つくばエキスポセンター(アルバイト) 2 作ってるものや研究のことは https://www.nandenjin.com を みてください

Slide 3

Slide 3 text

3

Slide 4

Slide 4 text

本⽇のおしながき ● 「プログラム」って何? ● プログラミングを使った研究あれこれ ● 宿題の振り返り 4 このスライドはあとで⾒返せるように配布します。 メモを取るときは「画⾯に書いてないことだけ」でOKです

Slide 5

Slide 5 text

「プログラム」って何? 5

Slide 6

Slide 6 text

「プログラム」って何? 6 プログラム 物事の進⾏について、 順序⽴てて説明した「⼿順」 プログラミング プログラムをつくる作業のこと え?コンピュータは?

Slide 7

Slide 7 text

「プログラム」って何? コンピュータを使わなくても 「プログラム」 ● 運動会や学芸会とか 7 プログラム 物事の進⾏について、順序⽴てて説明した「⼿順」 どんなときに、なにが、 どんな順番で起こるか?

Slide 8

Slide 8 text

コンピュータを使わないプログラム:鉄道ダイヤ どのように運転すれば 滞りなく、安全に⾛れるか? 予め設計し、それに従って 操縦する 8 画像出典:Wikimedia Commons(Author: K.Kitaguchi、運動会プロテインパワー)

Slide 9

Slide 9 text

コンピュータを使わないプログラム:郵便配達 どんな⼿順(道順)で配達すると 無駄なく早く届けられる? 表にしてまとめている 9 出典:NHK「テキシコー」#1 https://www.nhk.or.jp/school/sougou/texico/onair/

Slide 10

Slide 10 text

では、コンピュータとは何? 10 プログラム 物事の進⾏について、 順序⽴てて説明した「⼿順」 コンピュータ ⼿順に従って、計算を⾃動でおこなう機械 = (計算をする)プログラムを 実⾏する機械

Slide 11

Slide 11 text

初期のコンピュータは、⼈⼒の計算を肩代わりさせるために作られた 11 バベッジの階差機関、イギリス・ 1840年頃 ENIAC、アメリカ・1940年頃 画像出典:Wikimedia Common(File:Difference_engine.JPG, Glen_Beck_and_Betty_Snyder_program_the_ENIAC_in_building_328_at_the_Ballistic_Research_Laboratory.jpg)

Slide 12

Slide 12 text

コンピュータを使ったプログラミングの強み 12 ⾃動化 できる シミュレー ション できる ⾃分で 「つくる」 ができる

Slide 13

Slide 13 text

コンピュータを使ったプログラミング:⾃動化 複雑なことや退屈なこと、 プログラムにしてしまえば 何度でも同じように動かせる 13 ⾃動列⾞運転装置 ATO(Automatic Train Operation) 発⾞して停⾞するまでの動きをプログラムし 電⾞を⾃動的に⾛らせる https://youtu.be/K_Wuthvin3M?t=50

Slide 14

Slide 14 text

コンピュータを使ったプログラミング:シミュレーション 実際にできないことでも、 コンピュータと データを使って正確に試せる 14 NTTドコモ 「検証 全員歩きスマホ in 渋⾕スクランブル交差点」 交差点を渡る⼈が全員歩きスマホ! どうなるのか確かめてみる https://youtu.be/6Pkzjm75KnU

Slide 15

Slide 15 text

さまざまなテクノロジーで、 ⾃分の考えたことを すぐに「作って試す」できる コンピュータを使ったプログラミング:⾃分で作る 15 “The Floppotron” コンピュータの周辺機器を使って(?) ⾳楽を奏でることができる システムを作った https://youtu.be/Oym7B7YidKs?t=15

Slide 16

Slide 16 text

プログラミングを使った研究あれこれ 16 じゃあ、研究では どうやって使うの?

Slide 17

Slide 17 text

プログラミングを使った研究あれこれ ● 宮本知世 ○ みやもと‧ちせ ○ ⼤学院 博⼠前期課程1年 ⽣物系 ● 岡村美紀 ○ おかむら‧みき ○ ⼤学院 博⼠前期課程1年 情報系 17

Slide 18

Slide 18 text

宮本知世 18 情報科学が⽣物学でどのように活躍しているか?

Slide 19

Slide 19 text

l ( ) l : ( ) l : lSKIP 2 1 :

Slide 20

Slide 20 text

l : l ( ) ( ) 2

Slide 21

Slide 21 text

3

Slide 22

Slide 22 text

DNA : l l4 (A, T, G, C) l 4 DNA

Slide 23

Slide 23 text

: l : DNA (A, T, G, C) 5

Slide 24

Slide 24 text

6 DNA DNA

Slide 25

Slide 25 text

岡村美紀 19 オノマトペからダンスを⽣成

Slide 26

Slide 26 text

ΦϊϚτϖ͔ΒμϯεΛੜ੒ ʻμϯεੜ੒ʼ

Slide 27

Slide 27 text

ࣗݾ঺հ ஜ೾େ৘ใܥ. ԬଜඒلʢΈ͖͓ʣ

Slide 28

Slide 28 text

ΦϊϚτϖͱײ֮ؒڠԠ എܠ

Slide 29

Slide 29 text

ΦϊϚτϖͱײ֮ؒڠԠ എܠ

Slide 30

Slide 30 text

ΦϊϚτϖͱײ֮ؒڠԠ എܠ

Slide 31

Slide 31 text

ҿΈ৺஍ ৮ײ ॻ͖৺஍ ൅ͷ࣭ײ ͞Β͞Β ΦϊϚτϖ ײ֮ؒڠԠ ϞʔμϧؒΛ݁ͿΠϝʔδ େ໺խو, ԣᖒҰ඙, and ໐ւ୓ࢤ. "ଟײ֮ͷ౷߹తೝ஌ͷجૅͱײ֮ఏࣔΠϯλϑΣʔε΁ͷԠ༻Մೳੑ." ೔ຊόʔνϟϧϦΞϦςΟֶձ࿦จࢽ 27.1 (2022): 18-28. ΦϊϚτϖͱײ֮ؒڠԠ എܠ

Slide 32

Slide 32 text

ɹ ײ֮ؒڠԠ … ಈ࡞ɾ༷ଶ ײ৘ɾ৘ಈ ෺ੑɾࡐ࣭ ɹ ɹ ଟ༷ͳϞʔμϧ ΦϊϚτϖ େ໺խو, ԣᖒҰ඙, and ໐ւ୓ࢤ. "ଟײ֮ͷ౷߹తೝ஌ͷجૅͱײ֮ఏࣔΠϯλϑΣʔε΁ͷԠ༻Մೳੑ." ೔ຊόʔνϟϧϦΞϦςΟֶձ࿦จࢽ 27.1 (2022): 18-28. ΦϊϚτϖͱײ֮ؒڠԠ എܠ

Slide 33

Slide 33 text

ɹ ײ֮ؒڠԠ … ಈ࡞ɾ༷ଶ ײ৘ɾ৘ಈ ෺ੑɾࡐ࣭ ɹ ɹ ଟ༷ͳϞʔμϧ ΦϊϚτϖ Ի৅௃ੑ ͜ͱ͹ͱΠϝʔδ͕݁ͼͭ͘ݱ৅ େ໺խو, ԣᖒҰ඙, and ໐ւ୓ࢤ. "ଟײ֮ͷ౷߹తೝ஌ͷجૅͱײ֮ఏࣔΠϯλϑΣʔε΁ͷԠ༻Մೳੑ." ೔ຊόʔνϟϧϦΞϦςΟֶձ࿦จࢽ 27.1 (2022): 18-28. ΦϊϚτϖͱײ֮ؒڠԠ എܠ

Slide 34

Slide 34 text

ͲͪΒ͕ϒʔόʁɹͲͪΒ͕ΩΩʁ ΦϊϚτϖͱײ֮ؒڠԠ എܠ

Slide 35

Slide 35 text

ͲͪΒ͕ϒʔόʁɹͲͪΒ͕ΩΩʁ ͻͱ͜ͱͰ௚ײతʹঢ়ଶ΍ҹ৅ΛදݱͰ͖ΔͨΊɺ ෯޿͘׆༻͞Ε͍ͯΔ ΦϊϚτϖͱײ֮ؒڠԠ എܠ

Slide 36

Slide 36 text

ΦϊϚτϖ͔ΒμϯεΛੜ੒ ʻμϯεੜ੒ʼ Ի৅௃ੑΛ਺஋Խ Իӆͱμϯεಈ࡞ͷؔ܎Λਂ૚ֶश ΦϊϚτϖ͔Βμϯεಈ࡞Λੜ੒ʂ

Slide 37

Slide 37 text

ΦϊϚτϖ͔ΒμϯεΛੜ੒ ʻμϯεੜ੒ʼ Ի৅௃ੑΛ਺஋Խ Իӆͱμϯεಈ࡞ͷؔ܎Λਂ૚ֶश ΦϊϚτϖ͔Βμϯεಈ࡞Λੜ੒ʂ ˢϓϩάϥϛϯάΛ༻͍Δʂ ˢϓϩάϥϛϯάΛ༻͍Δʂ ˢϓϩάϥϛϯάΛ༻͍Δʂ

Slide 38

Slide 38 text

ΦϊϚτϖ͔ΒμϯεΛੜ੒ ʻμϯεੜ੒ʼ

Slide 39

Slide 39 text

ΦϊϚτϖ͔ΒμϯεΛੜ੒ ʻμϯεੜ੒ʼ

Slide 40

Slide 40 text

ΦϊϚτϖ͔ΒμϯεΛੜ੒ ʻμϯεੜ੒ʼ ϓϩάϥϛϯά͕͋Ε͹ɺ ΦϊϚτϖ͔Βμϯεಈ࡞Λੜ੒Ͱ͖Δʂ

Slide 41

Slide 41 text

⾼校⽣向け勉強会(先週やった) ● 情報学って何ができるの? ● コンピュータを使った アート作品 もっと知りたい:情報学とメディアアート 20 興味のある⼈はこちらもどうぞ! https://speakerdeck.com/nandenjin/intro duction-to-informatics-and-media-arts-fo r-highschool-students

Slide 42

Slide 42 text

事前課題のフィードバック 21

Slide 43

Slide 43 text

問題を⾒返してみましょう コンピュータになにかをしてもらうためには、ただ「◯◯をし てほしい」と伝えるのではなく、「どのような動きをどう組み 合わせるか」を論理的に伝えなければいけません。 課題ではその練習として、「⽇常のある場⾯を、動作に分解す る」ことに取り組んでもらいます。 22

Slide 44

Slide 44 text

問題を⾒返してみましょう 23 1. 「図書館で本を探して借りる」動作を分解してください。 ただし、借りる本は決まっているものとします。 2. ⽣活の中にあるものごとを⾃由にひとつ選び、 動作に分解してください。 (なにを選んだかも書いてください)

Slide 45

Slide 45 text

これの何が難しいのか 誰がやっても同じになるように するのはすごく難しい。 でも、プログラミングは そういう⾔葉でしかできないように なっている…… 24 Josh Darnit “Exact Instructions Challenge” ジョナとエヴァンは、パパにサンドイッチの作り⽅を 「正確に」教えられるだろうか? https://youtu.be/cDA3_5982h8

Slide 46

Slide 46 text

問1: 図書館で本を探して借りる 25 探す 歩き回る 借りる みんなの答え

Slide 47

Slide 47 text

問1: 図書館で本を探して借りる 26 1、図書館に⾏く 2、借りる本がどこにあるか検索をする 3、検索した結果の場所に⾏く 4、探していた本をとる 5、借りるために受付に⾏く 6、受付で借りる 7、家に帰る みんなの答え

Slide 48

Slide 48 text

問1: 図書館で本を探して借りる 27 ①借りたい本のジャンルのコーナーに⾏く ②借りたい本の筆者名もしくは作品名のコーナーに⾏く ③本を⼿に取る ④借りたい本か確認する ⑤③〜④を借りたい本の確認が取れるまで繰り返す ⑥借りる    ⑦⾒つからない         ⑧司書さんに聞く みんなの答え

Slide 49

Slide 49 text

問1: 図書館で本を探して借りる 28 ①図書館にいるか [はいの場合→] ②借りる本を探す ③借りる本が⾒つかったか [はいの場合②→] ④図書カードを持って 職員のところに⾏く ⑤本と図書カードを渡して 本を借りる みんなの答え [いいえの場合②→] ④ʻ②に戻る [いいえの場合→] ②’図書館に⾏く ③ʻ①に戻る

Slide 50

Slide 50 text

問2: 新しく発売された本を図書館で借りる 29 新しい本が発売されたかを調べる 予約する 図書館に借りに⾏く みんなの答え 「発売された = 図書館にある」でOK? なかったときどうしよう?

Slide 51

Slide 51 text

問2: 部活を始めるまでの動作 30 更⾐室に⾏く 鍵が空いている→更⾐室の中で着替える 鍵が空いていない→トイレに⾏って着替える グラウンドに出る コーチがいる→挨拶をする コーチがいない→コーチが来たら挨拶をする グラウンドに挨拶をする みんなの答え コーチがいないとき、 コーチが来るまで なにしてよう……

Slide 52

Slide 52 text

問2: ⻭磨き 31 ①⻭ブラシを⼿に取る。 ②⻭磨き粉はある? [はいの場合→] ③⻭磨き粉を⻭ブラシにつける。 [いいえの場合→] ③’⽔を⻭ブラシにかける。 ④右上を磨く。 ⑤左上を磨く。 ⑥左下を磨く。 ⑦右下を磨く。 みんなの答え ⻭ブラシやタオルの 有無もチェックすると どんどん複雑になる ⑧コップはある? [はいの場合→] ⑨コップに⽔を⼊れる ⑩⼝に⽔を⼊れる [いいえの場合→] ⑨’⼿に⽔をためる ⑩’⼝に⽔を⼊れる ⑪⼝をゆすぐ ⑫⽔を吐き捨てる。 ⑬タオルで⼝を拭く。

Slide 53

Slide 53 text

プログラムの3つの制御構造 32 順次 順番に次を実⾏する 繰り返し 何度も戻って繰り返す 分岐 条件によって枝分かれ

Slide 54

Slide 54 text

まとめ ● 「プログラム」はものごとを進める⼿順のこと。 コンピュータ以外もアリ ● 「どういうふうに動いてほしいのか」を きちんと説明できることが重要そう。 ● 指⽰を組み合わせて作る。 条件で分かれ道を作ったり、繰り返したりできる 33

Slide 55

Slide 55 text

実習に続く。 34

Slide 56

Slide 56 text

去年の様⼦ 35

Slide 57

Slide 57 text

実習で使う機材「マイクロビット」 36 https://microbit.org/ja/get-started/features/overview/

Slide 58

Slide 58 text

実習課題 micro:bitを使って ⼩さなプログラム(アプリケーション)をつくる ● たのしいものならなんでもOK ● 研究や⽣活の役に⽴つものならGood👍 ● ボタン‧コンパス‧温度計‧LED‧スピーカなどなど 37 何が作れるか考えてみよう