JESTEM.CLUB Tsuhushima

そもそもプログラミング(programming)とは何でしょうか?

日本語でもプログラム(program)という言葉はずいぶん昔から使われてきています。

 

結婚式や運動会のプログラム……何が行われるか順番に書いたものですよね。これがないとうまく進行できません。他にもあります。料理のレシピ。例えば、ホットケーキを作ります。

手順は、

1        フライパンをあたためる

2        焼きあがったら皿にのせる

3        砂糖を入れる

4        バターをフライパンにのせて溶かす

5        小麦粉にミルクを入れよくかき混ぜる

6        ???????

 ここまで読んで「あれ、おかしいぞ。」と思いましたよね。実は順番がおかしい。この順番が正しくなければ美味しいホットケーキは作れません。

 

 上のような作業の順番をパソコンやスマホ(以下パソコンに統一します)に教え、「この順を守って作業してくださいね。」と書くのがプログラムです。それを作る作業をプログラミングと言います。出来上がったものもプログラムです。つまり、レシピですね。

 

 ところで、パソコンはとても賢く、計算などもとても速くできます。しかし、プログラム(レシピ)が無い場合や、悪い場合には、反応しない、間違った反応をします。

 

正しいデータ(レシピ) 正しい情報や数字(データといいます:ホットケーキの材料)が無い、また違っていたら

  パソコン          ホットケーキ

➀ 反応しない         作れない

② 間違った答えを返えす    味が悪い・おかしなものができる

③ 暴走(無茶苦茶な動き)する  違うものができる

 

 作った、または、その途中のプログラムで、間違いを取り除くことをデバッグ(debug)と言います。bugは英語の虫のことで、debugdeはそれを取り除くという意味です。右のようにプログラムが書かれていても、虫に食われていたら読めませんよね。だから、「虫取り」をしなければならないのです。

 

 ここで、このデバック作業というのが難しいんです。なぜ、そのプログラミングがうまく動かないのか見つけて、書き直したりしなければなりません。根気強くひとつひとつ動作を確認しながら作業を進めて行く必要があります。プログラング学習をする時に、この作業が根気強さと論理的思考を身につけることができるのです。

 

また、その試行錯誤することで、新しいアイデアや発想力が身につき、より良いレシピを作る力が身につくのです。

 

話は少し変わります。トップページでも述べていますが、パソコンやプログラムの発祥の地は主にアメリカです。また、英語や数字記号は8bitといって、
2の8乗=2×2×2×2×2×2×2×2=256文字以内と漢字などに比べるととても少ない文字数で記述することができるので、アルファベット、つまり英語で書かれています。

ですから、欧米の英語圏の子供たちは、簡単にプログラミングを始められます。また、日本のように手で文を書くというより、昔からタイプライターというものがあり、欧米ではキーボードにも慣れ親しんでいるという背景もそれを後押ししています。

 

 そもそも、STEM教育を始める前、つまりスタート地点が違うのです。ですから、いきなりSTEMではなく、JESTEMなのです。

 

 

 詳しく説明します。(必要でないと思われる方は読み飛ばし下さい)

 

    ### 変数初期化

    x = M_SIZE    # 横座標

    y = M_SIZE    # 縦座標

    x_flg = 0     # 横限界フラグ

    y_flg = 0     # 縦限界フラグ

 

    while True:

 

        ### 横座標設定

        if   x < 0    + M_SIZE:

            x_flg = 0

        elif x > WIDE - M_SIZE:

            x_flg = 1

 

        if x_flg == 0:

            x += M_DOT

        else:

            x -= M_DOT

 

        ### 縦座標設定

        if   y < 0     + M_SIZE:

            y_flg = 0

        elif y > HIGHT - M_SIZE:

            y_flg = 1

 

        if y_flg == 0:

            y += M_DOT

        else:

            y -= M_DOT

 

        ### 描画

JESTEM.CLUB Tsuhushima