1 of 40

プログラミング実習 事前講義

稲田和巳 @筑波大学大学院

1

2 of 40

稲田 和巳

  • 筑波大学大学院 博士課程 2年
  • 1997年生まれ、大阪出身
  • メディアアート・メディア表現
  • つくばエキスポセンター(アルバイト)

2

作ってるものや研究のことは�https://www.nandenjin.com を�みてください

3 of 40

本日のおしながき

  • 「プログラム」って何?
  • プログラミングを使った研究あれこれ
  • 宿題の振り返り

3

このスライドはあとで見返せるように配布します。

メモを取るときは「画面に書いてないことだけ」でOKです

4 of 40

「プログラム」って何?

4

5 of 40

「プログラム」って何?

5

プログラム

物事の進行について、�順序立てて説明した「手順」

プログラミング

プログラムをつくる作業のこと

え?コンピュータは?

6 of 40

「プログラム」って何?

コンピュータを使わなくても�「プログラム」

  • 運動会や学芸会とか

6

プログラム

物事の進行について、順序立てて説明した「手順」

どんなときに、なにが、�どんな順番で起こるか?

7 of 40

では、コンピュータとは何?

7

プログラム

物事の進行について、�順序立てて説明した「手順」

コンピュータ

手順に従って、計算を自動でおこなう機械

= (計算をする)プログラムを� 実行する機械

8 of 40

初期のコンピュータは、人力の計算を肩代わりさせるために作られた

8

バベッジの階差機関、イギリス・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)

9 of 40

コンピュータを使ったプログラミングの強み

9

自動化

できる

シミュレー�ション

できる

自分で�「つくる」

ができる

10 of 40

コンピュータを使ったプログラミング:自動化

複雑なことや退屈なこと、

プログラムにしてしまえば

何度でも同じように動かせる

10

自動列車運転装置�ATO(Automatic Train Operation)

発車して停車するまでの動きをプログラムし�電車を自動的に走らせる

https://youtu.be/K_Wuthvin3M?t=50

11 of 40

コンピュータを使ったプログラミング:シミュレーション

実際にできないことでも、�コンピュータと�データを使って正確に試せる

11

NTTドコモ 「検証 全員歩きスマホ in 渋谷スクランブル交差点」

交差点を渡る人が全員歩きスマホ!�どうなるのか確かめてみる

https://youtu.be/6Pkzjm75KnU

12 of 40

コンピュータを使ったプログラミング:自分で作る

さまざまなテクノロジーで、�自分の考えたことを�「作って試す」ができる

12

“The Floppotron”

コンピュータの周辺機器を使って(?)�音楽を奏でることができる�システムを作った

https://youtu.be/Oym7B7YidKs?t=15

13 of 40

プログラム・コンピュータで「つくる」ということ

橋本麦&ノガミカツキによるgroup_inou『eye』ミュージックビデオ

13

14 of 40

14

15 of 40

15

プログラミングは道具。まだ見たこともない景色にたどり着く手段になるかもしれない

16 of 40

プログラミングを使った研究あれこれ

16

じゃあ、研究では�どうやって使うの?

17 of 40

プログラミングはさまざまな分野と関わり続けている

――情報学は数学や統計学と同様に、独立した学問であると同時に�メタサイエンス(諸科学全体を覆うサイエンス)の側面を�有している。�メタサイエンス:他の分野にも組み合わせて活用できる学問のこと

――常に他の専門分野との接点において�新しい領域情報学が生まれている。

17

日本学術会議 - 大学教育の分野別質保証のための教育課程編成上の参照基準(情報学分野)

どんな分野の研究でも、プログラミングを使ったあたらしい工夫ができる

18 of 40

宮本知世

18

大学院 博士前期課程2年 生物系�情報科学が生物学でどのように活躍しているか?

19 of 40

もっと知りたい:情報学とメディアアート

高校生向け勉強会(去年の資料)

  • 情報学って何ができるの?
  • コンピュータを使った�アート作品

19

20 of 40

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

20

21 of 40

問題を見返してみましょう

コンピュータになにかをしてもらうためには、ただ「◯◯をしてほしい」と伝えるのではなく、「どのような動きをどう組み合わせるか」を論理的に伝えなければいけません。

課題ではその練習として、「日常のある場面を、動作に分解する」ことに取り組んでもらいます。

21

22 of 40

問題を見返してみましょう

22

  1. 「図書館で本を探して借りる」動作を分解してください。�ただし、借りる本は決まっているものとします。
  2. 生活の中にあるものごとを自由にひとつ選び、�動作に分解してください。�(なにを選んだかも書いてください)

23 of 40

これの何が難しいのか

誰がやっても同じになるように�するのはすごく難しい。

でも、プログラミングは�そういう言葉でしかできないように�なっている……

23

Josh Darnit “Exact Instructions Challenge”

ジョナとエヴァンは、パパにサンドイッチの作り方を�「正確に」教えられるだろうか?

https://youtu.be/cDA3_5982h8

