【プログラミング学習 Python編_導入】
みなさんの学校では、どのようなプログラミング学習を導入されていますか?
私が非常勤講師としてやっている中で、2022年を境に、プログラミング学習はPython一択になった実感があります。
それまでは、学校によってさまざまで、VBA、scratch、C、Java、JavaScript、HTML、などを実習してきました。
もちろんプログラミング学習の意図するところは、
「アルゴリズムを理解し、プログラムを組み立てる」
「プログラムを意識することで、問題解決の力を身に着ける」
ということです。ただ、非常勤講師としては各学校でプログラミング学習が異なると、それなりに大変さはありました。
言語によってできる出来ないがあるので、
(あれ?この構文って、この言語では使えないんだっけ?)
なんてこともありましたね。
それが、学習指導要領の改訂とともに、
「情報Ⅰ」
となったことで、教科書内では、いくつかのプログラミング言語の記載はありますが、少なくとも私がお世話になった高校は一律でPython導入となりました。
Pythonを導入するにあたり、各学校の教科主任をはじめ、情報科教員は、使用ソフトウェアや実行環境の確認、動作確認など、準備を整えるのに、相当な時間を要したと思います。
ソフトウェアに関しては、学校の環境にもよるため、一概にこれがいい!
とは言えませんが、フリーで使えて、保存ができて、inputが実行できるものがよいと思います。
(ソフトウェアの中にはinputが使えないものもあって、面白味がなかった)

今までの高校で使用してきて、問題なく実習できたのは、以下です。
●Google Colaboratory https://colab.research.google.com/?hl=ja
Googleアカウントが必要(ログイン出来ないとコードを実行できない)。
GoogleDriveに自動保存される。Googleにログインできる環境があれば、どの端末でも操作可能。
エラー表示が分かりやすい。
●PyWeb https://pyweb.ayax.jp/PyWeb.html
web上で実行できる。ログイン不要。
アカウント登録不要。
一部広告が表示されるが、広告内容に大きな問題なし。
時間制限あるが、ブラウザの再起動で、リスタートできる。
Windowsで実行可。iPadは実行不可(通常の画面は表示されるも、コード入力ができない)。
エラー表示あり。
ドライプに保存可(メモ帳で確認できる)。
学校で使用したときは、生徒の共有フォルダ上に、ショートカットを配布して、ショートカットから起動させていた。
【Python編_実習(初級)】

■print( )
print( )の中は、数値、数値の計算、文字列‘’を複合的に実行します。
・文字列は、シングルクォーテーションで文字を囲む
・数値は、シングルクォーテーションは不要
・数値の計算は、計算結果が表示される
・print( )が1行をあらわす
<例1>
print( 123 )
print( 10+20 )
print( 3*4*5 )
print(‘自分の名前’)
print(‘自分の高校名’)
<課題例>
1行目に、「自分のクラス、出席番号、名前」
2行目に、「プログラミング学習にあたっての意気込み(自分の言葉で)」
3行目に、「(生まれてから今日まで何日経過したか計算式で)日数」
を表示させる
3行目は、数値なので、シングルクォーテーションは不要であること
今日まで何日経過したか、を問う(365*16+31+28+31+・・・など)を、自分で考えて計算式を入力させることが目的のためインターネット使用不可
※計算記号(プログラミングで扱う四則演算)は、事前学習が必要です
■変数
a=2
print(a)
で代入の確認
<例1>
a=2
print(a+a)
print(a+30)
print(a*a)
print(a*100/5)
→実行ののち、代入する数値を自分の好きな数字に変更させて、実行結果が変更されることを確認
<例2>
koukou=’自分が通っている高校名’
nen=1
kumi=10
ban=99
namae=’自分の名前’
print(koukou,nen,kumi,ban,namae)
→文字列、数値など、変数を並べるときは半角カンマで区切る
print(koukou,nen,’年’,kumi,’組’,ban,’番’,namae)
→さらに文字列を挟み込むこともできる
<課題例1>
自分の生年月日の数値部分を変数で代入して表示させる
(見本)「私は、〇年◇月△日生まれです」
<課題例2>
「今日の天気は〇」
「最高気温は◇度」
「最低気温は△度」
<課題例2>
「明日の天気は●」
「最高気温は、今日と比べて3度高い◆度」(◇の変数を使って計算式)
「最低気温は、今日と比べて1度低い▲度です」(△の変数を使って計算式)
<課題例3>
円の面積を求める
<課題例4>
自分のBMIと適正体重を求める
→BMIと適正体重の一覧表を表示してあげると、生徒の関心を引くことができる

■IF
代入された数値が、偶数か奇数かを問う
<例1>
num=50
if num%2==0:
print(‘偶数です’)
else:
print(‘奇数です’)
<例2>
代入された数値が、7の倍数かどうかを問う
<例3>
代入された数値が、80点以上なら優、そうれなければ良とする
<例4>
今日の天気が雨なら、傘を持っていく、そうでなければ、いつも通り登校する
■if~elif
代入された数値が、80点以上なら優、50点以上なら良、それ以外は可とする
<例5>
num=80
if num>=80:
print(‘優’)
elif num>=50:
print(‘良’)
else:
print(‘可’)
<課題例1>
代入された数値が、80点以上なら優、50点以上なら良、30点以上なら可、それ以外は追試とする
<課題例2>
教科①、教科②、教科③など追加して、それぞれの教科の評価や、合計点の評価などを実習させる
■for
<練習1>
for a in range(5):
print(a)
→range( )内の数値が1つの場合、0から始まって数値―1まで1ずつ増えることを確認
<練習2>
for a in range(3,10):
print(a)
→range( )内の数値が2つの場合、左の数値から始まって右の数値―1になるまでまで1ずつ増えることを確認
<練習3>
for a in range(5,20,3):
print(a)
→range( )内の数値が3つの場合、1つめの数値から始まって、2つめの数値―1になるまでまで、3つめの数ずつ増えることを確認
<課題例1>
10から始まって、20(マイナス1)になるまで1ずつ増えるプログラムを作成しなさい
for a in range(10,20):
print(a)
<課題例2>
100から始まって、0になるまで10ずつ減るプログラムを作成しなさい
for a in range(100,-1,-10):
print(a)
■while
<練習1>
a=0
while a<=5:
print(a)
a=a+1
→初期値(a=0)から、条件式が満たされるまで1ずつ増える
<練習2>
a=10
while a>=0:
print(a)
a=a-2
→初期値(a=10)から、条件式が満たされるまで2ずつ減る
ご購読ありがとうございました。
コメント