プログラミング実習 事前講義
稲田和巳 @筑波大学大学院
1
稲田 和巳
2
作ってるものや研究のことは�https://www.nandenjin.com を�みてください
3
本日のおしながき
4
このスライドはあとで見返せるように配布します。
メモを取るときは「画面に書いてないことだけ」でOKです
「プログラム」って何?
5
「プログラム」って何?
6
プログラム
物事の進行について、�順序立てて説明した「手順」
プログラミング
プログラムをつくる作業のこと
え?コンピュータは?
「プログラム」って何?
コンピュータを使わなくても�「プログラム」
7
プログラム
物事の進行について、順序立てて説明した「手順」
どんなときに、なにが、�どんな順番で起こるか?
コンピュータを使わないプログラム:鉄道ダイヤ
どのように運転すれば�滞りなく、安全に走れるか?
予め設計し、それに従って�操縦する
8
画像出典:Wikimedia Commons(Author: K.Kitaguchi、運動会プロテインパワー)
コンピュータを使わないプログラム:郵便配達
どんな手順(道順)で配達すると�無駄なく早く届けられる?
表にしてまとめている
9
出典:NHK「テキシコー」#1 https://www.nhk.or.jp/school/sougou/texico/onair/
では、コンピュータとは何?
10
プログラム
物事の進行について、�順序立てて説明した「手順」
コンピュータ
手順に従って、計算を自動でおこなう機械
= (計算をする)プログラムを� 実行する機械
初期のコンピュータは、人力の計算を肩代わりさせるために作られた
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
自動化
できる
シミュレー�ション
できる
自分で�「つくる」
ができる
コンピュータを使ったプログラミング:自動化
複雑なことや退屈なこと、
プログラムにしてしまえば
何度でも同じように動かせる
13
自動列車運転装置�ATO(Automatic Train Operation)
発車して停車するまでの動きをプログラムし�電車を自動的に走らせる
コンピュータを使ったプログラミング:シミュレーション
実際にできないことでも、�コンピュータと�データを使って正確に試せる
14
コンピュータを使ったプログラミング:自分で作る
さまざまなテクノロジーで、�自分の考えたことを�すぐに「作って試す」できる
15
プログラミングを使った研究あれこれ
16
じゃあ、研究では�どうやって使うの?
プログラミングを使った研究あれこれ
17
宮本知世
18
情報科学が生物学でどのように活躍しているか?
岡村美紀
19
オノマトペからダンスを生成
もっと知りたい:情報学とメディアアート
高校生向け勉強会(先週やった)
20
事前課題のフィードバック
21
問題を見返してみましょう
コンピュータになにかをしてもらうためには、ただ「◯◯をしてほしい」と伝えるのではなく、「どのような動きをどう組み合わせるか」を論理的に伝えなければいけません。
課題ではその練習として、「日常のある場面を、動作に分解する」ことに取り組んでもらいます。
22
問題を見返してみましょう
23
これの何が難しいのか
誰がやっても同じになるように�するのはすごく難しい。
でも、プログラミングは�そういう言葉でしかできないように�なっている……
24
Josh Darnit “Exact Instructions Challenge”
ジョナとエヴァンは、パパにサンドイッチの作り方を�「正確に」教えられるだろうか?
問1: 図書館で本を探して借りる
25
探す
歩き回る
借りる
みんなの答え
問1: 図書館で本を探して借りる
26
1、図書館に行く
2、借りる本がどこにあるか検索をする
3、検索した結果の場所に行く
4、探していた本をとる
5、借りるために受付に行く
6、受付で借りる
7、家に帰る
みんなの答え
問1: 図書館で本を探して借りる
27
①借りたい本のジャンルのコーナーに行く
②借りたい本の筆者名もしくは作品名のコーナーに行く
③本を手に取る
④借りたい本か確認する
⑤③~④を借りたい本の確認が取れるまで繰り返す
⑥借りる ⑦見つからない
⑧司書さんに聞く
みんなの答え
問1: 図書館で本を探して借りる
28
①図書館にいるか
[はいの場合→]
②借りる本を探す
③借りる本が見つかったか
[はいの場合②→]
④図書カードを持って� 職員のところに行く
⑤本と図書カードを渡して� 本を借りる
みんなの答え
[いいえの場合②→]
④‘②に戻る
[いいえの場合→]
②’図書館に行く
③‘①に戻る
問2: 新しく発売された本を図書館で借りる
29
新しい本が発売されたかを調べる
予約する
図書館に借りに行く
みんなの答え
「発売された = 図書館にある」でOK?
なかったときどうしよう?
問2: 部活を始めるまでの動作
30
更衣室に行く
鍵が空いている→更衣室の中で着替える
鍵が空いていない→トイレに行って着替える
グラウンドに出る
コーチがいる→挨拶をする
コーチがいない→コーチが来たら挨拶をする
グラウンドに挨拶をする
みんなの答え
コーチがいないとき、�コーチが来るまで�なにしてよう……
問2: 歯磨き
31
①歯ブラシを手に取る。
②歯磨き粉はある?
[はいの場合→]
③歯磨き粉を歯ブラシにつける。
[いいえの場合→]
③’水を歯ブラシにかける。
④右上を磨く。
⑤左上を磨く。
⑥左下を磨く。
⑦右下を磨く。
みんなの答え
歯ブラシやタオルの�有無もチェックすると�どんどん複雑になる
⑧コップはある?
[はいの場合→]
⑨コップに水を入れる
⑩口に水を入れる
[いいえの場合→]
⑨’手に水をためる
⑩’口に水を入れる
⑪口をゆすぐ
⑫水を吐き捨てる。
⑬タオルで口を拭く。
プログラムの3つの制御構造
32
順次
順番に次を実行する
繰り返し
何度も戻って繰り返す
分岐
条件によって枝分かれ
まとめ
33
実習に続く。
34
去年の様子
35
実習で使う機材「マイクロビット」
36
実習課題
micro:bitを使って�小さなプログラム(アプリケーション)をつくる
37
何が作れるか考えてみよう