論理思考とプログラミング 第2回-1時限目 › ~skk › lt2009f › material › 02...

29
Logical Thinking and Programming 論理思考とプログラミング 2回-1時限目 制御構造を理解する

Transcript of 論理思考とプログラミング 第2回-1時限目 › ~skk › lt2009f › material › 02...

Page 1: 論理思考とプログラミング 第2回-1時限目 › ~skk › lt2009f › material › 02 › 02.pdf · 論理思考とプログラミング 第2回 Author: Manabu Sugiura

●●● Logical Thinking and Programming

論理思考とプログラミング第2回-1時限目

制御構造を理解する

Page 2: 論理思考とプログラミング 第2回-1時限目 › ~skk › lt2009f › material › 02 › 02.pdf · 論理思考とプログラミング 第2回 Author: Manabu Sugiura

Logical Thinking

Logical Thinking and Programming ●●●

前回授業の復習

授業情報

プログラミングの全体像

Squeak のインストール

Squeak の基礎勉強

Page 3: 論理思考とプログラミング 第2回-1時限目 › ~skk › lt2009f › material › 02 › 02.pdf · 論理思考とプログラミング 第2回 Author: Manabu Sugiura

Logical Thinking

Logical Thinking and Programming ●●●

前回授業の復習

授業情報

Webhttp://www.ht.sfc.keio.ac.jp/~skk/lt2009f/

SFSからたどれます。

教材や配布資料が閲覧できる

授業で使うソフトウェアがダウンロードできる

メール

スタッフ用メーリングリスト[email protected]

クラス用メーリングリスト[email protected]

Page 4: 論理思考とプログラミング 第2回-1時限目 › ~skk › lt2009f › material › 02 › 02.pdf · 論理思考とプログラミング 第2回 Author: Manabu Sugiura

Logical Thinking

Logical Thinking and Programming ●●●

前回授業の復習

プログラミングの全体像

プログラミングの全体像を知り,一通りの体験をした

要求分析-アイディアを明確にする

設計-実現する方法をきめる

実装-プログラムを書く(前半はSqueak 後半はJava)

あれをこうして,

次にこれをして,

最後にあれをこうする.

テスト-プログラムが意図通り出来上がったか確かめる(必要があれば前の工程に戻る)

Page 5: 論理思考とプログラミング 第2回-1時限目 › ~skk › lt2009f › material › 02 › 02.pdf · 論理思考とプログラミング 第2回 Author: Manabu Sugiura

Logical Thinking

Logical Thinking and Programming ●●●

前回授業の復習

Squeak のインストール

「ことだま on Squeak」は必ず授業のページからダウンロードすることテキストに書いてあるURLからダウンロードしないこと

授業ページのものは,授業で利用する部品がすでに組み込まれています.

ダウンロード方法

http://www.ht.sfc.keio.ac.jp/~skk/lt2009f/にアクセス

「Squeak編教材>ことだま on Squeak」の「Mac用のダウンロード」からダウンロード

Page 6: 論理思考とプログラミング 第2回-1時限目 › ~skk › lt2009f › material › 02 › 02.pdf · 論理思考とプログラミング 第2回 Author: Manabu Sugiura

Logical Thinking

Logical Thinking and Programming ●●●

前回授業の復習

Squeak の基礎勉強

Squeak を使う上で必要な,キーワード

オブジェクト,フラップ,ハロ,プロジェクト,お絵かきツール,ワールドメニュー,保存

Project 2

命令,繰り返し,順次実行,ビューアー,命令タイル,スクリプト,カテゴリ,方向,重心,刻み値

覚えてますか?

Page 7: 論理思考とプログラミング 第2回-1時限目 › ~skk › lt2009f › material › 02 › 02.pdf · 論理思考とプログラミング 第2回 Author: Manabu Sugiura

Logical Thinking

Logical Thinking and Programming ●●●

今日の授業の流れ

1時限目講義

Squeak 使用時の注意点まとめ:Squeakにおけるオブジェクト1時限目の演習範囲の解説

演習Project3 車を道に沿って走らせてみよう<会話部分のみ>

2時限目講義まとめ:制御構造2時限目の演習範囲の解説

演習Project3 車を道に沿って走らせてみよう<練習問題>

Page 8: 論理思考とプログラミング 第2回-1時限目 › ~skk › lt2009f › material › 02 › 02.pdf · 論理思考とプログラミング 第2回 Author: Manabu Sugiura

Logical Thinking

Logical Thinking and Programming ●●●

配布資料

第2回演習チェックシート

Page 9: 論理思考とプログラミング 第2回-1時限目 › ~skk › lt2009f › material › 02 › 02.pdf · 論理思考とプログラミング 第2回 Author: Manabu Sugiura

Logical Thinking

Logical Thinking and Programming ●●●

Squeak 使用時の注意点

Squeak はとてももろいので,いくつか注意しておいた方が良いことがあります.こまめにセーブする.

「ちくたく」は動かしっぱなしにしない.オブジェクトを使い終わったら必ず止める.

壊れると?ダウンロードから再度行う必要があります.

