相生コンピュータークラブ第6期(2025年12月)~サイコロプログラム最終ステージ+ドリル~

第6期は、サイコロプログラムを作ります。今まで作ってきた「黒い画面に文字だけのプログラム」ではなくて、アプリらしい画像が動くプログラム(GUI)で作ります。年の暮れ、プログラムも完成します。

タイピング練習とアルゴロジック

タイピング練習とアルゴロジックは、いつものとおりです。

タイピングはパソコン操作の基本、アルゴロジックはプログラミング思考の基本です。これらをしっかり押さえておけば、少々難しいことがあっても大丈夫。スポーツにおける走り込みみたいなものです。

この基本コースだけのプランも用意していますので、いきなりプログラミングは難しそう~と思う方はこちらをどうぞ。

プログラミング入門の入門講座(太子・相生・龍野)

AI時代の“学びの土台”を育てる、完全初心者向け準備講座 AI時代に強い子へ。プログラミングの“その前の力”を丁寧に育てる準備講座です。 本編クラブへのスムーズなステッ…

ネットワークドライブへの接続

サイコロプログラムは、1~6のサイコロ画像をランダムに表示するプログラムです。サイコロ画像が必要で、それは私が用意しました。

配布の方法は色々あると思います。例えば、以下の通り。

  • USBメモリ(リムーバブルメディア)で配布
  • ホームページにアップして配布
  • ネットワークストレージを用意して配布
  • ピア・ツー・ピアで配布
  • 教材配布機能があるソフトを使って配布

どれを使ってもいいけれど、どうせなら将来役立つ方法で配布しましょう。ということで、ネットワークストレージで配布します。

ネットワークストレージを使うには、設定がいくつかあります。そこはていねいに説明しながら、小学生でもできるようにサポートします。ネットワークを介した通信について、なんとなくでも触ったことがあると将来の理解に有益です。

ちなみに、教材配布機能があるソフトを使って配布する方法は、学校現場でよく使われています。わたしも学校のサポートに入ったときに、すごく便利なものがあるなあと感心したものです。しかし、便利さの裏には悪いところもあります。

高校の先生がいうには、小中学校で教材配布機能に慣れた児童生徒が高校に上がったときに、フォルダのツリー構造をなかなか理解しなくて困るそうです。一般社会ではファイル配布機能なんて使わないので、大人と同じ方法で早めに慣れておくと、あとになって楽かなあと思います。

論理演算について説明

「論理演算」なんて名前はいかついけれど、とても簡単な演算です。if文を使うと必ずでてくるのが条件式で、条件式でよく使われます。合わせて覚えておきましょう。

目下必要なのは、以下の3つ。これだけ覚えておけば、当面苦労しません。

論理積 AND

論理積とは、「A かつ B」というような条件のことです。AとBの両方の条件を満たしたときだけ真値をとります。プログラムではANDを使います。表で書くと以下の通り。

入力:条件A入力:条件B出力:A AND B = X
000
010
100
111

論理和 OR

論理和とは、「A または B」というような条件のことです。AとBのうち片方の条件を満たしたら真値をとります。プログラムではORを使います。表で書くと以下の通り。

入力:条件A入力:条件B出力:A OR B = X
000
011
101
111

論理否定 NOT

論理否定とは、「A ではない」というような条件のことです。Aが偽値のとき、真値をとります。プログラムではNOTを使います。表で書くと以下の通り。

入力:条件A出力:NOT A = X
01
10

これだけ覚えておけばOK。ちなみに高校の情報科目でテストにでます。

そしてPythonドリル

Pythonドリルは、論理演算を学ぶと解ける問題が増えるはず。

この辺はプログラムをやっていて苦しいところ。物事には楽しいこともあれば、苦しいこともあるのです。力をつければ、その分さらに楽しいことができるようになります。

現実の問題をどう抽象化するか?

ドリルでは、「数字を入力して、偶数か奇数かを判別してください」というような問題を解きます。それぞれ、小中学校ではどのように習うのかな? おおむね「2で割り切れたら偶数、2で割り切れなかったら奇数」というようなものではないでしょうか?

プログラミングでは、これを少し言い換えてあげることが必要です。

  • 2で割り切れる→2で割った時の余りが0
  • 2で割り切れない→2で割った時の余りが0以外(つまり1)

同じことですが、表現を変えて理解できるということが重要なのです。これは、徐々にできるように練習していきましょう。

答えは一つではない

一行で終わるようなプログラムは別ですが、複数行にわたるプログラムは、複数の答えがあることが普通です。算数や数学と一緒で、最後に欲しい答えは一つでも、答えに至るまでのプロセスはいろいろあります。

厳密には短くて簡潔なコードが優れるものの、初級クラスでは色々な書き方があることを知っておくほうが重要です。また、長いコードでも無駄がなければ、どのような処理をしているかよく分かります。たとえば以下のように最大値を求めるコードが該当します。

numbers = [12, 7, 22, 5, 9]
max_num = 0
for num in numbers:
	if max_num < num:
max_num = num
print(“最大は” + str(max_num))
numbers = [12, 7, 22, 5, 9]
print(“最大は” +str(max(numbers)))

実行速度ではsample2のほうが圧倒的に速いです。しかし、sample2はどのような処理をしているかわかりません。sample1はどのように最大値を求めているかわかりやすいのです。

初級クラスでは、コンピューターがどのように最大値を求めているのかをsample1で理解したうえで、sample2を使うようにしていきます。ちなみに、高校の情報科目でsample1の書き方を学習します。