プログラミング実習 事前講義
稲田和巳 @筑波大学大学院
1
稲田 和巳
2
作ってるものや研究のことは�https://www.nandenjin.com を�みてください
本日のおしながき
3
このスライドはあとで見返せるように配布します。
メモを取るときは「画面に書いてないことだけ」でOKです
「プログラム」って何?
4
「プログラム」って何?
5
プログラム
物事の進行について、�順序立てて説明した「手順」
プログラミング
プログラムをつくる作業のこと
え?コンピュータは?
「プログラム」って何?
コンピュータを使わなくても�「プログラム」
6
プログラム
物事の進行について、順序立てて説明した「手順」
どんなときに、なにが、�どんな順番で起こるか?
では、コンピュータとは何?
7
プログラム
物事の進行について、�順序立てて説明した「手順」
コンピュータ
手順に従って、計算を自動でおこなう機械
= (計算をする)プログラムを� 実行する機械
初期のコンピュータは、人力の計算を肩代わりさせるために作られた
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
自動化
できる
シミュレー�ション
できる
自分で�「つくる」
ができる
コンピュータを使ったプログラミング:自動化
複雑なことや退屈なこと、
プログラムにしてしまえば
何度でも同じように動かせる
10
自動列車運転装置�ATO(Automatic Train Operation)
発車して停車するまでの動きをプログラムし�電車を自動的に走らせる
コンピュータを使ったプログラミング:シミュレーション
実際にできないことでも、�コンピュータと�データを使って正確に試せる
11
コンピュータを使ったプログラミング:自分で作る
さまざまなテクノロジーで、�自分の考えたことを�「作って試す」ができる
12
プログラム・コンピュータで「つくる」ということ
橋本麦&ノガミカツキによるgroup_inou『eye』ミュージックビデオ
13
14
15
プログラミングは道具。まだ見たこともない景色にたどり着く手段になるかもしれない
プログラミングを使った研究あれこれ
16
じゃあ、研究では�どうやって使うの?
プログラミングはさまざまな分野と関わり続けている
――情報学は数学や統計学と同様に、独立した学問であると同時に�メタサイエンス(諸科学全体を覆うサイエンス)の側面を�有している。�メタサイエンス:他の分野にも組み合わせて活用できる学問のこと
――常に他の専門分野との接点において�新しい領域情報学が生まれている。
17
日本学術会議 - 大学教育の分野別質保証のための教育課程編成上の参照基準(情報学分野)
どんな分野の研究でも、プログラミングを使ったあたらしい工夫ができる
宮本知世
18
大学院 博士前期課程2年 生物系�情報科学が生物学でどのように活躍しているか?
もっと知りたい:情報学とメディアアート
高校生向け勉強会(去年の資料)
19
事前課題のフィードバック
20
問題を見返してみましょう
コンピュータになにかをしてもらうためには、ただ「◯◯をしてほしい」と伝えるのではなく、「どのような動きをどう組み合わせるか」を論理的に伝えなければいけません。
課題ではその練習として、「日常のある場面を、動作に分解する」ことに取り組んでもらいます。
21
問題を見返してみましょう
22
これの何が難しいのか
誰がやっても同じになるように�するのはすごく難しい。
でも、プログラミングは�そういう言葉でしかできないように�なっている……
23
Josh Darnit “Exact Instructions Challenge”
ジョナとエヴァンは、パパにサンドイッチの作り方を�「正確に」教えられるだろうか?
問1: 図書館で本を探して借りる
24
図書館に行く�本を探す
本を借りる
みんなの答え
問1: 図書館で本を探して借りる
25
①図書館へ行く
②借りる本を探す
③本を抜く
④カウンターへ持って行く
⑤利用者カードを出す
⑥本を受け取る
⑦袋に入れる
⑧持ち帰る
みんなの答え
問1: 図書館で本を探して借りる
26
①借りたい本のジャンルのコーナーに行く
②借りたい本の筆者名もしくは作品名のコーナーに行く
③本を手に取る
④借りたい本か確認する
⑤③~④を借りたい本の確認が取れるまで繰り返す
⑥借りる ⑦見つからない
⑧司書さんに聞く
みんなの答え
問1: 図書館で本を探して借りる
27
1 地図を見る
2 目的の本がある場所を見つける(見つかるまで探す)
3その場所へ向かう
4 目的の本を探し、見つけたら手に取る
5 目的の本か確認する
目的の本である 工程6へ
目的の本ではない その本を戻して工程4に戻る
みんなの答え
6 受付に本を持っていく
7 図書カードと借りたい本を渡す
8 貸出の処理をしてもらい、本と図書カードを返してもらう
9完了
問2: 水を飲む
28
コップを見つける
ペットボトルを探して持ってくる
キャップを開けて、机に置く
ペットボトルを傾けて水をコップに入れる
キャップをとって閉める
コップを持つ
水を飲む
みんなの答え
コップが机の上にあるか�やや不安になってきた……
問2: 登校する
29
家を出る
エレベーターまで歩く
エレベーターの下矢印のボタンを押す
エレベーターを待つ
エレベーターに乗る
一階のボタンを押す
一階に着いたらエレベーターから降りる
マンションを出る
バス停まで歩く
バスを待つ
みんなの答え
バスに乗る
定期を読み取り機械にかざす
席に座るまたは立っている
降りるボタンを押す
停車したら読み取り機械に定期をかざす
バスから降りる
学校まで歩く
「いつやるのか」が�あると良いね
問2: 地図と測量の科学館」から移動して、研究学園駅で快速秋葉原行きの電車に乗る
30
①「地図と測量の科学館」を出る
②「地図と測量の科学館」正門から向かって正面の横断歩道を渡る
③セブンイレブンつくば西平塚店の脇を直進し、自動車道「取手つくば線」の横の歩道を、道なりに歩き続ける
④正面に、スーパーマーケット「トリセン研究学園店」が見えたか?
[いいえの場合]
⑤そのまま道なりに歩き続ける
[はいの場合]
⑤^右に曲がり、新都市中央通りを西方向に歩く
みんなの答え
⑥交差点「研究学園駅入口」に到着したか?
[いいえの場合]
⑦⑤を続ける
[はいの場合]
⑦左に曲がる
➇道なりに進む
⑨研究学園駅の北出口から構内に入る
⑩券売機の前に進む
⑪秋葉原までの切符を選択する
⑫券売機に1000円札を1枚、100円玉を1枚、50円玉を1枚、10円玉を1枚投入する
⑫券売機に1000円札を1枚、100円玉を1枚、50円玉を1枚、10円玉を1枚投入する
⑬受渡口から切符を抜き取る
⑭改札に向かう
⑮切符入れに切符を入れる
⑯5歩歩いて改札を通る
⑰切符を抜き取る
⑱直進し、2番線ホームに向かうエスカレーターに乗る
⑲2番線のホームで電車を待つ
⑳到着した電車は、快速秋葉原行きか?
[いいえの場合]
㉑⑳に戻る
[はいの場合]
㉑電車に乗る
「道案内」はシンプルかつ意外と難しい�プログラミングのひとつ。何を目印にするのがよいんだろう
プログラムの3つの制御構造
31
順次
順番に次を実行する
繰り返し
何度も戻って繰り返す
分岐
条件によって枝分かれ
まとめ
32
実習に続く。
33
去年までの様子
34
35
実習で使う機材「マイクロビット」
36
今年からmicro:bit v2になりました! https://microbit.org/ja/get-started/features/overview/
実習課題
micro:bitを使って�小さなプログラム(アプリケーション)をつくる
37
何が作れるか考えてみよう
おまけ:つくばエキスポセンター
38
実習場所
徒歩2分!
プラネタリウムの番組もプログラムで進行しています
39
プログラムを使った研究を探せ!
40