不安ならば、Squeak.image のバックアップを時々取っておくとよいでしょう.

授業ウェブに「不具合情報」をまとめた pdf があるので、気になる人は参考に。

Page 10: 論理思考とプログラミング 第2回-1時限目 › ~skk › lt2009f › material › 02 › 02.pdf · 論理思考とプログラミング 第2回 Author: Manabu Sugiura

Logical Thinking

Logical Thinking and Programming ●●●

バックアップの取り方

次の通りにフォルダを開いていく

「Squeak」 -> 「Internet」

Internet フォルダの中で「backup」という新規のディレクトリを作る.

同じフォルダにある,「Squeak.image」というファイルの複製を作成し,backup フォルダの中にコピーする.

Page 11: 論理思考とプログラミング 第2回-1時限目 › ~skk › lt2009f › material › 02 › 02.pdf · 論理思考とプログラミング 第2回 Author: Manabu Sugiura

Logical Thinking

Logical Thinking and Programming ●●●

1時限目の目標

「場合分け」タイルを使った,「分岐」のあるプログラムの書き方を習得する

Page 12: 論理思考とプログラミング 第2回-1時限目 › ~skk › lt2009f › material › 02 › 02.pdf · 論理思考とプログラミング 第2回 Author: Manabu Sugiura

Logical Thinking

Logical Thinking and Programming ●●●

まとめ:Squeakにおけるオブジェクト

Squeakで扱うことができるモノの単位

ハロが表示できる

名前,見た目(画像),プログラム等を持つことができる

Squeakの1画面(ワールド)も1つのオブジェクト

ワールドもオブジェクトなので,ハロを表示させることができる

Page 13: 論理思考とプログラミング 第2回-1時限目 › ~skk › lt2009f › material › 02 › 02.pdf · 論理思考とプログラミング 第2回 Author: Manabu Sugiura

Logical Thinking

Logical Thinking and Programming ●●●

講師によるデモ

第2回 > Project3 > 3.1

第2回 > Project3 > 3.2

第2回 > Project3 > 3.3

第2回 > Project3 > 3.4

第2回 > Project3 > 3.1 第2回 > Project3 > 3.2 第2回 > Project3 > 3.3 第2回 > Project3 > 3.4

Page 14: 論理思考とプログラミング 第2回-1時限目 › ~skk › lt2009f › material › 02 › 02.pdf · 論理思考とプログラミング 第2回 Author: Manabu Sugiura

Logical Thinking

Logical Thinking and Programming ●●●

1時限目の演習範囲

Project3 車を道に沿って走らせてみよう

テキストの範囲

P.39~P.53

指定問題

やってみよう No.3-1(P.42)

やってみよう No.3-5(P.45)

やってみよう No.3-6(P.48)

Page 15: 論理思考とプログラミング 第2回-1時限目 › ~skk › lt2009f › material › 02 › 02.pdf · 論理思考とプログラミング 第2回 Author: Manabu Sugiura

●●● Logical Thinking and Programming

論理思考とプログラミング第2回-2時限目

制御構造を理解する

Page 16: 論理思考とプログラミング 第2回-1時限目 › ~skk › lt2009f › material › 02 › 02.pdf · 論理思考とプログラミング 第2回 Author: Manabu Sugiura

Logical Thinking

Logical Thinking and Programming ●●●

2時限目の目標

「順次」「分岐」「繰り返し」の「制御構造」の性質と「ことだま on Squeak」における表現方法を理解する

「場合分け」タイルを使った「分岐」のあるプログラムを考案できるようになる

Page 17: 論理思考とプログラミング 第2回-1時限目 › ~skk › lt2009f › material › 02 › 02.pdf · 論理思考とプログラミング 第2回 Author: Manabu Sugiura

Logical Thinking

Logical Thinking and Programming ●●●

まとめ:制御構造

基本的な3つの制御構造(順次,分岐,繰り

返し)を組み合わせて,どんなアルゴリズムでも組み立てられる

順次 分岐 繰り返し

命令A

命令B

はじめ

おわり

命令A 命令B

はじめ

おわり

何かを調べて

Yes No

繰り返したい命令

はじめ

おわり

何かを調べて(繰り返すか)

Yes

No

Page 18: 論理思考とプログラミング 第2回-1時限目 › ~skk › lt2009f › material › 02 › 02.pdf · 論理思考とプログラミング 第2回 Author: Manabu Sugiura

Logical Thinking

Logical Thinking and Programming ●●●

Squeakにおける制御構造

順次 分岐

繰り返し 繰り返しはチクタク繰り返しの停止はポーズで表現する

命令A

命令B

はじめ

おわり

命令A 命令B

はじめ

おわり

何かを調べて

Yes No

繰り返したい命令

はじめ

おわり

何かを調べて(繰り返すか)

Yes

No

Page 19: 論理思考とプログラミング 第2回-1時限目 › ~skk › lt2009f › material › 02 › 02.pdf · 論理思考とプログラミング 第2回 Author: Manabu Sugiura

Logical Thinking

