1 of 37

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

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

1

2 of 37

稲田 和巳

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

2

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

3 of 37

3

4 of 37

本日のおしながき

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

4

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

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

5 of 37

「プログラム」って何?

5

6 of 37

「プログラム」って何?

6

プログラム

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

プログラミング

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

え?コンピュータは?

7 of 37

「プログラム」って何?

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

  • 運動会や学芸会とか

7

プログラム

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

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

8 of 37

コンピュータを使わないプログラム:鉄道ダイヤ

どのように運転すれば�滞りなく、安全に走れるか?

予め設計し、それに従って�操縦する

8

画像出典:Wikimedia Commons(Author: K.Kitaguchi、運動会プロテインパワー)

9 of 37

コンピュータを使わないプログラム:郵便配達

どんな手順(道順)で配達すると�無駄なく早く届けられる?

表にしてまとめている

9

出典:NHK「テキシコー」#1 https://www.nhk.or.jp/school/sougou/texico/onair/

10 of 37

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

10

プログラム

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

コンピュータ

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

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

11 of 37

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

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)

12 of 37

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

12

自動化

できる

シミュレー�ション

できる

自分で�「つくる」

ができる

13 of 37

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

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

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

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

13

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

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

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

14 of 37

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

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

14

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

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

https://youtu.be/6Pkzjm75KnU

15 of 37

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

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

15

“The Floppotron”

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

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

16 of 37

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

16

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

17 of 37

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

  • 宮本知世
    • みやもと・ちせ
    • 大学院 博士前期課程1年 生物系
  • 岡村美紀
    • おかむら・みき
    • 大学院 博士前期課程1年 情報系

17

18 of 37

宮本知世

18

情報科学が生物学でどのように活躍しているか?

19 of 37

岡村美紀

19

オノマトペからダンスを生成

20 of 37

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

高校生向け勉強会(先週やった)

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

20

21 of 37

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

21

22 of 37

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

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

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

22

23 of 37

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

23

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

24 of 37

これの何が難しいのか

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

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

24

Josh Darnit “Exact Instructions Challenge”

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

https://youtu.be/cDA3_5982h8

25 of 37

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

25

探す

歩き回る

借りる

みんなの答え

26 of 37

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

26

1、図書館に行く

2、借りる本がどこにあるか検索をする

3、検索した結果の場所に行く

4、探していた本をとる

5、借りるために受付に行く

6、受付で借りる

7、家に帰る

みんなの答え

27 of 37

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

27

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

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

③本を手に取る

④借りたい本か確認する

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

⑥借りる    ⑦見つからない

        ⑧司書さんに聞く

みんなの答え

28 of 37

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

28

①図書館にいるか

[はいの場合→]

②借りる本を探す

③借りる本が見つかったか

[はいの場合②→]

④図書カードを持って� 職員のところに行く

⑤本と図書カードを渡して� 本を借りる

みんなの答え

[いいえの場合②→]

④‘②に戻る

[いいえの場合→]

②’図書館に行く

③‘①に戻る

29 of 37

問2: 新しく発売された本を図書館で借りる

29

新しい本が発売されたかを調べる

予約する

図書館に借りに行く

みんなの答え

「発売された = 図書館にある」でOK?

なかったときどうしよう?

30 of 37

問2: 部活を始めるまでの動作

30

更衣室に行く

鍵が空いている→更衣室の中で着替える

鍵が空いていない→トイレに行って着替える

グラウンドに出る

コーチがいる→挨拶をする

コーチがいない→コーチが来たら挨拶をする

グラウンドに挨拶をする

みんなの答え

コーチがいないとき、�コーチが来るまで�なにしてよう……

31 of 37

問2: 歯磨き

31

①歯ブラシを手に取る。

②歯磨き粉はある?

[はいの場合→]

③歯磨き粉を歯ブラシにつける。

[いいえの場合→]

③’水を歯ブラシにかける。

④右上を磨く。

⑤左上を磨く。

⑥左下を磨く。

⑦右下を磨く。

みんなの答え

歯ブラシやタオルの�有無もチェックすると�どんどん複雑になる

⑧コップはある?

[はいの場合→]

⑨コップに水を入れる

⑩口に水を入れる

[いいえの場合→]

⑨’手に水をためる

⑩’口に水を入れる

⑪口をゆすぐ

⑫水を吐き捨てる。

⑬タオルで口を拭く。

32 of 37

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

32

順次

順番に次を実行する

繰り返し

何度も戻って繰り返す

分岐

条件によって枝分かれ

33 of 37

まとめ

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

33

34 of 37

実習に続く。

34

35 of 37

去年の様子

35

36 of 37

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

36

37 of 37

実習課題

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

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

37

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