太子プログラミングクラブ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分 あとかたづけ
Contents
タイピング練習・マウス練習
タイピングの練習は、寿司打。マウスの練習は、ピヨコムとマインスイーパーを使いました。
- 寿司打
https://sushida.net/ - ピヨコム
https://piyocom.com/ - マインスイーパー(Google検索のWebアプリ)
https://www.google.com/search?channel=fs&client=ubuntu-sn&q=%E3%83%9E%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%A4%E3%83%BC%E3%83%91%E3%83%BC
タイピングは、寿司打を使ってみました。そして、今回からの秘密兵器登場。手ぬぐいです。
手ぬぐいで手元を隠してタイピング練習をします。これは、わたしより10ぐらい年上のオネーサンに教わった方法です。そのオネーサンが新人時代に、先輩から教わったそうです。ちなみに、そのオネーサンは台湾高速鉄道のシステム開発に携わったこともある優秀なSEです。
実は、もっと悲鳴があがるかとおもっていました。しかし、期待どおりにはならず、手元を隠してもスイスイとタッチ・タイピングしているメンバーが多くて愕然としました。また小学生にタイピングで負けそうです。
さて、マウスの練習は、ピヨコムを使います。
こちらもあっというまにできてしまって、物足りない様子。
では、少し骨のある練習をしましょう。マインスイーパーに取り組んでもらいました。
マインスイーパーは、大人のメンバーが懐かしんで取り組んでいる様子でした。小学生のメンバーは、はじめはなにをしたら良いのかわからないみたいでした。そのうち、わかってきた様子です。
タイピングも、マウスも、変化をつけながら練習していきましょう。
Pythonで多角形を描く(基礎編)
さて、今回から本格的なPythonプログラミングに取り組みます。まずは、これまでの復習と準備運動をかねて、Thonnyで以下のプログラムを書いて動かします。
from turtle import *
for i in range(5):
forward(100)
right(72)
done()
予告したとおり、カメ(turtle)を使っております。
アルファベットに慣れていない小学生の目線で見ると、「l(小文字のエル)」と「1(数字のイチ)」が区別しにくいようです。第1回の反省を踏まえて、今度はかなり大きく印刷して資料として配布しました。
そして、第1回では説明をほとんどせず写経させたのを、今回は間違いやすいところなどなどをていねいに説明します。
ゆっくり進めたせいもあるのか、ここまでは苦労せずできたようです。
プログラムを改造しよう
上のプログラムを素直に実行したら、下向きの五角形ができあがります。そこまでできたら、さらにプログラムを改造するヒントをだします。
「色が黒ばかりだと面白くない」「線の太さを変えてよ」などなど、わたしからの適当な要求にこたえられるでしょうか。実は、どのようなコードを使ったらよいかは配布した資料に記載しています。下は、そのコードです。
できることはたくさんあって、あとはイメージを膨らますだけ。
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で書いていたメンバーもいました。
このプログラムを実行すると、実行画面の場所にランダムに青色の星が表示されます。
「なんでそんな動きになるの?」までくわしく説明すると時間がたりません。クラブでは、かんたんな説明にとどめます。
次回予告、フラクタル
さて、このプログラムを動かせたメンバーから、「星の色を途中で変えられないのか?」という質問を受けました。待ってました!
もちろん、色を変えるプログラムも仕込んであります。が、次回に譲ります。
次回は、この多角形を描くプログラムの考え方をもとにして、フラクタルなどもっと難しい図形に挑戦します。