Logical Thinking and Programming ●●●

制御構造の組み合わせ

複雑な処理を記述する場合は3つの制御構造を入れ子状に組み合わせる

どの制御構造も処理の入り口が1つで,出口も1つなので可能

詳しくは第5回で解説

命令Aを入り口1つ,出口1つの箱として,入り口1

つ,出口1つの分岐構造に置き換えることが可能

命令A命令X 命令Y

何かを調べて

Yes No

Page 20: 論理思考とプログラミング 第2回-1時限目 › ~skk › lt2009f › material › 02 › 02.pdf · 論理思考とプログラミング 第2回 Author: Manabu Sugiura

Logical Thinking

Logical Thinking and Programming ●●●

組み合わせの例1

順次の「命令A」と「命令B」を「分岐の制御構造」に置き換え(入れ子)にする

場合分けタイルを2つ並べた例

命令A

命令B

はじめ

おわり

命令P 命令Q

はじめ

何かを調べて

Yes No

命令R 命令S

おわり

何かを調べて

Yes No

Page 21: 論理思考とプログラミング 第2回-1時限目 › ~skk › lt2009f › material › 02 › 02.pdf · 論理思考とプログラミング 第2回 Author: Manabu Sugiura

Logical Thinking

Logical Thinking and Programming ●●●

組み合わせの例2

「分岐」の「命令A」と「命令B」を「分岐の制御構造」に置き換え(入れ子)にする

場合分けタイルを入れ子にした例

命令A 命令B

はじめ

おわり

何かを調べて

Yes No

はじめ

おわり

何かを調べてYes No

命令C 命令D

何かを調べて

Yes No

命令E 命令F

何かを調べて

Yes No

Page 22: 論理思考とプログラミング 第2回-1時限目 › ~skk › lt2009f › material › 02 › 02.pdf · 論理思考とプログラミング 第2回 Author: Manabu Sugiura

Logical Thinking

Logical Thinking and Programming ●●●

組み合わせの例3

「繰り返し」の「繰り返したい命令」を「分岐の制御構造」に置き換え(入れ子)にする

「ことだま on Squeak」では「繰り返し構造」の中に「繰り返し構造」を入れることはできません

Javaでは可能です(詳しくは第8回で扱います)

繰り返し構造の中に分岐を入れた例

繰り返したい命令

はじめ

おわり

何かを調べて(繰り返すか)

Yes

No

はじめ

おわり

何かを調べて(繰り返すか)

Yes

No

命令A 命令B

何かを調べて

Yes No

Page 23: 論理思考とプログラミング 第2回-1時限目 › ~skk › lt2009f › material › 02 › 02.pdf · 論理思考とプログラミング 第2回 Author: Manabu Sugiura

Logical Thinking

Logical Thinking and Programming ●●●

2時限目の演習範囲

Project3 車を道に沿って走らせてみよう

テキストの範囲

P.39~P.53

指定問題

練習問題 3.1(P.51)

練習問題 3.2(P.51)

練習問題 3.3(P.52)

発展問題

練習問題 3.4(P.52)

Page 24: 論理思考とプログラミング 第2回-1時限目 › ~skk › lt2009f › material › 02 › 02.pdf · 論理思考とプログラミング 第2回 Author: Manabu Sugiura

●●● Logical Thinking and Programming

以下、参考

Page 25: 論理思考とプログラミング 第2回-1時限目 › ~skk › lt2009f › material › 02 › 02.pdf · 論理思考とプログラミング 第2回 Author: Manabu Sugiura

Logical Thinking

Logical Thinking and Programming ●●●

バックアップの取り方

CNS_HOMEDIR→Squeak→Internet

Page 26: 論理思考とプログラミング 第2回-1時限目 › ~skk › lt2009f › material › 02 › 02.pdf · 論理思考とプログラミング 第2回 Author: Manabu Sugiura

Logical Thinking

Logical Thinking and Programming ●●●

バックアップの取り方

新規フォルダを作成する

右クリックでメニューを出す

Page 27: 論理思考とプログラミング 第2回-1時限目 › ~skk › lt2009f › material › 02 › 02.pdf · 論理思考とプログラミング 第2回 Author: Manabu Sugiura

Logical Thinking

Logical Thinking and Programming ●●●

バックアップの取り方

backup フォルダを作成

Backup というフォルダを作成する

Page 28: 論理思考とプログラミング 第2回-1時限目 › ~skk › lt2009f › material › 02 › 02.pdf · 論理思考とプログラミング 第2回 Author: Manabu Sugiura

Logical Thinking

Logical Thinking and Programming ●●●

バックアップの取り方

Squeak.imageの複製を作成

「複製」を選択する

Page 29: 論理思考とプログラミング 第2回-1時限目 › ~skk › lt2009f › material › 02 › 02.pdf · 論理思考とプログラミング 第2回 Author: Manabu Sugiura

Logical Thinking

Logical Thinking and Programming ●●●

バックアップの取り方

Squeak.imageのコピー.image をコピー

「Squeakのコピー.image」をbackup フォルダにドラッグアンドドロップする