太子プログラミングクラブ3回目!~いよいよPythonで本格プログラミング~

2024年10月18日は、太子プログラミングクラブ「初級コース」の3回目を実施しました。隔週で全6回のコースの3回目です。

3回目は、Pythonを使って、多角形を描くプログラムを発展させます。前回実施したScratchプログラムと比べながら、イメージしながら進めていきます。

第3回のタイムスケジュールは、以下のとおりです。

  • 19時00分~19時15分 タイピング練習
  • 19時15分~19時30分 マウス練習
  • 19時30分~19時40分 休憩
  • 19時40分~20時10分 Pythonで多角形を描くプログラム(基礎編)
  • 20時10分~20時20分 休憩
  • 20時20分~20時45分 Pythonで多角形を描くプログラム(発展編)
  • 20時45分~21時00分 あとかたづけ

タイピング練習・マウス練習

タイピングの練習は、寿司打。マウスの練習は、ピヨコムとマインスイーパーを使いました。

タイピングは、寿司打を使ってみました。そして、今回からの秘密兵器登場。手ぬぐいです。

手ぬぐいで手元を隠してタイピング練習をします。これは、わたしより10ぐらい年上のオネーサンに教わった方法です。そのオネーサンが新人時代に、先輩から教わったそうです。ちなみに、そのオネーサンは台湾高速鉄道のシステム開発に携わったこともある優秀なSEです。

実は、もっと悲鳴があがるかとおもっていました。しかし、期待どおりにはならず、手元を隠してもスイスイとタッチ・タイピングしているメンバーが多くて愕然としました。また小学生にタイピングで負けそうです。

さて、マウスの練習は、ピヨコムを使います。

こちらもあっというまにできてしまって、物足りない様子。

では、少し骨のある練習をしましょう。マインスイーパーに取り組んでもらいました。

マインスイーパーは、大人のメンバーが懐かしんで取り組んでいる様子でした。小学生のメンバーは、はじめはなにをしたら良いのかわからないみたいでした。そのうち、わかってきた様子です。

タイピングも、マウスも、変化をつけながら練習していきましょう。

Pythonで多角形を描く(基礎編)

さて、今回から本格的なPythonプログラミングに取り組みます。まずは、これまでの復習と準備運動をかねて、Thonnyで以下のプログラムを書いて動かします。

from turtle import *

for i in range(5):
    forward(100)
    right(72)

done()

予告したとおり、カメ(turtle)を使っております。

アルファベットに慣れていない小学生の目線で見ると、「l(小文字のエル)」と「1(数字のイチ)」が区別しにくいようです。第1回の反省を踏まえて、今度はかなり大きく印刷して資料として配布しました。

そして、第1回では説明をほとんどせず写経させたのを、今回は間違いやすいところなどなどをていねいに説明します。

ゆっくり進めたせいもあるのか、ここまでは苦労せずできたようです。

プログラムを改造しよう

上のプログラムを素直に実行したら、下向きの五角形ができあがります。そこまでできたら、さらにプログラムを改造するヒントをだします。

「色が黒ばかりだと面白くない」「線の太さを変えてよ」などなど、わたしからの適当な要求にこたえられるでしょうか。実は、どのようなコードを使ったらよいかは配布した資料に記載しています。下は、そのコードです。

  • 図形の大きさを変えるには?
  • 線の色を変えるには?      →pencolor()
  • 線の太さを変えるには?   →pensize(), width
  • はじめのペンの位置を指定するには?          →goto(x, y)
  • ペンの形を指定するには?             →shape()
  • 描くスピードを変えるには?          →speed()

できることはたくさんあって、あとはイメージを膨らますだけ。

Web検索を使いこなそう

キーワードを与えられても、キーワードだけでプログラムを組めるのは、わかっている人だけです。いまから学習する人は、キーワードの使い方を知らないとなかなか難しいのです。

先生がいれば、先生に聞けばよいのですが、いつも先生がそばにいるとは限りません。先生がいても、集合学習の場合は、先生を独り占めするわけにもいきません。ある程度は自走する必要があります

そこで! 自走の方法をレクチャーします。かんたんにいうと「ググれ」ということです。

もちろん、ググるにもコツがあります。ググってPythonプログラムを作る方法をレクチャーします。

それは、「Python Turtle 〇〇」というように検索するのです。〇〇はキーワードです。今回はturtleモジュールを使っているので、それを検索キーワードに含めます。turtleモジュール以外を使うときは、他の検索キーワードを設定します。

小学校5年生がメイン層で、小学校の調べ学習でWeb検索の方法を教えてもらっているかと思っていました。実際のところ、あまり経験がないそうです。

検索必須の世の中になりつつあり、これから誰が検索方法を教えるんだろう?と感じました。

さて、Web検索の方法を教えたら、休憩時間でもメンバーそれぞれでなにかに取り組んでいるようでした。わたしもインスパイアを受けたのでかんたんな改造をしています。

Pythonで多角形を描くプログラム(発展編)

後半は、ボールが弾むプログラムを作ろうと考えていました。しかしながら、メンバーみんなが多角形プログラムに熱中していたので、そのまま発展させることにしました。

下は、会場を回りながらわたしがメンバーから受けた質問を網羅しつつ、それっぽく形にしたプログラムです。

from turtle import *
import random as rd

speed(0)
pencolor('blue')

for _ in range(40):
    penup()
    goto(rd.randint(-200, 200), rd.randint(-200, 200))
    pendown()

    for i in range(5):
        forward(30)
        right(144)

done()

前回、似たようなプログラムをScratchで書いていたメンバーもいました。

このプログラムを実行すると、実行画面の場所にランダムに青色の星が表示されます。

「なんでそんな動きになるの?」までくわしく説明すると時間がたりません。クラブでは、かんたんな説明にとどめます。

次回予告、フラクタル

さて、このプログラムを動かせたメンバーから、「星の色を途中で変えられないのか?」という質問を受けました。待ってました!

もちろん、色を変えるプログラムも仕込んであります。が、次回に譲ります。

次回は、この多角形を描くプログラムの考え方をもとにして、フラクタルなどもっと難しい図形に挑戦します。