ブロックからテキストへ:Scratch から Python へ(9~12才向け)
Scratch のブロックから実際の Python コードへ移行するための段階的なガイドです。具体的な演習と一般的な落とし穴について説明します。
Scratch で何個かのプロジェクトを作った子どもたちは、通常 10~11才の頃に壁にぶつかります。ブロックは自分が作りたいものには単純すぎるように感じます。その壁は、実は Python を導入するちょうどいい時期です。このガイドは、Scratch で既に子どもたちが理解している部分(スプライト、ループ、イベント)を保ちながら、それらを実際のコードにマップするパスを示しています。橋を作らずにいきなり構文に放り込むのではなく、です。
ジャンプが予想より難しく感じる理由
Scratch は 3 つのことを隠していて、Python では突然見えるようになります。変数型、インデント、構文エラーです。「10 回繰り返す」というブロックをドラッグした子どもは、コロンや括弧について考えたことがありません。Python の最初の週は、主に赤いエラーメッセージに耐えることになります。最初から言っておきます。プロのプログラマーは 1 日に何十回もエラーメッセージを見ます。これは彼らが下手だという証拠ではありません。
Trinket.io か Replit をブラウザで使って、最初にインストールの手順を戦わずに済むようにします。デスクトップインストール(python.org から Python 3.12 以上、エディターとして Thonny)は、子どもたちがはまってからにします。
Scratch の概念を Python に直接マップする
ゼロから始めるのではなく、この比較を明示的に並べて行います。
- 「緑の旗がクリックされたとき」→
.pyファイルを実行するだけ - 「10 回繰り返す」→
for i in range(10): - 「ずっと」→
while True: - 「もし <> なら」→
if condition: - 「聞いて待つ」→
input("質問: ") - 変数(オレンジのブロック)→
score = 0
これはほぼ直接翻訳なので、Scratch に相当するものをまず書いてもらいます。
score = 0
for i in range(5):
score = score + 10
print("Score is now:", score)
実行してから、range(5) が range(20) になったらどうなるかを聞きます。コードを実行する前に出力を予測することが、ここで築くべき唯一最高の習慣です。
モチベーションを高く保つ 3 つのプロジェクト
数当てゲームは古典的な最初のプロジェクトです。input()、if/elif/else、ループを使うし、実際のプログラムのように機能するからです。
import random
secret = random.randint(1, 20)
guess = 0
while guess != secret:
guess = int(input("Guess a number 1-20: "))
if guess < secret:
print("Too low")
elif guess > secret:
print("Too high")
print("You got it!")
テキストベースのペットシミュレーター(餌をやる、遊ぶ、寝る、ステータスを確認する)は次に良く機能します。子どもたちは既に Scratch でスプライトコスチュームで同じようなものを作っているからです。今はディクショナリーです。pet = {"hunger": 5, "energy": 8}。
3 番目に、turtle グラフィックスに進んで視覚的な成果を得ます。
import turtle
t = turtle.Turtle()
for i in range(4):
t.forward(100)
t.right(90)
これは正方形を描き、Scratch のペンツールからの「10 ステップ進む、90 度曲がる」パターンを直接反映しています。子どもたちはすぐに類似性に気づきます。これは構文に関する講義よりも、自信のためにはるかに重要です。
エラーに対処してモメンタムを維持する
最初の月は IndentationError と NameError が絶えず出るでしょう。代わりに直さず、一緒にエラーメッセージを声に出して読み、それが指し示す行番号を見つけます。Python のエラーは通常、正確に何が間違っているかを言っています(「インデントされたブロックが必要です」など)。たとえ文が乾いていても、数週間で大ほどんどの子どもたちはトレースバックを大人より速く読み始めます。
本当の落とし穴は 1 つあります。Python は大文字と小文字を区別し、Scratch は区別しません。Score と score は異なる変数です。これはブロックから来たほぼすべての子どもを困らせるので、フラストレーションを通じて彼らに発見させるのではなく、早い段階で指摘します。
うまくいく大体 4 週間のペース
1 週目:変数、print()、input()、基本的な算術演算子。2 週目:数当てゲームで if/elif/else。3 週目:for と while ループ、ペットシムの構築。4 週目:関数。ペットシムのアクションを def feed(pet): 形式のコードでラップします。これは Scratch のカスタムブロックがこれをほのめかすだけなので、最大の概念的なリープです。
4 週目を飛ばさないでください。関数は「プログラマー」の思考が本当に始まる場所で、より大きなプロジェクトに真っすぐ進む子どもたちで、関数を理解せずにコピーペーストされた散らかったコードを書く傾向があり、デバッグが難しいです。
お子さんがこのシフトを楽しんでいるなら、Korra Studio にはもっと初級者向けの Python ウォークスルーと、次に探索する価値のある一般的なコンピュータサイエンスセグメントがあります。
この記事は AI の支援を受けて執筆し、Korra Studio の Michal Pilch(CISSP)が確認のうえ公開しました。
これは Korra Studio ナレッジベースの 1 つのノートです。プラットフォームはすべてのトピックと 1 対 1 メンタリングをペアで提供します。
無料で始めるarrow_forward