24 of 40

問1: 図書館で本を探して借りる

24

図書館に行く�本を探す

本を借りる

みんなの答え

25 of 40

問1: 図書館で本を探して借りる

25

①図書館へ行く

②借りる本を探す

③本を抜く

④カウンターへ持って行く

⑤利用者カードを出す

⑥本を受け取る

⑦袋に入れる

⑧持ち帰る

みんなの答え

26 of 40

問1: 図書館で本を探して借りる

26

①借りたい本のジャンルのコーナーに行く

②借りたい本の筆者名もしくは作品名のコーナーに行く

③本を手に取る

④借りたい本か確認する

⑤③~④を借りたい本の確認が取れるまで繰り返す

⑥借りる    ⑦見つからない

        ⑧司書さんに聞く

みんなの答え

27 of 40

問1: 図書館で本を探して借りる

27

1 地図を見る

2 目的の本がある場所を見つける(見つかるまで探す)

3その場所へ向かう

4 目的の本を探し、見つけたら手に取る

5 目的の本か確認する

 目的の本である 工程6へ

 目的の本ではない その本を戻して工程4に戻る

みんなの答え

6 受付に本を持っていく

7 図書カードと借りたい本を渡す

8 貸出の処理をしてもらい、本と図書カードを返してもらう

9完了

28 of 40

問2: 水を飲む

28

コップを見つける

ペットボトルを探して持ってくる

キャップを開けて、机に置く

ペットボトルを傾けて水をコップに入れる

キャップをとって閉める

コップを持つ

水を飲む

みんなの答え

コップが机の上にあるか�やや不安になってきた……

29 of 40

問2: 登校する

29

家を出る

エレベーターまで歩く

エレベーターの下矢印のボタンを押す

エレベーターを待つ

エレベーターに乗る

一階のボタンを押す

一階に着いたらエレベーターから降りる

マンションを出る

バス停まで歩く

バスを待つ

みんなの答え

バスに乗る

定期を読み取り機械にかざす

席に座るまたは立っている

降りるボタンを押す

停車したら読み取り機械に定期をかざす

バスから降りる

学校まで歩く

「いつやるのか」が�あると良いね

30 of 40

問2: 地図と測量の科学館」から移動して、研究学園駅で快速秋葉原行きの電車に乗る

30

①「地図と測量の科学館」を出る

②「地図と測量の科学館」正門から向かって正面の横断歩道を渡る

③セブンイレブンつくば西平塚店の脇を直進し、自動車道「取手つくば線」の横の歩道を、道なりに歩き続ける

④正面に、スーパーマーケット「トリセン研究学園店」が見えたか?

[いいえの場合]

 ⑤そのまま道なりに歩き続ける

[はいの場合]

 ⑤^右に曲がり、新都市中央通りを西方向に歩く

みんなの答え

⑥交差点「研究学園駅入口」に到着したか?

[いいえの場合]

 ⑦⑤を続ける

[はいの場合]

 ⑦左に曲がる

 ➇道なりに進む

 ⑨研究学園駅の北出口から構内に入る

 ⑩券売機の前に進む

 ⑪秋葉原までの切符を選択する

 ⑫券売機に1000円札を1枚、100円玉を1枚、50円玉を1枚、10円玉を1枚投入する

 ⑫券売機に1000円札を1枚、100円玉を1枚、50円玉を1枚、10円玉を1枚投入する

 ⑬受渡口から切符を抜き取る

 ⑭改札に向かう

 ⑮切符入れに切符を入れる

 ⑯5歩歩いて改札を通る

 ⑰切符を抜き取る

 ⑱直進し、2番線ホームに向かうエスカレーターに乗る

 ⑲2番線のホームで電車を待つ

 ⑳到着した電車は、快速秋葉原行きか?

 [いいえの場合]

  ㉑⑳に戻る

 [はいの場合]

  ㉑電車に乗る

「道案内」はシンプルかつ意外と難しい�プログラミングのひとつ。何を目印にするのがよいんだろう

31 of 40

プログラムの3つの制御構造

31

順次

順番に次を実行する

繰り返し

何度も戻って繰り返す

分岐

条件によって枝分かれ

32 of 40

まとめ

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

32

33 of 40

実習に続く。

33

34 of 40

去年までの様子

34

35 of 40

35

36 of 40

実習で使う機材「マイクロビット」

36

今年からmicro:bit v2になりました! https://microbit.org/ja/get-started/features/overview/

37 of 40

実習課題

micro:bitを使って�小さなプログラム(アプリケーション)をつくる

  • たのしいものならなんでもOK
  • 研究や生活の役に立つものならGood👍
  • ボタン・コンパス・温度計・LED・スピーカなどなど

37

何が作れるか考えてみよう

38 of 40

おまけ:つくばエキスポセンター

38

実習場所

徒歩2分!

39 of 40

プラネタリウムの番組もプログラムで進行しています

39

40 of 40

プログラムを使った研究を探せ!

40