cs-10. Python プログラミングの基本
(コンピューターサイエンス)
URL: https://www.kkaneko.jp/cc/cs/index.html
1
金子邦彦
①プログラミングの基礎概念:オブジェクト、
メソッド、引数、変数、代入
実践的な演習CodeCombatを用いたPython
プログラミングの演習.タートルグラフィック
スを使った図形描画の演習
プログラミングの楽しさと達成感.プログ
ラミングのクリエイティブな側面を体験
プログラミングの基本的な知識とスキルの
習得(モジュールのインポート、オブジェクト
生成、メソッドの使用など)
2
アウトライン
1. Python プログラミングの基礎
2. コードコンバットを用いたプロ
グラミング演習
3. オブジェクト,メソッド
4. プログラミングの楽しさと達成
3
プログラミング
プログラミング人間の力を増幅し、私たちができること
を大幅に広げる
プログラミングはさまざまな分野で活用されている
シミュレーション:複雑な現象をモデル化し、予測や
分析を行います
大量データ処理:データの収集、加工、分析
AIシステムの開発
Webサイト,アプリケーションなどのソフトウェア
プログラミングはクリエイティブな行為
さまざまな作業を自動化したいとき、問題解決したいとき
にも役立つ
4
プログラミングの楽しさと達成
楽しさ
未来の技術を学ぶことは楽しい。
プログラミングは自分のアイデアを形にできるクリエイ
ティブな行為。
視覚的なプログラムを書くことで、ゲーム感覚をもって
楽しみながら学習することも可能。
達成感
プログラミングを通じて問題解決のスキルを身につける
ことは、大きな達成感につながる
新しいソフトウェアや技術を生み出す。
5
プログラミングの基礎
本講義では、プログラミングの基礎として以下の内容を説明
オブジェクトとメソッド、引数、変数、代入
本資料で説明
クラス、条件分岐、繰り返し、リスト、パッケージ
今後の講義で説明予定
6
10-1. Python プログラミン
グの基礎
7
変数,代入
変数:プログラム内で名前を付けて利用するオブジェ
クトで,値を保存し,後から参照できる
代入:「x = 100」のように書くことで,x という名前
の変数に、値 100 が保存される
8
x = 100
オブジェクトとメソッド
オブジェクト:コンピュータでの操作や処理の対象と
なるもの
メソッド: オブジェクトに属する機能や操作.オブジェ
クトがもつ能力に相当する
引数:メソッドが行う操作の詳細に関する情報.
ソッド呼び出しのときに、引数を指定できる
t.goto(0,100)
9
t.goto(0,100) t オブジェクト
goto(0,100) メソッド
間を「.」で区切っている
引数
10-2. コードコンバット
Code Combat)を用いた
プログラミング演習
10
コードコンバット
コードコンバットCodeCombat)では、ゲームをクリ
アするために必要なプログラムを書くことで、Python
基本を楽しく学ぶことができる
11
コードコンバットの授業の範囲
無料、クラスコード無し:
Python 5つのレベルのゲームなど 授業の範囲内
有料(会員登録):
500以上のレベル
興味のある人のみ(各自の判断)
無料、クラスコードあり:
Python のより多くのレベルのゲーム
(各自で、名前、メールアドレス等の登録が必要です)
挑戦は、興味のある人の自習とします(各自の判断)
12
この授業では,会員登録しない、クラスコード
も使わないとして説明する
コードコンバットの最初の5つのレベルの
トピックス
オブジェクトメソッド
hero.moveDown()
hero オブジェクト
moveDown() メソッド
文字列"(ダブルクォーテーション)または'(シン
グルクォーテーション)で囲む
メソッド呼び出しでは,引数を指定できる
hero.attack("fence", 36, 26)
hero.attack(enemy1)
13
オブジェクトとメソッド
14
オブジェクトとメソッド
Python プログラム)
実行画面
オブジェクトが動く
オブジェクトとメソッド
15
オブジェクトとメソッド
Python プログラム)
実行画面
オブジェクトが動く
引数
16
オブジェクトとメソッド
Python プログラム)
実行画面
オブジェクトが動く
引数がある場合もあれば,
ない場合もある.
演習
プログラミングを行う
内容
プログラミング学習サイト
CodeCombat 無料の機能、クラス
コード無しで、各自、プログラミ
ングを行う
トピックス
オブジェクト
メソッド
引数
文字列
17
Web ブラウザを使う
https://codecombat.com
18
「課金のメッセージ」などで心配なことが
あるときは,無理に使い続けないこと
課金のメッセージの例
「私は学生です」をクリック
日本語」になっていない場合には,日本語に変える
アカウント登録やログインは行わないことにする
19
クラスコードを持っているか
今すぐプレイ」をクリック
20
キースガードのダンジョンを選んでみる。
「ゲームスタート」をクリック
21
「キースガードのダンジョン」の最初の
ダンジョンを選ぶ
22
最初のダンジョン
ゴール
音声が出るので、このとき、各自で「音量」を調整
「ゲームスタート」をクリッ
23
Python(デフォルト)」を選び、「次
へ」をクリック
24
使用可能なアイテムを選ぶ(ダブルク
リック
25
⑧「ゲームスタート」をクリッ
26
「レベルスタート」をクリッ
27
ヒントを見たいときは、「ヒント」を
クリック
28
但し,英語で表示される場合があります.
翻訳が完全でないためです.設定の不備ではありません.
メソッドの説明を見たいときは、「メソッ
ド」のリストの中から、説明を見たいメ
ソッドをクリック
29
但し,英語で表示される場合があります.
翻訳が完全でないためです.設定の不備ではありません.
編集画面で、試しに、
hero.moveDown()」と追加して、「実行
をクリック
30
「実行」で,キャラクタが動くので確認
する
hero.moveRight() 右に動きhero.moveDown()
下に動く
31
迷ったら,「ミッション(目標)」や
「ヒント」を確認する
プログラミングの練習だけでなく,ゲーム要素
(パズル)もある.楽しんで解く.
ヒントや説明が,英語で表示される場合がある
32
すべての
目標達成
を目指す
⑫「目標:成功!」になるまで、編集画面を
書き換えて、「実行」を繰り返す。
成功したら、「完了」をクリック
33
完了の確認.「続ける」をクリック
34
続けてみる
赤い旗を選択できる
有料のものもある
35
赤い旗をたどる
青い旗はクリア済み
「(ロック)」と表示される
場合は有料
36
新しい装備が増える場合がある
ダブルクリックして装備
37
無料で、クラスコードを使わずに、Python
5つのレベルを学ぶことができる
(続きは有料となる.詳しくは次ページ)
38
次のことは、各自の判断とする(このことは、授業の成績に
関係しない。)
1.CODECOMBATプレミアムへの登録(有料)し,ゲーム
を続ける
2.セレッソの記載のクラスコードで,本格的に使う(無料
で学んでいけます)
私は学生です
セレッソのクラスコードを
入れる
メールアドレスなどの登録が必要.
ユーザ名,パスワードは自分で決める
10-3. オブジェクト,メ
ソッド
39
オブジェクトとメソッド
オブジェクト:コンピュータでの操作や処理の対象と
なるもの
メソッド: オブジェクトに属する機能や操作.オブジェ
クトがもつ能力に相当する
引数:メソッドが行う操作の詳細に関する情報.
ソッド呼び出しのときに、引数を指定できる
t.goto(0,100)
40
t.goto(0,100) t オブジェクト
goto(0,100) メソッド
間を「.」で区切っている
引数
タートルグラフィックス
カーソルを使って絵を描く
タートルグラフィックスを用いた演習により、プログラム
によって図形を描画する.それを通して、プログラムの
作を視覚的に理解
論理的思考力や課題解決力の向上にもつながる
41
(, 0)
(, 100)
(100, 0)
タートルグラフィックスの機能をインポー
トする「import turtle」が必要
タートルグラフィックス入門
主なメソッド
goto(<横方向の値>,<縦方向の値> 移動
forward(<移動量>) 前進
backword(<移動量>) 後退
right(<角度>) 右回りに回転
left(<角度>) 左回りに回転
42
メソッド
オブジェクト
メソッドは、オブジェクト
が持つ機能を呼び出すため
のもの
goto」は指定した座標へ
の移動
オブジェクトとメソッド
43
オブジェクトが動く
import turtle
t = turtle.Turtle()
t.goto(0,100)
インポート
オブジェクト生成。t へのセット。
(0, 100) への移動
実行結果
(0, 100)
(0, 0)
最初の位置は
(0, 0)
オブジェクトとメソッド
44
import turtle
t = turtle.Turtle()
t.goto(0,100)
t.goto(100,0)
インポート
オブジェクト生成。t へのセット。
(0, 100) への移動
(100, 0) への移動
実行結果
(100, 0)
(0, 100)
(0, 0)
最初の位置は
(0, 0)
オブジェクトが動く
45
亀(タール)
の最初の位置
(0, 0)
(プラスの数, 0)
(マイナスの数, 0)
(0, プラスの数)
(0, マイナスの数)
メソッド goto の引数となる
縦方向の値と,横方向の値
trinket
Trinket オンライン PythonHTML 等の学習サイト
有料の機能と無料の機能がある
自分が作成した Python プログラムを公開し、他の人に実
行してもらうことが可能(そのとき、書き替えて実行も可
能)
Python の標準機能を登載、その他、次のモジュールや
パッケージがインストール済み
math, matplotlib.pyplot, numpy, operator, processing, pygal,
random, re, string, time, turtle, urllib.request
46
trinket Python, HTML などのプログラムを書き実行できる
サイト
https://trinket.io/python/cdc4896571
のように、違うプログラムには違う URL が割り当てられる
実行が開始しないときは、「実行ボタン」で実行
ソースコードを書き替えて再度実行することも可能
trinket でのプログラム実行
47
ソースコードの
メイン画面
実行結果
実行、STOP ボタン
演習.タートルグラフィッ
クス
48
import turtle
t = turtle.Turtle()
t.goto(0,100)
t.goto(100,0)
49
ライブラリのインポート
オブジェクト生成。t へのセット。
(0, 100) への移動
(100, 0) への移動
実行結果
(100, 0)
(0, 100)
(0, 0)
最初の位置は
(0, 0)
trinket の次のページを開く
https://trinket.io/python/f29bfe71cd
実行結果が,次のように表示されることを確認
50
実行が開始しないときは、「実行ボタン」で実行
ソースコードを書き替えて再度実行することも可能
実行、STOP ボタン
次のように書き換えて再実行し、結果が変わる
ことを確認
51
実行、STOP ボタン
書き換え
52
亀の最初の位
置は (0, 0)
(プラスの数, 0)
(マイナスの数, 0)
(0, プラスの数)
(0, マイナスの数)
次を参考に、自分で引数を書き替えたり、プロ
グラム内にt.goto(<引数>)」を増やして思い通
りの図形を目指す。
ここまでのまとめ
変数:プログラム内で名前を付けて値を保存し参照できる
オブジェクト
オブジェクト:コンピュータでの操作や処理の対象となる
ものである.
メソッドオブジェクトが持つ機能や操作を表すもの.
: t.goto(100,0)では t はオブジェクトgoto はメソッド
引数:メソッドには,操作の詳細を指定するための引数を
設定できる.
例:t.goto(100,0) では、引数は「100,0
Python では,インデントを適切に使用する.
プログラムの修正や改良を繰り返し行うことで,目的の動
作を実現できる.
53
10-4. プログラミングの
楽しさと達成感
54
55
ソースコードは,プログラミ
ング言語で書かれたプログラ
のもの
人間も読み書き編集できる
ソースコードにより,プログ
ラムの動作を理解し,必要に
応じて改変できる
ソースコード
演習
図形のバリエーション
56
別のプログラムを試す.trinket の次のページを
開く
https://trinket.io/python/035810ce8d49
実行結果が,次のように表示されることを確認
57
実行が開始しないときは、「実行ボタン」で実行
ソースコードを書き替えて再度実行することも可能
実行、STOP ボタン
別のプログラムを試す.trinket の次のページを
開く
https://trinket.io/python/ddb861147133
実行結果が,次のように表示されることを確認
58
実行が開始しないときは、「実行ボタン」で実行
ソースコードを書き替えて再度実行することも可能
実行、STOP ボタン
演習
プログラミングの楽しさと
達成感
59
各自の自発的な演習、自己研鑽の時間
Pythonでグラフィックスを描く
資料のプログラムを動かし理解を深める
Pythonの基本を押さえる
オブジェクト、メソッド、引数
発想力、創造力
turtleモジュールを使用して、あなた自身がデザインした図
形を描く
自主性、自己研鑽力、自分なりに工夫したことを振り返る
説明されなかった機能(他の図形の書き方)などを自主的
調べ、理解し、自分で試してみるそして、自分なりに工
夫したことを振り返り、省察することで、さらに実力アップ。
60
演習
プログラミングの楽しさと
達成感
61
各自の自発的な演習、自己研鑽の時間
Pythonでグラフィックスを描く
資料のプログラムを動かし理解を深める
Pythonの基本を押さえる
オブジェクト、メソッド、引数
発想力、創造力
turtleライブラリを使用して、あなた自身がデザインした図
形を描く
自主性、自己研鑽力、自分なりに工夫したことを振り返る
説明されなかった機能(他の図形の書き方)などを自主的
調べ、理解し、自分で試してみるそして、自分なりに工
夫したことを振り返り、省察することで、さらに実力アップ。
62
①複雑な図形
https://trinket.io/python/5366def2f4
②色,円
https://trinket.io/python/f8cd554693
63
https://trinket.io/python/5366def2f4
import turtle
t = turtle.Turtle()
t.goto(0, 100)
t.goto(58, -80)
t.goto(-95, 30)
t.goto(95, 30)
t.goto(-58, -80)
t.goto(0, 100)
64
ライブラリのインポート
オブジェクト生成。t へのセット。
移動
実行結果
(0, 0)
最初の位置は
(0, 0)
https://trinket.io/python/f8cd554693
import turtle
t = turtle.Turtle()
colors = ["red", "green", "blue"]
for i in range(3):
t.color(colors[i])
t.circle(30)
t.forward(50)
65
ライブラリのインポート
オブジェクト生成。t へのセット。
色は、赤、緑、青
色を変える
半径30の円
前に50進む
実行結果
①プログラミングの基礎
オブジェクトメソッド引数などの基本概念
を理解.CodeCombatを用いてPythonの実践的
スキルを習得
論理的思考力の向上とプログラミングの面
白さ体験
タートルグラフィックスで論理的思考力を養成。
アイデアを形にする楽しさと達成感
プログラミングの重要性の理解
シミュレーション、データ処理、AI開発などさ
まざまな活用
自主的な学習姿勢の育成と視野拡大
自主的学習姿勢を身につける.プログラミング
の基礎を通して視野を広げる
66