個別指導塾、学習塾のヒーローズ。植田(名古屋市天白区)、赤池(日進市)の口コミで評判!成績が上がる勉強方法が身につく!振替、自習も便利!
// 条件1に該当しない場合の処理

プログラミング

【中3理科】遺伝の規則性をプログラミングで学ぼう

中3理科「遺伝の規則性」とプログラミング

塾長です。

テスト期間に突入しました。

みなさん、テスト対策は万全ですか?
学校からのプリントや宿題も増える頃ですよね?

そんな中、とある中3生。

「なかなか解けない!」

と悩んでいました。
「遺伝の規則性」・・・学校から出された理科の課題だそうです。

遺伝の組み合わせの全パターンを、もれなく書き出して数える・・・見るからに大変そう。

さて、皆さんは、こんな時どうしますか?

めんどうな事はコンピューターにやらせる!

ということで、本日のタイトルが答えです。

そう、コンピューターの出番です。
サックっとプログラミングした方が早いです。

プログラミングは多少の練習が必要です。
しかし慣れてしまうと、色々な作業が楽になります。

最初の1回目の作業は、規則性を理解するため、自分が成長するために必要です。
しかし、2回も3回も同じ苦労をするのが良いとは限りません。

2回目、3回目について、

全く同じ苦労をしますか?
何か工夫をして効率を上げますか?

こういうときの瞬間、瞬間の工夫の積み重ねで、人生が大きく変わっていくように思います。

その工夫のためには、プログラミングは必須アイテムと言えましょう。

それでは、コンピューターにやってもらいましょう。

遺伝の規則性についての例題

その前に、まず今回の問題について説明します。

中3理科の遺伝です。エンドウ豆の種子が「丸い」のか「しわ」なのか、という問題。
毎年の恒例です。

「丸い」種子をつける純系のエンドウ豆があります。
「しわ」の種子をつける純系のエンドウ豆があります。
それぞれから1株ずつ対応させて交配させると、子の世代の種子はどのような形状になるでしょう?
丸い種子のエンドウ豆の株と、しわの種子のエンドウ豆の株の数を、簡単な整数比で示せ。
また「丸い」形質の遺伝子をAとし、「しわ」の形質の遺伝子を「a」として、そうなる理由を説明せよ。

このように遺伝の問題は、組み合わせの全パターンで考えて解くのでした。

エンドウ豆の遺伝 交配

中3数学で習う多項式の分配法則 (A+A)(a+a) = Aa+Aa+Aa+Aa に似ています。

そして回答の例はこんな感じです。

純系の「丸い」種子をつける親の体細胞の遺伝子を(A, A)、「しわ」のそれを( a, a )とする。

子の世代は(A, A)と( a, a )の掛け合わせが(A, a )(A, a )(A, a )(A, a )となる。ここでAは「顕性の形質」で、a は「潜性の形質」だから(A, a )は「丸い」種子となる(※)。よって、子の世代の種子は、全て「丸い」形状になる。

孫の世代は、子の(A, a )と(A, a )の掛け合わせが(A, A)(A, a )(A, a )( a, a )となるから、「丸い」:「しわ」が3:1の比率であらわれる。

(※)教科書改訂により古い用語の「優性」「劣性」は廃止され、「顕性」「潜性」に統一されました。

詳細は教科書を見てくださいませ。

やっとれん

これが「ひ孫の世代」以降になると厄介です。組み合わせが指数関数的に増えてしまい、調べるのが煩雑になります。
例えば、こんな問題です。

純系の「丸い」種子の株と「しわ」の種子の株を掛け合わせて子の世代をつくる。
その子の世代どうしを掛け合わせて、孫の世代をつくる。
その上で、次の各問いに答えなさい。

(問1)孫の世代を互いに掛け合わせたとき、次の世代の「丸い」:「しわ」の比はどうなるか?
(問2)孫の世代の中から「丸い」種子の株だけを選んで、互いに掛け合わせたとき、次の世代の「丸い」:「しわ」の比はどうなるか?

こんな問題が出たら、やってられません。
他の問題をやる時間が無くなってしまいます。飛ばしてください。
出るのが明白なら、事前に答えを丸暗記して流しましょう(出ないと思いますが)。

コンピューターにやってもらいました

しかしコンピューターなら、あっという間です。
親の世代から、上の問1と問2にある「ひ孫の世代」まで、コンピューターに聞きました。

実行結果

エンドウ豆の遺伝についてパイソンのプログラムで組み合わせを計算させた結果

問1の方は、孫の世代も、ひ孫の世代も、「丸い」種子の株と「しわ」の種子の株の比率は同じでした。
ガチで数えると64通りの組み合わせですが、同じものをまとめていくと3:1になりました。
つまり何も操作をしなければ、エンドウ豆は「丸い」:「しわ」=3:1の出現比率に落ち着くと言えます。

問2の方は「丸い」種子だけを選択する操作をした場合です。当然ですが、次の世代で「しわ」の割合が減ります。
なんと8:1になりました。

何世代目で純系になる?

ちなみに、さらに「丸い」株だけを選択して次の世代「玄孫(やしゃご)」を生むと、15:1になります。
さらに「丸い」株だけを選択して次の世代・・・と繰り返していくと、いつかは「丸い」種子の株だけになるというワケです。

こうして純系の株が作られていくワケですね。すると

何世代の後に「丸い」の純系を得られるか?

が気にってきます。確率ですから「しわ」を完全に0にすることは難しいので、ここでは仮に「純系」の基準を

「しわ」の出る確率が1万分の1以下

としましょう。
そこで、この基準を満たすまで世代交代を繰り返す実験をやってみました。
もちろん、コンピューターの中で・・・。

エンドウ豆の遺伝シミュレーション 純系

ということで、第100世代目で「ほぼ純系」の子孫ができました。

狙ったワケではありませんが、ちょうど100でした。

シミュレーションですから、交配の全パターンを計算しています。
結果が出るのに4時間くらいかかりました。
メモリは20ギガくらい使いましたが、塾長のパソコンは16ギガしか積んでいなかったのでメモリ不足になり、途中から計算が遅くなりました。

確率漸化式をつくって計算すれば、もっと早く回数を求められるとは思いますが、それでは高校数学の話になってしまいます。
今回は、あくまでも「中3理科の遺伝の実験」としてプログラミングしました。

ただ今回は(A, a )と(a, A )を別のものとして処理しました。
これらを一緒と見なすプログラムを追加すれば、組み合わせの数を何割か減らせたので、もう少し高速にシミュレーションできたかもしれません。

何はともあれ、やってみた感想は・・・

そもそも、純系の株を作るのが、ものすごく大変だ!

ということでした。

シミュレーションではなく、これが本当にエンドウ豆を交配していくことを考えてみてください。
成長を待って、種を採取し、分類し、また植えて、花が咲く前におしべを切り・・・ということを延々と続けていくわけです。

1000株育てて100株に選定などとすれば、もっと早く純系を得られるとは思いますが、それでも大変でしょう。

実験は準備が9割と言われますが、むしろ99%くらいに感じます。

これが今日の結論と言っても良いでしょう。

作業が大変なのか、理科として難しいのか?

組み合わせのパターンを全て考える。
組み合わせの組み合わせを全て考える。
組み合わせの組み合わせの、そのまた組み合わせを全て考える。

どんどん煩雑になって、数え上げるのに苦労します
解けない理由が、理科として難しいからではありません。

「作業がたいへん!」

という意味で難しい。

リアル世界の実験では、乗り越えなければいけない困難でしょう。

しかし学校の勉強やテストとなれば話は別です。

例えば、制限時間の厳しいテストや入試が、このような作業量を手早くこなせるか否かで合否が決まるものであったら、ちょっと意味不明です。
教科を分ける意味がほとんどありません。

機械が無かった時代は「機械みたいな人間」が重宝されたかもしれませんが、今はスマホでさえ高速に処理できます。

大変と思う時こそ、コンピューターの使い方お教えるべきなんです。
時には根性論も大切ですが、それだけは良くありません。
もっと積極的にコンピューターを活用すべきだと思います。

あらゆる勉強にコンピューターを活用!

遺伝の組み合わせを計算させるプログラムをつくる過程で、遺伝の性質を深く理解できるでしょう。

手作業で組み合わせを書き出すのも無駄ではありませんが、それが大変過ぎる作業では、先に心が折れてしまいます。
それに作業の制約が勉強の制約になってしまうと、むしろ視野が狭くなります。

コンピューターの計算は、失敗してもやり直しが楽です。
何度もチャレンジできるし、視野も広がるでしょう。

また多様なメディアを扱えるというメリットもあります。
子供たち自身でコンテンツを作ることもできます。

数学や理科、技術だけで活用というのでは寂しいです。
美術、音楽、体育、社会、英語・・・あらゆる科目で使いこなすことができます。

今回は理科の勉強にコンピューターを活用する例を考えました。

コンピューターを活用するセンス

これを子供たちに身に着けてもらうことが大切です。

そのためには、あらゆる学びの場でコンピューターを活用しましょう。

たとえば今回のように、「ワーク」にあたる作業訓練的な学びの部分には、コンピューターを活用できるところが多くあるはずです。

速く、正確に、たくさん・・・

このような意味で能力を伸ばすような訓練系の学習時間は、今後、見直されていくべきでしょう。
今後は、コンピューターを活用した試行錯誤の時間に置き換わっていくべきだと思います。

このような視点に立つと、日本の教育は世界から遅れています。
創造性やイノベーション力が足りないと、今でも言われています。

少ない知識をトリッキーに組み合わせて「速く、正確に、たくさん」できるような訓練ばかりして、消耗しているからです。

そういう作業こそ、コンピューターにやらせるのです。
それが当たり前の時代です。

やらなければ、日本が沈没します。

パイソンでプログラミング

今回のプログラムは次の通りです。

パイソンのバージョンは3.9以降です。
最大公約数を求める関数 math.gcd() に3つ以上の引数を渡せるのが、そのバージョン以降だからです。

データ構造としては、タプル、配列、辞書を理解しておく必要があります。

パイソンはタプルを辞書のキーとして使えることを利用しています。
また、パイソンは配列やタプルに自然数をかけると、それらを複製できることも利用しています。
(A, A)×3 → [(A, A),(A, A),(A, A)]
これらの機能は他のプログラミング言語でも使えるとは限らないので要注意です。

なお、純系を何世代目で得られるかを求めるプログラムの部分は省略してあります。
興味のある人は考えてみてください。

エンドウ豆の遺伝 Pythonプログラム

現場からは以上です!

 


生徒・保護者様のお友達登録はこちら

LINE登録するとプレゼントがもらえます!
【会員限定】お子様の成績と可能性を伸ばす18個のノウハウ

友だち追加


塾関係者様のお友達登録はこちら

LINE登録するとプレゼントがもらえます!
「zoomで簡単。オンライン授業移行の教科書」
または個別対談も可

友だち追加

 


名古屋市天白区の植田で塾を探すなら個別指導のヒーローズ!!

★ 直接のお問い合わせ ★
――――――――――――――――――――――
個別指導ヒーローズ 植田一本松校
〒468-0009
名古屋市天白区元植田1-202 金光ビル2F
TEL:052-893-9759
教室の様子(360度カメラ) http://urx.blue/HCgL

2次関数の虚数解をパイソンのグラフで見える化してみた

塾長です。

今回は高校生からよく出る質問、というか疑問

虚数 $ i = \sqrt{-1} $ は実在しない数なのか?

について考えてみます。

2次方程式と2次関数のおさらい

解の公式

まず中学3年生が1学期で習う「2次方程式の解の公式」を思い出してみましょう。

2次方程式$ ax^2+bx+c=0 $の解の公式

$$ x = \frac{ -b \pm \sqrt{b^2-4ac} }{ 2a } $$

判別式

高校1年生になると、さらに「判別式」を習います。
1学期の後半または2学期の初めくらいです。

実数$x$について、2次方程式$ ax^2+bx+c=0 $の判別式をDとすると、

  • $D < 0$ のとき、解は0個(解なし)
  • $D = 0$ のとき、解は1個(重解)
  • $D > 0$ のとき、解は2個

続いて、2次関数$ y=ax^2+bx+c $のグラフと判別式Dとの関係について習います。

2次方程式$ ax^2+bx+c=0 $の解を、次の連立方程式の解とします。

$$ \begin{cases}
y=ax^2+bx+c \\
y=0
\end{cases} $$

$x-y$平面上で2式それぞれのグラフを描くと、その交点が解になっているのでした。
つまり、

2次方程式$ ax^2+bx+c=0 $の判別式をDとする。
$ y=ax^2+bx+c $と$x$軸との共有点は、

  • $D < 0$ のとき、0個
  • $D = 0$ のとき、1個(接する)
  • $D > 0$ のとき、2個(交わる)

この様子を直感的なグラフで表すと、次のようになります。

複素数

高校2年生では、虚数単位 $ i = \sqrt{-1} $ を導入して、$x$を実数から複素数へ拡張します。
すると方程式の解を必ず求めることができるようになります。

2次方程式$ ax^2+bx+c=0 $の判別式をDとすると、

  • $D < 0$ のとき、解は複素数で2個
  • $D = 0$ のとき、解は実数で1個(重解)
  • $D > 0$ のとき、解は実数で2個

であり、どの場合でも解は、

$$ x = \frac{ -b \pm \sqrt{b^2-4ac} }{ 2a } $$

と表すことができる。
特に$D < 0$ のときは$ i = \sqrt{-1} $ として、

$$ x = \frac{ -b \pm \sqrt{|D|} i }{ 2a } $$

である。

ざっと、ここまでが中3、高1、高2の二次方程式と二次関数のおさらいです。

複素数の世界では必ず共有点がある?

素朴な疑問

さて、ここで塾長は、ふと疑問に思いました・・・

せっかく複素数まで拡張して、判別式$D<0$の場合でも解が求まるようになったのに、対応するグラフの共有点が無いままって、寂しくない?

寂しいですよね!?

疑問です。というか、不満です。
なんとかして、このモヤモヤを解消する必要があります。

問題解決というヤツです。

仮説を立ててみる

そこで、

もしかしたら、グラフを複素数まで拡張すれば、共有点が2つに見えるのではないか?

という仮説を立ててみました。

本当にそうなるのでしょうか?

コンピューターの力を借りて、そのグラフを描くことにチャレンジすることにしました。

仮説を立てて確かめるってヤツです。

4次元のグラフは描けない!!

コンピューターは具体的な数値しか扱うことができません。
そこで今回は、つぎの関数を例に、グラフを描いてみることにします。

$$y=x^2-2x+2 $$

もちろん、これの判別式Dは負です。

$$D=(-2)^2 – 4 \times 1 \times 2 = 4-8 = -4 < 0$$

そして方程式$x^2-2x+2=0$の解は

$$x=1 \pm i$$

という虚数解です。

今回の目的

今回の目的を次のように設定します。

xを複素数としたときに、
$$ \begin{cases}
y=x^2-2x+2 \\
y=0
\end{cases} $$
の共有点が2つあることをグラフで示す!

実数と複素数で何がどう変わる?

高校1年生までは、$x$も$y$も実数ですから、これは、

実数$x$ を与えると、実数$y$ が1つに定まる関数のグラフ
つまり、
数直線上の1つの実数$x$を、また別の数直線上の1つの実数$y$へ移し変える関数のグラフ

ということになります。
つまり「2本の数直線」があれば、話ができます。
よって、

$x$ が実数ならば、
$y=x^2-2x+2 $ のグラフは、x軸とy軸で構成される「平面(2次元空間)」の上に描くことができる

ということです。
直線は「1次元」ですから、2本の直線で表現できる空間は、せいぜい「2次元空間」となります。

さて、

ここで$x$を複素数に拡張します。
そこで2つの実数$a,b$を使って$x=a+bi$としましょう。

$$ \begin{cases}
y=x^2-2x+2 \\
x=a+bi \\
i = \sqrt{-1}
\end{cases} $$

すると、式の計算結果$y$も複素数になります。
そこで2つの実数$c,d$を使って$y=c+di$としましょう。
すると、これは、

複素数$x=a+bi$ を与えると、複素数$y=c+di$ が1つに定まる関数のグラフ
つまり、
実数平面上の座標$(a,b)$を別の実数平面上の座標$(c,d)$に移し変える関数のグラフ

ということになります。
つまり「2つの平面」があれば、話ができます。
よって、

$x$ が複素数ならば、
$y=x^2-2x+2 $ のグラフは、平面a-bと平面c-dで構成される「4次元空間」の中で描くことができる

ということです。
平面は「2次元」ですから、2つの平面で表現できる空間は、せいぜい「4次元空間」となります。

拡張し過ぎた

上の考察から、コンピューターで「4次元のグラフ」を描けば、今回はミッションクリアできそうです。

・・・ん?

無理です!

私たちはどんなに精神を研ぎ澄ませても、3次元までしか空間の広がりを認識することができません。
ましてやグラフを描くことも見ることもできません。

これはコンピューターでも表示できません。

(計算だけならできます。表示が無理ということです)

グラフを3次元にまとめる!

ということで、何とかして3次元で済ませる方法を考えなければいけません。

グラフを3次元で描けるようにする

という「課題」が生まれてしまいました。

どうしたらよいでしょうか?

【豆知識】
問題解決の世界では、最終的に解決する「目的」のことを「問題」と呼びます。
そして、問題を解決する過程(途中)で乗り越えるべき「目標」のことを「課題」と呼びます。

そもそも何がしたかったのか?

道に迷ったら、目的の再確認です。

目的さえ達成すればよいのです。
もしかしたら「やらなくても良いこと」で悩んでいたりするかもしれません。

今回は、$y=x^2-2x+2 $ と $y=0 $ の共有点が2つあることをグラフで描きたかったのでした。

あ、な~るほど!

次元を減らす

目的の式をじーっと眺めていたら、思いつきました。

$ y=0 $なのですから、$y$の方は2次元も必要ありませんね。

だって0(ゼロ)の時だけ考えればよいのですから。そこで、

yの次元を2次元から1次元に減らす!

ことを考えましょう。

グラフ表示の方針

ということで、グラフに表示する方針をまとめましょう。

実数の世界のグラフは、横軸がx軸、縦軸がy軸です。

今回は$x$を複素数$a+bi$へ拡張したのですから、そのグラフは、

  • $x軸$を複素平面$a+bi$へ拡張(平面:2次元)
  • $y軸$も複素平面$c+di$へ拡張(平面:2次元)

としたかったのですが、無理でした。
これではグラフの座標が (a,b,c,d) の4次元になってしまい、描けないからです。
そこで次の方針としたのでした。

  • $x軸$を複素平面$a+bi$へ拡張(平面:2次元)
  • $y軸$は1次元に落とした値(直線:1次元)

つまり、

  • 横軸だったx軸は、横に広がる複素平面に拡張
  • 縦軸だったy軸は、実数の数直線のまま

これなら3次元の立体的なグラフで表すことができます。

あとは、縦軸のyをどのような値に決めるか、ですね!

案1:yの実数だけを縦軸にとる → 失敗!

そもそもグラフは実数しか描けません。
そのため、1つの複素数を2つの実数の組に対応させ、それを平面上に表すのでした。

であるならば、安直ではありますが、yの実部だけをグラフに採用すればよいかもしれません。

  • 横軸:複素数$ x=a+bi $(平面:2次元)
  • 縦軸:$y=c+di $の実部$c$(直線:1次元)

それでは、この案でグラフを描いてみましょう。
こうなりました。

馬の鞍みたいな形のグラフになりました。
最後の考察で、このグラフも少し使いますから、とりあえず「馬の鞍型」のグラフとでも呼んでおきましょう。

ちなみに、赤い線が、実数の$x-y$平面上のグラフ(平面 $ b=0 $ で切った切り口)です。

さて、これで目的は果たせたでしょうか・・・?

うーん、何だかよく分かりません。

$x$を複素数に拡張したおかげで、確かに平面$y=0$との共有点は存在しそうです。
しかし「共有点が2つ」である様子が、これでは分かりません。

よく考えてみたら、これはダメです。

もしも4次元のグラフが描けるとすれば、本来のグラフは、

(a,b,c,d) の4次元でグラフを描き、それを平面$c=0$でカットした切り口が、求める3次元のグラフ

が本当のグラフです(※)。
4次元のグラフは描けませんが、本来はそんな感じです。

そう考えると、無条件に$y$の虚部を捨ててしまったのがダメでした。

(※)【豆知識】
4次元の立体を平面で切ると、その切り口が3次元の立体になります。
私たちの世界は3次元です。私たちの世界で立体は3次元です。
例えば、スイカを包丁で切った時の断面を想像してみてください。
スイカは3次元の球です。それを2次元の平面でスパッと切ると、切り口が2次元の円になります。
4次元の世界は、私たちの世界よりも1つ次元が上ですから、上の考察をすべて1つずつランクアップして考えます。
つまり、4次元の中で球体を切ると、切り口が3次元の球になります。

案2:yの絶対値を縦軸にとる → 成功!

そこで、数学的に条件を壊さないことを考えます。

$y=c+di=0$

すなわち、

$c=0$かつ$d=0$の場合

を考えたグラフであれば目的を達成できるわけです。

ところで、

$|y|=0$も同様に$c=0$かつ$d=0$です。

ですから縦軸を$|y|$とすれば、これは実数ですから、うまく1次元に収まります。

  • 横軸:複素数$ x=a+bi $(平面:2次元)
  • 縦軸:$|y|$すなわち$\sqrt{c^2+d^2} $(直線:1次元)

それでは、この案でグラフを描いてみましょう。
こうなりました。

うまくいきました!

グラフの2カ所が尖っていて、2つの虚数解

$$x=1 \pm i$$

の所で平面$y=0$に突き刺さっていそうです。
共有点は「2だけ」ですから、平面$y=0$上で、それぞれ1点ずつ、チョン、チョンと、くっ付いているはずです。

グラフの解像度の問題で「点」まで鋭利に描き切れていません。
念のため、100倍に拡大してみましょう。

$x=1 + i$の付近を100倍に拡大してあります。
この倍率で$x=1 – i$も同時に描くのは不可能なので、1つだけで確認します。

どうです?

共有点の1つ$x=1 + i$の位置へ、グラフが突き刺さっている感じがしますよね。
このグラフを1000倍にしても、10000倍にしても、ずっとこんなグラフになります。

「1点に突き刺さ差っている!」

のですから、倍率をどこまで上げても、こんな感じです。
もちろん、$x=1 – i$ についても同様です。

これで本当に

「たった2点」だけの共有点を持つ!

ことが、グラフで表示できたのではないかと思います。

思ったより大変でした。

教えてエライ人!

上のような考察をFacebookにアップしていたら、色々な人からご意見をいただきました。
なかでも吉田先生には色々と教えていただきました。

ということで、今回のエライ人は、吉田信夫先生です!

吉田先生はあの「大学への数学」で原稿を書かれていた先生の内の1人です。
超すごくないっすか!

先生のブログ「yoshidanobuo’s diaryー高校数学の“思考・判断・表現力”を磨こう!」はこちらです。

グラフで虚数解を見える化するにあたり、いろいろとご指導をいただきました。
また数学的におかしな用語の使い方についてもご指摘いただき、修正することができました。

用語の誤用

今回やってしまった用語の誤用を2つ紹介します。

どこが間違っているのか、考えてみてください。

  • 誤用1:「$y=x^2-2x+2$の判別式の値は負です。」
  • 誤用2:「複素数$x=a+bi$と実数$y$において、$y=|x^2-2x+2|$のグラフ(a,b,y)は、平面$y=0$と2点で接しています。」

わかりますか?

私は吉田先生に指摘されるまで気づかなかったです。まさに

「それは違反です」

という感じで、用とあいなりました。

大学入試の2次試験で記述回答を予定している人は、気を付けてくださいね。

さて、上のものは次の点で間違っていました。

  • 誤用1:関数に対して判別式を語ったところがアウト。判別式は方程式「$0=x^2-2x+2$」に対して定義されるもの。
  • 誤用2:「接する」は「微分可能な領域」で定義されるもの。今回は尖っていて微分不可(微分する向きによって微分係数が異なる)。

さぁ、どうでしたか?

滑らかに「接する」グラフにする

さらに誤用2に関連して、グラフが2つの$x=1 \pm i$で「接する」ようなyの取り方も教えていただきました。

みなさん、分かります?

  • 横軸:複素数$ x=a+bi $(平面:2次元)
  • 縦軸:$|y|^2$すなわち$ c^2+d^2 $(直線:1次元)

それでは、この案でグラフを描いてみましょう。
こうなりました。

yの値が2乗されているので、グラフが大きくなりすぎて「2点」どころではなくなってしまいました。
そこで例によって、$x=1 + i$の付近を100倍に拡大してみましょう。

おお、本当に滑らかに接してそうですね!

例によって「1点」で接しているので、このグラフを1000倍にしても、10000倍にしても、ずっとこんなグラフになります。

次元を減らすもう1つの方法

さらにさらに、吉田先生からもう1つのグラフ表示の方法を教えていただきました。
$x=a+bi$ としたときに$y=0$を満たすような

$y=0$ を (a,b) だけで描く!

です。

つまり、(a,b)に色々な実数を当てはめて $x=a+bi$ を動かしたときに、$y$ がどのように動くかを図示します。
もう少し正確に言うと、$y=0$ を満たすような「yの実部」と「yの虚部」をそれぞれ平面(a,b)上に図示します。

$y$ の値もまた (a,b) の関係式として表現されるため、グラフの次元は(a,b)の2次元だけで済みます。
1つの複素平面だけで示すやり方です。

やってみましょう。まず、

$$ \begin{cases}
y=x^2-2x+2 \\
x=a+bi \\
y=c+di
\end{cases} $$

について、

$x=a+bi$ を $y=x^2-2x+2$ に代入して整理すれば、

$$ y=a^2-b^2-2a+2+2b(a-1)i $$

です。

$y=c+di=0$ すなわち $c=0$かつ$d=0$ の場合を考えるわけですから、

$$ \begin{cases}
a^2-b^2-2a+2=0 \\
かつ\\
2b(a-1)=0
\end{cases} $$

すなわち、

$$ \begin{cases}
b = \pm \sqrt{(a-1)^2+1} \\
かつ \\
a=1 または b=0
\end{cases} $$

です。
これらの交点が求める解になります。

あらためて、実部の$a$を$x$とし、虚部の$b$を$y$として、複素平面$x-y$にグラフを図示したのが下です。
これは吉田先生からいただいたグラフです(軸が$x-y$になっていますが、$a-b$に読み替えてください)。

$a^2-b^2-2a+2=0$のグラフが青で、$a=1$と$b=0$のグラフが赤です。

確かに複素平面の世界では、2点の共有点がありました。
そしてグラフの交点はそれぞれ、$ 1+i $ と $ 1-i $ です。

これは感動です!

考察とまとめ

もしも

$$ \begin{cases}
y=x^2-2x+2 \\
x=a+bi \\
y=c+di=0
\end{cases} $$

のグラフを4次元 $(a,b,c,d)$ の空間上に描けたとしましょう。

すると、上の吉田先生からいただいた平面グラフは、その4次元グラフを $y=0$ で切った切り口であるといえます。

やってみました。それが下のグラフです。

緑の実線が、実数の世界での2次関数のグラフです。
赤の実線と青の実線は、それぞれ上の平面グラフに対応しています。

このグラフをもとに、これまでの話を全て振り返ってみます。

まず青い曲面が、最初に描いた「馬の鞍型」のグラフです。
これは4次元グラフを平面 $ d=0 $ で切ったときにできる立体です。
そして、この青い曲面をさらにy=0で切ると、青い実線の双曲線になります。

次に、4次元グラフを平面 $ c=0 $ で切ったときにできる立体も考えます。
それが、上のグラフの赤い曲面です。
そして、その赤い曲面をさらにy=0で切ると、赤い実線の2直線になります。

そして青い双曲線と赤い直線の交点が、まさに $ 1 \pm i $ となっています。

これらの様子を総合すると、2次方程式の虚数解 $ 1 \pm i $ は、

  • 3次元空間 (a, b, c) の曲面(縦軸をyの実部としたグラフ)
  • 3次元空間 (a, b, d) の曲面(縦軸をyの虚部としたグラフ)
  • y=0の水平な平面

の3つを重ねた時にできる共有点

であることがグラフで確認できました。

グラフ表示に使ったPythonプログラム

今回、グラフを描くのにプログラミング言語の「パイソン(Python)」を使いました。
以下が、そのプログラムです。
Jupyterという環境を使いました。

ちなみに、パイソンのプログラミングを学ぶなら、無料で使える Google Colaboratory がオススメです。
もちろん下のプログラムも Google Colaboratory で動作します(動作確認済)。

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
%matplotlib inline
fig = plt.figure(figsize = (8, 8))

# Axes3D
ax = Axes3D(fig)

# タイトルを設定
ax.set_title(“$y=|x^2-2x+2|$”, size = 20)
#ax.set_title(“$ y = |x^2-2x+2|^2 *100 $”, size = 20)

# 軸ラベルを設定
ax.set_xlabel(“x-Real”, size = 14)
ax.set_ylabel(“x-Image”, size = 14)
ax.set_zlabel(“y”, size = 14)

# 表示角度の設定
ax.view_init(elev=10, azim=35)

# 座標のメッシュ
rr = np.linspace(-1.5, 3.5, 200)
ii = np.linspace(-1.5, 3.5, 200)
#rr = np.linspace(0.9, 1.1, 200)
#ii = np.linspace(0.9, 1.1, 200)
i0 = np.zeros(200)
r,i = np.meshgrid(rr, ii)
z = r + i*1j

# 曲線・曲面を描画
y0 = r*r-2*r+2
ax.plot_wireframe(rr, i0, y0, color = “red”)
y = np.abs( z*z-2*z+2 )
#y = ( np.abs( z*z-2*z+2 ) )**2 *100
ax.plot_surface(r, i, y, color = “yellow”, alpha=0.4)
plt.show()

あとがき

どの学年も文字式と関数の季節になりました。

今年から中学生は教科書改訂で「主体的な学び」が重視され、プログラミング教育も強化されました。
来年からは高校生でもそうなります。

そういう流れの中で、今回は、

高校生のレベルで数学を題材に「主体的な学び」を「プログラミング」も活用して行ったらどうなるか?

を実践してみました。

さらに今後の常識というか、新しい価値観である

「集合知」で「問題解決を加速する」という姿勢

も取り入れてみました。
ですから、問題解決の用語や流れも、それとなく意識してあります。

これが次世代型の教育であり、同時に、いま日本で遅れてしまっている教育でもあります。

今のところ私はそのように思っております。

教育者も間違えます。
先生が何でも知っていて間違いを起こさない聖人君子である、なんていう時代は終わっています。
そもそも非科学的で不合理です。

もう、1人の聖人君子や、優れたリーダー、1部の天才に問題の解決を任せるよな時代では、ありません。
というか、そんな人はいません。
幻想です。

今や、世界中の人たちがコンピューターでつながっているのです。
みんなが意見や知恵を出し合う「集合知」で、いち早く問題を解決していこう!
そのように考える方が大切です。

このような価値観でコンピューターを活用しながら問題解決を実践できる人。

それが、これから日本で、いや世界で多く必要とされる人たちなのだと思います。

現場からは以上です。

 


生徒・保護者様のお友達登録はこちら

LINE登録するとプレゼントがもらえます!
【会員限定】お子様の成績と可能性を伸ばす18個のノウハウ

友だち追加


塾関係者様のお友達登録はこちら

LINE登録するとプレゼントがもらえます!
「zoomで簡単。オンライン授業移行の教科書」
または個別対談も可

友だち追加

 


名古屋市天白区の植田で塾を探すなら個別指導のヒーローズ!!

★ 直接のお問い合わせ ★
――――――――――――――――――――――
個別指導ヒーローズ 植田一本松校
〒468-0009
名古屋市天白区元植田1-202 金光ビル2F
TEL:052-893-9759
教室の様子(360度カメラ) http://urx.blue/HCgL

夏休みの自由研究 かけ算とわり算の原理をプログラミング

塾長です。

いよいよ夏休みも後半です。

学生のキミたち、そろそろ読書感想文や自由研究に着手しましょう。

ということで、自由研究ネタを1つご提供します。

算数の研究です。

しかし、内容が深くてプログラミングもありますから、きっと中学生でも使えるでしょう。

算数や数学で「文章問題が苦手」という人には、特にチャレンジして欲しいです。

そもそも「かけ算」や「わり算」の意味とは?

もしも小学1年生や2年生から、次のように質問されたら、どのように答えますか?

  • 「かけ算」とは何ですか?
  • 「わり算」とは何ですか?

塾長は、次のように答えます。

  • 「かけ算」とは「たし算の繰り返し」です
  • 「わり算」とは「ひき算の繰り返し」です

なぜなら、

人類で初めて「かけ算」や「わり算」を発明した人は、きっと上のように考えたに違いない!

塾長は、そうに思うからです。

これをプログラミングで確かめていきたいと思います。

「たし算」で「かけ算」をプログラミングする

もしも「かけ算」が「たし算の繰り返し」なら、その通りに計算ができるはずです。
やってみましょう。

具体的な例から「かけ算」のパターンを考える

5×3の場合

例えば、5×3の計算を考えましょう。

5×3=5+5+5=「5を3個たす」=15(積)
ここで「たし算」の「+」記号は2個です。

つまり、

5を「3個」たすときは、たし算を「2回」使います。
たし算の回数は3-1=2回です。

7×6の場合

もう1つの例、7×6の計算ではどうでしょう。

7×6=7+7+7+7+7+7=「7を6個たす」=42(積)
ここで「たし算」の「+」記号は5個です。

つまり、

7を「6個」たすときは、たし算を「5回」使います。
たし算の回数は6-1=5回です。

「かける数」は「たした個数」

まとめます。

m×nの場合

一般化して、m×nの積を計算する方法を考えます。

上の2つの例から、これは「mをn個たす」です。
そして、たし算を使う回数は(n-1)回です。

つまり、

m×nとは、mに(nー1)回だけmをたし算すること

まとまりました。

スクラッチでプログラミング

それでは上のm×nの手順をプログラムにしてみましょう。

mにmをnー1回たす

これをプログラミングしたのが次です。

たし算でかけ算をプログラミングした図

  1. 「積」という変数を用意して、それにmを代入
  2. 「積にmをたす」という処理を(nー1)回くりかえす
  3. 「積」を表示

試しに、4×9でプログラムを実行しました。結果は36で正しいです。

つまり「たし算」を繰り返せば、確かに「かけ算」を計算できることが分かりました。

そしてこのプログラムは、どんな自然数どうしのかけ算でも計算できます。

プログラムのカイゼン

ところで、このプログラムは1つ分かりにくい所があります。

「×n」なのに、繰り返す回数が「n-1回」です。
「かける数」と「回数」が1つズレています。

これを同じにできれば、もっとプログラムが分かり易くなります。

そこで、こう考えたらどうでしょうか。

変更前: 最初に「積」という変数を用意して、それにmを代入します。
変更後: 最初に「積」という変数を用意して、それに0を代入します。

こうすれば、繰り返し回数もnになります。
つまりプログラムがこうなります。

プログラムがシンプルで見やすくなりました。

「かける数」は「0にたした回数」だった!?

プログラムを見やすくするために、上のように改善しました。

逆に、このプログラムが行っている処理を式で表すと、どうなるでしょうか。

例えば、7×6の場合に戻れば、こうなります。

変更前: 7×6=  7+7+7+7+7+7+7
変更後: 7×6=0+7+7+7+7+7+7+7

単に「かける数」と「たす回数」が同じになるように工夫しただけですが、実は、こうした方が数学的にも良いことが分かっています。

それは「かける数」を3、2、1、0と小さくしていけば分かります。
変更前の考え方では、

7×3=「7に7を2回たす」
7×2=「7に7を1回たす」
7×1=「7に7を0回たす」
7×0=「7に7を?回たす」

となってしまい、7×0を考えることができません。
一方、変更後の考え方ならば、

7×3=「0に7を3回たす」
7×2=「0に7を2回たす」
7×1=「0に7を1回たす」
7×0=「0に7を0回たす」

となりますから、ちゃんと7×0=0も計算できます。

ちなみに0という数も人類が「発明」した数なのだそうです。

「ひき算」で「わり算」をプログラミングする

たし算と同じように、わり算についても考えてみましょう。

もしも「わり算」が「ひき算の繰り返し」なら、その通りに計算ができるはずです。

やってみましょう。

具体的な例から計算のパターンを考える

9÷3の場合

例えば、9÷3の計算を考えましょう。

9÷3=「9の中に3がいくつあるか?」=「9-3-3-3=0だから9から3を3回ひけた」=3(商)
ここで「ひき算」の「-」記号は3個です。

つまり、

9から3を「3回」ひき算できたから、商は3です。

12÷5の場合

もう1つの例、12÷5の計算ではどうでしょう。

14÷5=「14の中に5はいくつ?」=14-5-5=2だから2回ひけて4あまった」=2(商)あまり4
ここで「ひき算」の「-」記号は2個です。
まだ4余っていますが、3回目の引き算まではできません。

つまり、

14から5を「2回」ひき算できて4余るから、商は2あまりは4です。

「商」とは「引くことができた回数」

まとめます。

m÷nの場合

一般化して、m÷nの商とあまりを計算する方法を考えます。

上の2つの例から、商は「mからnを引ける回数」です。
しかし、ひき算できる回数は、計算してみなければ分かりません。
1回引いてみて、まだ引けそうならもう1回引いてみて・・・という計算を繰り返します。

m-n=〇 もしも 〇>n ならば もう1回引ける・・・

という判断を繰り返してい良く計算です。
ですから、

わり算で商と余りを求めるとは、

m-n-n・・・-n=△ かつ 0≦△<n
k回引けたので商がk、余りが△

という処理をすること

まとまりました。

スクラッチでプログラミング

それでは上のm÷nの手順をプログラムにしてみましょう。
それが次です。

ひき算でわり算をプログラミングした例

  1. 商(引けた回数)を0回に設定、余り(引き算の残り)をmに設定
  2. 余り に 余り―n を代入し、商に1をたす(引いた回数を数える)
    これを 余り<n になるまで繰り返す
  3. 商と余りを表示

「あまり」は文字通り「余りもの」だった!?

上の処理からわかるように、余りは文字通りの余りでね。

mからnを何度もひき算して、もうこれ以上はひき算できない。
けれども中途半端に数が残っている。

それが余りです。

「わり算」を「お茶くみ」の手順で考えれば、商が小数でも解ける!?

ところで、これまで「わり算」の意味を

m÷n=「mの中にnがいくつあるか?」

としていました。
しかし、m÷mの意味は、もう1つあります。

m÷n=「mをn当分したら、1つあたりいくつになるか?」

これは、お茶くみの手順で考えれば、解くことができます。

mミリリットルのお茶をn個のコップに入れていくと、1人あたり何ミリリットル?

mミリリットルを全て急須にいれて、n個のコップを並べます。
急須から少しずつn個のコップへお茶を注いでいき、均等になるようにしますよね。

そして、急須の中の量が少なくなるにつれて、分配するお茶の量も少なくしていきますよね。
最後の1周は1滴ずつとか(そこまでやらないか)。

この手順をプログラムにすればよいのです。

  • まず、1ミリリットルずつ順番にn個のコップに入れていきます。
  • そして、余りが1×nミリリットル未満になったら、今度は0.1ミリリットルずつ入れていきます。
  • そして、余りが0.1×nミリリットル未満になったら、今度は0.01ミリリットルずつ入れていきます。
  • そして、余りが0.01×nミリリットル未満になったら、今度は0.001ミリリットルずつ入れていきます。

・・・これを繰り返していき、最後に1つのコップに入っているお茶の量が商になります。

このようにすると、商が小数になるようなわり算でも「ひき算」の繰り返しで計算できることが分かるでしょう。

プログラミングは、みなさんの宿題にしたいと思います。

たし算の記号「+」と、かけ算の記号「×」が似ている理由

上で見たように、かけ算はたし算で計算できます。

そう考えると、かけ算の記号「×」と、たし算の「+」が似ているのも納得ですよね。

「+」を少しだけ変えて「×」が作られています。
というか、角度を45度かたむけただけですね。

似ているどころか、形は何も変わっていません。

よく考えられていますね。

ひき算の記号「-」と、わり算の記号「÷」が似ている理由

わり算は、ひき算の繰り返しでしたから、

わり算の記号「÷」と、ひき算の「-」が似ているのも納得です。

ただ、形も変わっています。
真ん中の横線は共通ですが、それに上下の「・」マークが追加されています。

これは「わり算」=「分数」だからでしょう。

m÷n=$ \frac{n}{m} $

と書けることは、小学5年生の算数の単元「等しい分数」で習います。
分数の形をデフォルメすれば、正に「÷」というピクトグラムになりますね。

よく考えられています。

わり算のもう1つの記号「/」

ところで、エクセルやプログラミングの計算式では、わり算の記号を「/」で表しています。

たし算の記号「+」を傾けて、かけ算の記号を「×」としたように、
ひき算の記号「-」を傾けて、わり算の記号を「/」とした方が、統一感があります。

グーグル検索で調べてみると、海外の学校や教科書では、むしろ「/」を採用している方が普通のようです。

さらにコロン「:」を使っている国もあるそうですよ。
なるほど、その手もありますね。

これからコンピューターの利用が進んでくると、わざわざキーボードにない「÷」を使うのはめんどうですね。
もしかしたら日本も将来は「/」になるのかもしれません。

ちなみにプログラミング言語 Pythonでは、

  • m/n ・・・ m÷nの商(小数)
  • m//n ・・・ m÷nの商(整数)
  • m%n ・・・ m÷nの余り(整数)

という使い分けをしています。

コンピューターは「たし算」と「ひき算」しかできない!?

今から10年以上前に、塾長は趣味で望遠鏡を動かすプログラミングをしていました。

乾電池で動くような、とても小さなコンピューターを動かすプログラムでした。
このような小さなコンピューターは「マイコン」と呼ばれています。

マイコンにも色々ありますが、指先に載るような小さなものになると、使える命令がとても少ないです。

そのとき使っのは、PIC16Fなんちゃら、というマイコンでした。
それには四則計算の命令が「たし算」と「ひき算」の2つしかありませんでした。

「かけ算」と「わり算」が無いのです。

電卓を買ったら「×」と「÷」のボタンがなかった・・・というくらい衝撃でした。

「かけ算」や「わり算」が1回で計算できるコンピューターは高級品なのだと、そのとき知りました。
逆に、そのような高性能なコンピューターでも、中身は「たし算」と「ひき算」の組み合わせだけで作られているのだと実感しました。

考えてもみれば、これは当然です。

コンピューターはデジタルですから、0と1の数字をたくさん並べて計算しています。

0に1をたしたら1で、1から1を引いたら0です。
そのような処理を、膨大な数だけこなして、結果的にたくさん複雑な処理をしています。

だから究極的には、たし算とひき算しかしていません。

そう考えると今回は、

コンピューターの原理だけを使って「かけ算」や「わり算」をプログラミングした

とも言えます。
ちょっと大袈裟ですかね。

何はともあれ、計算には意味があります。
上のように「かけ算」や「わり算」の意味を深く理解してしまえば、文章題も怖くはありません。

あとがき

教科書が分かりやすくなり、一部はデジタル化しました。
無料で多くの分かりやすい解説動画が視聴できるようになりました。

分かりやすい教材があふれている今日ですが、だからといって、昔に比べて優秀な生徒が増えたという印象はありません。
つまり今も昔も、相変わらず

計算はできるけど文章題ができない

というのが、多くの生徒たちの悩みです。

計算の「やり方」はドリルで訓練しやすいです。
早く計算する「テクニック」も指導の良いネタです。

その一方で、

計算の「意味」や本質を考えさせるようなコンテンツは、なかなかウケません。
むしろ眠くなります。

しかし、それらにこだわって勉強しなければ、なかなか文章問題が得意にはならないでしょう。
そこが腕の見せどころ、と言ったところでしょうか。
きっとベテランの先生は、そういうのが得意なのだと思います。

ですから、より本質をつくようで、なおかつ面白くて飽きさせないようなコンテンツが、
きっとこれから先、どんどん登場してくることでしょう。

もしもプログラミングを活用した上のような事例が、その好例になるのなら幸いです。

 


生徒・保護者様のお友達登録はこちら

LINE登録するとプレゼントがもらえます!
【会員限定】お子様の成績と可能性を伸ばす18個のノウハウ

友だち追加


塾関係者様のお友達登録はこちら

LINE登録するとプレゼントがもらえます!
「zoomで簡単。オンライン授業移行の教科書」
または個別対談も可

友だち追加

 


名古屋市天白区の植田で塾を探すなら個別指導のヒーローズ!!

★ 直接のお問い合わせ ★
――――――――――――――――――――――
個別指導ヒーローズ 植田一本松校
〒468-0009
名古屋市天白区元植田1-202 金光ビル2F
TEL:052-893-9759
教室の様子(360度カメラ) http://urx.blue/HCgL

2021年8月ヒーローズ植田一本松校の運営方針と勉強方法

2021年8月の塾のカレンダー

塾長です。

愛知県は独自に「厳重警戒宣言」というものを発出しています。
そして8/4の記者会見では、間もなく「まん延防止等重点措置」に切り替える方針を出しました。

いろいろ変化が激しくて分かりにくいと思いますので、結論をまとめます。
当熟としての活動方針は次の通りでございます。

8月の教室の運営方針

年間カレンダーの通りに運営していく方針です。

2021年8月の塾のカレンダー

よって以下はお休みです。

休校期間: 8月8日(日)~8月15日(日)

8月16日(月)から夏期講習の後半を始業します。
詳細は夏期講習と一緒にご案内した「日程確認表」または「年間カレンダー」をご確認くださいませ。

注意事項

この教室の運営方針は、状況を見て適切に変更する場合がございます。
また他塾の運営方針とは一切関係がありませんので、比較や非難はおやめください。
愛知県独自の「厳重警戒宣言」や、日本の法令に基づく「まん延防止等重点措置」については、各行政の窓口にお問い合わせください。

塾がお休みの間にやっておくべきこと

優先度の高い順に以下のとおりです。

全員共通

  1. 学校からの宿題で、あと何が残っているかを一覧に書き出して把握すること
  2. できるだけ学校の宿題を進め、質問を「探して」おくこと
    → 休み明けに塾へ持ってくるように
  3. 漢字や英単語など、数の多いものの暗記を少しでも多く進めておくこと
  4. 書写・読書感想文・自由研究など、時間のかかる課題を終わらせておくこと

講習生

  1. 受講済みの単元について、間違いの解き直しをしておくこと
  2. 夏期講習のテキストのなかで「自分だけの力ででできそうな部分」を進めておくこと

受験生

高校受験生

  1. 新研究またはファイナルステージで暗記の抜け漏れ確認の2周目を終わらせること
    (進みの遅い生徒やスポーツ推薦の生徒は1周目を終わらせること)
  2. 愛知全県模試の第1回および第2回を解き直しておくこと
  3. 英語・数学・国語は、中学2年生以降の定期テストの問題を解き直しておくこと
  4. 理科・社会は、中学1年生以降の定期テストの問題を解き直しておくこと

大学受験生

それぞれ個別に指示した通り

教科書を頭に入れること!

上記の全てについて、共通の注意事項を書きます。

必ず教科書で確認する!

これを決して怠らないようにしてください。

入試や模試において「情報のソース」「ファクトチェック」「解答の根拠」は全て教科書となります。
よって、教科書が頭に入っていないのに、ただ問題集を繰り返すだけというのは、何もしていないのと同じです。

特に受験生にとって「夏までは基礎の徹底」などとよく言われます。
ちなみに

「基礎」とは「教科書を自分で作れる」くらいの実力

のことです。

××「基礎とは、簡単な問題が解けること」

こんな風に大きな勘違いをしている人は気を付けましょう。

教科書に書いてあることで、まだ覚えていないことがあれば焦りましょう。
教科書で知識の抜け漏れをどんどんチェックし、もしも抜けていたらすぐに頭に入れていください。

それが夏休みにやるべき「基礎の徹底」です。

今はそういう時期です。
知らないのに考えることはできません。

生徒たちを指導していると「できない」の99%は「知らない」です。

教科書を見ず、ただ問題集と模範解答だけを見つめて勉強を進めるのは、時間の無駄というものです。
そういう時間の無駄は止めましょう。

難し問題集を持っていても、別に偉くも何ともありません。

入試問題は教科書の範囲から出題されます。
資料問題も教科書の資料と類似のもので出題されることが多いです。

教科書を頭に入れるとは?

事例で補足します。

(例1)理科で溶解度の計算問題ができなかった

この場合は、まず次の用語の意味を正確に言えるかセルフチェックします。

  • 溶解度とは何か
  • 溶解度から何をいくつ連想できるか

教科書では「溶解度」を次の様に説明されています。

ふつう水100gに解ける物質の最大量(g)をその物質の溶解度という

これを言えない時点でアウトです。
すぐに覚える必要があります。
逆に、これを覚えていれば、計算式もすぐに出てきます。

また「飽和水溶液」「再結晶」などとその意味が、すぐ言えないなら焦りましょう。
試験で問題文の意味を正確に解釈できない危険性が高いです。

逆に、問題文が正確に理解できれば、問題の半分は解けたようなものです。

(例2)Do you playing soccer? のような文法間違えをした

英語の場合、そもそも何を間違えたのか自分では判断できないことが多いです。
実際には実力者や塾の先生などに指摘してもらう必要があります。

それは置いといて、今回はあくまでも

「教科書を見直すとはどういうことか」

という趣旨で説明しますので、そのつもりでお読みいただければ幸いです。

この間違えの原因は「一般動詞の文」と「be動詞の文」の区別が、まだまだ曖昧ということでしょう。

愛知県の中学生は NEW HORIZON です。この教科書でいえば

  • 新教科書 NEW HORIZON 中1 P26~27
  • 旧教科書 NEW HORIZON 中1 P36とP44

のあたりが頭から抜けているということになります。
知っているつもりでも、実は知らなかった、分かっていなかった、というものでしょう。

加えて、現在進行形はそもそも「be動詞の文」であり、「一般動詞のing形は、そもそも動詞ではない」という理解も大切です。
このあたりの説明は、

  • 新教科書 NEW HORIZON 中1 P102
  • 旧教科書 NEW HORIZON 中1 P36とP44

が頭から抜けているということになります。

このように、教科書を使って「基礎の徹底」を図ってください。

教科書は全員が持っているものなので、それだけ大切です。
読み返すたびに「新しい発見」があると思います。

もちろん、教科書よりも良い参考書を持っているなら、それを教科書の代わりに使っても良いです。

もっとも教科書よりも良い参考書を見つけるのも、それはそれでノウハウが必要です。

教科書の「説明の仕方」が国語力の基礎になる

最後にもう1つ。

言葉の表現力は、どこから来るのでしょうか?

私はテンプレの寄せ集めから生まれると思っています。そして「テンプレ」(テンプレート)とは教科書です。

国語力は、国語の教科書だけを読んでも養われません。

理科には理科の、算数や数学には算数や数学の、英語には英語の「ものの言い方」というものがあるからです。
それぞれの教科(知識体系)に出てくる、ものの言い方、つまりテンプレを学ばない限り、それらを組み合わせた「文章」など、編めるはずがありません。

言い換えると、国語力というのは総合力です。
国語の教科書で学べることは、他の教科書で学んだテンプレを集めて「文脈」をつくったり理解したりする能力です。

ざっくりとまとめてしまえば、次のような関係です。

  • テンプレを学ぶ → 算数・数学、理科、社会、英語、美術、技術、体育・・・
  • 文脈を学ぶ   → 国語

ですから教科書を頭に入れるということは、国語力、ひいては自分が何かを表現するときの基礎になるということです。

自分の人生のすべてに関わってくると思います。

若いうちは、できるだけたくさん教科書から「テンプレ」を吸収しておいた方が良いと思います。
オリジナリティや創造性などは、それができてから、その次の段階です。

 


生徒・保護者様のお友達登録はこちら

LINE登録するとプレゼントがもらえます!
【会員限定】お子様の成績と可能性を伸ばす18個のノウハウ

友だち追加


塾関係者様のお友達登録はこちら

LINE登録するとプレゼントがもらえます!
「zoomで簡単。オンライン授業移行の教科書」
または個別対談も可

友だち追加

 


名古屋市天白区の植田で塾を探すなら個別指導のヒーローズ!!

★ 直接のお問い合わせ ★
――――――――――――――――――――――
個別指導ヒーローズ 植田一本松校
〒468-0009
名古屋市天白区元植田1-202 金光ビル2F
TEL:052-893-9759
教室の様子(360度カメラ) http://urx.blue/HCgL

プログラミング教育 なぜパイソンが人気でオススメなのか?

pythonって知ってる?

宇宙とコンピューターが大好きな塾長です。

学校の先生や塾の先生が知っておくべき3大プログラミング言語といえば、

  1. Scratch(スクラッチ)
  2. python(パイソン)
  3. JavaScript(ジャバスクリプト)

ですね!(塾長の偏見です)。

冗談を抜きにしても名前くらいは知っておくべきで、けっこう重要なキーワードだとは思います。

中でもpythonの人気はずっと上昇傾向ですね。

先日はプロコースの生徒たちを指導しましたが、python(パイソン)を使っています。プログラミング教室「マイクラミング」の話です。
そして先週、新規面談をした中学生も独学でpythonを学び始めたと言っていました。なぜかドヤ顔。最近は単に「プログラミングを勉強している」というより「pythonをやっている」という方がマウントをとれるのでしょうか。
また別の会議では、とあるプロバイダーのとある技術者さんが「python本格的にやりたいなー」とおっしゃってました。

そんな感じで私の身の回りでもpythonが盛り上がってきています。

ということで、今回は

  • なぜ、python は人気上昇中なのか?
  • なぜ、python がおすすめなのか?

について書きます。

ただし、どうしても塾長の感想を含んでしまうので、そこはごめんなさい。

pythonの対象年齢(対象レベル)とは

人気があるとはいえ、pythonは「テキストプログラム」のプログラミング言語です。そのため、どうしても次のハードルが出てきます。

  • 英単語をたくさん使う
  • 1文字でもタイプミスをしたら動かない

確かにpythonの文法はシンプルですが、それでも直ちに「小学生にもわかりやすい」とはなりません。少なくとも上の2つのハードルをクリアできる精神年齢が必要です。

もしも上の2点が心配ならば、スクラッチ(Scratch)から始めるのが無難だと思います。

例えば、1文字でもタイプミスをすれば動きません。カンマとピリオドを間違えただけでもエラーです。次の2つの例を見比べてみてください。

name = "太郎"
print( "私の名前は{}です。",format( name ) )
name = "太郎"
print( "私の名前は{}です。".format( name ) )

上のプログラムは間違っていて動きませんが、下のは正しいです。

たったの1文字の差です。

こうした1文字の間違えでも冷静かつ前向きに対処できる精神年齢(IQ的な能力)が必要です。

学年や年齢ではなく、次のような感覚で判断した方が無難だと思います。

プログラミングが初めての場合

  • 学力が平均点くらいの中学1年生
  • ミスに対して前向きで、ミスの原因を調べたり予想したりするのが得意な小学5年生
  • 英語で作文が得意な小学3年生

くらいが対象の下限になると思います。

プログラミング経験がある場合

  • マイクラミングのハイコース卒業者
  • スクラッチで「自分で考えて」一通りのプログラミングができる人
  • 他のテキストプログラミング言語で「自分で考えて」一通りの制御構文をプログラミングできる人

必ずしも文法の詳細を暗記している必要はなく、調べながらでも良いですが、「自分で考えて」プログラミングしてきたことが必須です。

考えなしに教科書やネットからコピー&ペーストしただけでは、たとえそれが動いたとしても、プログラミングを経験したことにはなりません。
たまにそういう人がいるので注意してください。

pythonが人気の理由

ネット上でpythonが人気だーと話題になるのは主に2つです。

  1. 人気ランキングでpythonが上位
  2. pythonの求人は年収が高い

ランキング上位について

人気ランキングというのは、プログラマーからの人気投票の結果です。どんな理由でも1票は1票ですから「なんとなく人気があって上位」ということです。
とにかく大雑把に「pythonが好き」という人の割合が高いよ、ということくらいしか分かりません。

後半で塾長がpythonを使ってみた感想を書いておきますので、参考にしてみてください。

年収が高い件について

これは人材の人数が少ないという意味で、確かに高収入になりやすいです。

pythonの求人内容は、主に情報解析や人工知能を使ったプログラミングです。

  • 情報処理や人工知能を扱える高度な数学を身に着けている!
    なおかつ、
  • pythonでプログラミングができる!

そんな高い能力を持った人なんて、そもそも人数が少ないです。
人にできないことができるのですから給料が高くなります。

今のところ、その種の仕事は数が少ないです。
しかし今後は増えていくと見込まれていますから、学生の皆さんは希望を持って良いと思います。

とはいえ、3年後、5年後にどうなるかは分かりません。
工業的なニーズや商業的なニーズは、就職する時が来たら、その時に流行っているもので考えた方が実用的です。

もしも就職がずっと先であるならば、

「できるだけ学校の勉強をプログラミングに生かす」

という姿勢で「基礎」をしっかり鍛えておくのが良いと思います。
そういう意味では業界色の薄いpythonやScratchが無難ですね。

プログラミング言語 python の特徴

次にプログラミング言語としての特徴を挙げてみました。

pythonの特長

  1. 文法がシンプルかつ十分(短い文で済む、カッコ不要など)
  2. 高機能(高度な技術、トレンドば技術にすぐ対応)
  3. マルチプラットフォーム(WindowsでもMacでもLinuxでも富岳でも)
  4. 書いたらすぐ実行できる(コンパイル不要)
  5. 基本的に全て無料
  6. すぐに調べられる(解説ページやサンプルプログラムが多い)

pythonの得意分野

  1. 統計の全般
  2. 科学シミュレーション
  3. 人工知能の利用や開発
  4. 画像処理
  5. Webサーバー
  6. ゲーム(遅くても良い分野)

およそ何でもOKです。
日本のスーパーコンピューター「富岳」でも、ちゃんとpythonでプログラミングができますよ。

pythonの苦手分野

  1. 高速処理が必要なゲームプログラム
  2. 高速で高スループットな処理が必要なサーバープログラム

書いたらすぐに実行できる「インタープリター言語」であるため、どうしても計算スピードが犠牲になります。
そのため極端に計算スピードを要求されてしまうような処理には向きません。

フォートナイトやファイナルファンタジーのような本格的なCGのゲーム開発は無理です。
また動画編集ソフトや高度な画像編集ソフトも、pythonで開発するには無理があるでしょう。
pythonでは性能不足です。

CPUやGPUの性能を限界まで使いきるような超高速処理のプログラムを作るなら、C言語やC++、あるいはそのWindows版であるC#がおすすめです。
ほんの少しだけ性能を妥協する代わりに、マルチプラットフォームで動くアプリを作るならJavaがおすすめです。マルチプラットフォームの中ではJavaが最速です。

ただし、そのようなアプりの中で「作業を自動化するためのプログラミング言語」としてpythonが採用されている場合もあります。例えばBlenderというCGを作るアプリです。

性能を抜きにすれば、pythonはトップレベルに強力なプログラミング言語と言えます。

実際にpythonを使ってみた感想

塾長はこれまで、仕事やバイトなどで、C言語、C++、Objective C、Visual C++、Visual Basic、BASIC、Java、JavaScript、PHP、python、SQL(どこまでプログラミング言語とみなすか悩ましいですが)などを使ってきました。

結論から言えば、それらの中で pythonがダントツに良かったです。

書きやすいし、読みやすいし、思ったことがすぐできる!

という意味で、とにかく使いやすいです。初めてpythonを使ってみたときは、本当に衝撃でしたよ。

プログラマーの視点で優れていること

まず「プログラマーの視点」から見て、使いやすいです。

簡潔で読みやすくて無駄がない。それなのに、奥が深い!

そんな文法です。

きっと、プログラミングに関する「先人の知恵」が、ふんだんに組み込まれているから、そんなエレガントな文法になったのでしょう。

例えば「デザインパターン」研究されてきた知恵の一部が、言語の仕様として最初から組み込まれています。デコレーターやイテレーションなどです。
他にも、標準で用意されているオブジェクトの型の種類がちょうど良いです。細かすぎず、粗すぎず、それでいて、順序付けできるか否か、イテレーティブか否か、変更できるか否か、というカテゴライズの全てを網羅しているラインナップです。

ちょっと細かい話になってしまいましたが、要するに、本当によく考えこまれた言語だなぁと思います。

こうした言語仕様の何がすごいかと言えば、pythonで良いプログラムを書くだけで、良い設計をしたのと同じ価値が生まれるということです。
コーディングと設計の区別が、もはや無くなってきたということです。
優れた言語仕様と読みやすさが相まって、pythonのプログラムは仕様書としての価値も高いと言えます。

実際 pythonには、プログラムから仕様書を自動生成してしまうツールがいくつか用意されています。

とはいえ、こうした「プログラマーの視点」から見たエレガントさは、他の新しいプログラミング言語も負けてはいません。いろいろなプログラミング言語がタケノコのように、あちこちで生まれている時代です。

しかし、それでもなお、pythonが凄いと言いたいです。その理由は次の通りです。

科学技術の視点で優れていること

pythonは、なんと「数学や物理の視点」から見ても使いやすいのです!

他のプログラミング言語と一線を画す理由が、正にこれだと塾長は思います。

これまでのプログラミング言語は、数学や物理を取るか、アプリを取るか、のどちらかでした。
数学や物理が得意になれば、アプリを作るのが苦手になります。
アプリを作るのが得意になれば、数学や物理が苦手になります。

ところがpythonは最初から両方できます。

数学や物理が使いやすいので、pythonは大学の研究室や企業の研究開発で、よく使われています。

かつて理系の研究室ではC言語やC++(以降、まとめて単にCと略記します)を使って、研究に使う数学や物理の公式をプログラミングしていました。Cは何でも作ることができて、しかもプログラムが爆速で動作する、という最強のプログラミング言語ですが、その代わりに、何でも自分たちで用意する必要があります。先輩から後輩へプログラムを引き継いで、改良したり機能を拡張したりして、多くのコストと時間をかけてプログラムをメンテナンスしていく必要がありました。

しかし今は pythonのおかげで、そんな苦労の大部分が不要になってしまいました。pythonではたいていのことが最初からできるからです。

よっぽど計算スピードが重要になる研究でもしない限り、もう研究室でCをやる必要はありません。Pythonのお手軽さを1度でも味わってしまったら、もうCには戻れないでしょう。

そして実は、pythonはCと仲良しです。python自身がCで作られているからです。そのためスピードが重要な部分だけCで作り、残りをpythonでつくる、というハイブリッドな開発もできてしまいます。実際に高速なライブラリーも多く提供されています。

さて、数学や物理のプログラミングがしやすいということは、数学や理科の教科書の延長線上でpythonが利用しやすい、ということです。つまり、これからは高校生や大学1年生の教育でもPytnonの利用が増えると思います。

Pytnonのプログラミングに慣れてしまうと、もう他の言語が「めんどう」「ムダが多い」などと思えてしまいます。

人気の秘密はこうしたエレガントさにあるのだろうと勝手に想像しています。

忘れても問題ない文法とは?

誤解をしてほしくないので、最後にテキストプログラムの文法について補足しておきます。

今回のブログでは、pythonのメリットを語るために、文法や言語仕様について多く書きました。

でも誤解をしないでください。実際には文法を細かく「暗記」する必要はありません。しかも、これはpythonに限ったことではありません。

プロの世界でさえも、細かい文法は調べながらプログラミングしています。

意外でしょうか?

でも、これは常識です。例えば、

「C言語で仕事するのは2年ぶりだな。if 文の書き方はJavaとどう違うんだっけ?」

「PHPひさしぶり。文字と文字を連結する演算子は何だっけ?」

みたいなことは、プロでもよくあります。

プロの世界では1人が7~8種類のプログラミング言語を扱うのが普通です。C言語だけ、pythonだけ、というプログラマーなんて新人くらいです。
とはいえ1つのプロジェクトに使うプログラム言語は1~3種類くらいで済みます。ですから1つのプロジェクトに従事している間は、残りの使っていないプログラミング言語の細かいことは、忘れてしまいます。

たいていのプログラミング言語は似ていますが、細かいところで違います。そのような

プログラミング言語によって異なる部分

については、いちいち細かく覚えていられませんし、そこの暗記にこだわる必要もありません。
代わりに、

  • 標準で使えるオブジェクトの型は言語によって違う
  • 変数の初期化、参照、代入の作法が言語によって違う
  • 分岐は if – else が基本だが、細かいルールや switch を使えるかなどは言語によって違う
  • 繰り返しは for や while が基本だが、細かいルールは言語によって違う
    ・・・

みたいな勘所が、経験とともに蓄積していくものです。

「何を暗記しなければならないか」という項目は十分に知っておく必要はあります。
だからと言って、今すぐに暗記している必要があるか否かは別問題です。

細かいことは、必要になったら調べて暗記します。そしてプロジェクトが完了するまでは暗記の状態を保ちます。
しかしプロジェクトが終わって使わなくなれば、また忘れてしまうでしょう。

そんな感じで良いです。その方が、

「今回、また新しいプログラミング言語を使うことになった。」

と言われても、びっくりせずに済みます。
ほかの言語との違いを調べて使いこなすことには、変わりがないからです。

逆に、少しでも記憶があいまいなら、じゃんじゃん調べて確認します。
不確かな記憶のままプログラミングを進めてしまう人の方が信用できません。

プログラミングで大切なのは、

× 文法の知識が完璧であること
○ 全て説明できること

です。

プログラムの1行1行について、

「なぜ、そう書いたのか」

を1文字も漏らさず説明できる必要があります。
1文字でもあいまいだったら、すぐに調べる必要があります。

不明なことは、すぐ調べて確かめる!

これ、大切です。

勉強も同じ

細かい知識を忘れても、大した問題ではない。

これは数学や国語でも同じなのではないでしょうか?

社会や理科は、もっとそうですよね!

例えば歴史。

細かいことは、レポートを書いているときは覚えているかもしれません。
しかし、それが終われば忘れてしまいます。
相変わらず社会の定期テストや入試問題の多くは「暗記の詰込み」ですが、受験が終わったら忘れます(※)。

それでも、歴史の流れや国際関係の背景は、いつでも語ることができるだけの素養が身につくでしょう。

・・・みたいな感じですね。

よく、カリスマ的な人がプログラミングの実況動画を出しています。

すらすらと軽快にプログラムを書いて見せています。
そんな風にできるのは、たまたま業務でよく使っているか、リハーサルを十分にしているからです。

そういう人でも、違うプログラミング言語で同じものを作れと言われたり、違うジャンルのアプリを作れと言われたら、しばらくの間は、調べながらプログラミングしていくことになります。

だからといって、その人の能力が低いことにはなりません。

すらすらプログラムを書ける場面は、自分にとって、ある程度プロジェクトが乗ってきた時期です。

プログラミングの経験が蓄積できていれば、たとえ最初の数百行が遅くても、残りの数千行から数万行のプログラムはすらすら書けます。

逆にコンピューターを使いこなせるはずのプログラマーが、文法の暗記で消耗しているようでは先が思いやられます。
暗記で苦労する「暇」があったら、どんどん調べまくって仕事を先に進めましょう。そうするうちに勝手に頭に入ります。

※ 最近の入試問題は、理科や社会でも暗記の詰込み要素が無くなってきました。
多くの資料でヒントがたくさん与えられている問題形式が多くなってきました。そのため暗記がうろ覚えだとしても、今まで調べたり学んだりしてきた経験が十分にあれば、ちゃんと解けるように工夫されています。

まとめ

今回はpythonの魅力について書きました。

そのためにpythonの文法や言語仕様について少し詳しく書いたところもありました。だからと言って文法の詳細を覚えてほしいと言っているのではありません。

1つのプログラミング言語について、特徴をよく調べて使いこなすことが大切です。

そして少し時間がたって細かい文法を忘れたとしても、気にすることはありませ。細かい文法は、使う時に調べて確認すればよいです。

大切なことは、

「なぜ、そう書いたのか」

を1文字も漏らさず説明できることです。

あいまいなことや不明なことを放置せず、すぐに調べて確認する姿勢が大切です。

このことは勉強も同じだと思います。

 


ヒーローズ植田一本松校の進学実績

卒塾生(進路が確定するまで在籍していた生徒)が入学した学校の一覧です。
ちなみに合格実績だけであれば更に多岐・多数にわたりますが、当塾の理念に反するので生徒が入学しなかった学校名は公開しておりません。

国公立大学

名古屋大学、千葉大学、滋賀大学、愛知県立大学、鹿児島大学

私立大学

中央大学、南山大学、名城大学、中京大学、中部大学、愛知淑徳大学、椙山女学園大学、愛知大学、愛知学院大学、愛知東邦大学、同朋大学、帝京大学、藤田保健衛生大学、日本福祉大学

公立高校

菊里高校、名東高校、昭和高校、松陰高校、天白高校、名古屋西高校、熱田高校、緑高校、日進西高校、豊明高校、東郷高校、山田高校、鳴海高校、三好高校、惟信高校、日進高校、守山高校、愛知総合工科高校、愛知商業高校、名古屋商業高校、若宮商業高校、名古屋市工芸高校、桜台高校、名南工業高校

私立高校

中京大中京高校、愛工大名電高校、星城高校、東邦高校、桜花学園高校、東海学園高校、名経高蔵高校、栄徳高校、名古屋女子高校、中部第一高校、名古屋大谷高校、至学館高校、聖カピタニオ高校、享栄高校、菊華高校、黎明高校、愛知みずほ高校、豊田大谷高校、杜若高校、大同高校、愛産大工業高校、愛知工業高校、名古屋工業高校、黎明高校、岡崎城西高校、大垣日大高校

(番外編)学年1位または成績優秀者を輩出した高校

天白高校、日進西高校、愛工大名電高校、名古屋大谷高校

※ 成績優秀者・・・成績が学年トップクラスで、なおかつ卒業生代表などに選ばれた生徒

 


生徒・保護者様のお友達登録はこちら

LINE登録するとプレゼントがもらえます!
【会員限定】お子様の成績と可能性を伸ばす18個のノウハウ

友だち追加


塾関係者様のお友達登録はこちら

LINE登録するとプレゼントがもらえます!
「zoomで簡単。オンライン授業移行の教科書」
または個別対談も可

友だち追加

 


名古屋市天白区の植田で塾を探すなら個別指導のヒーローズ!!

★ 直接のお問い合わせ ★
――――――――――――――――――――――
個別指導ヒーローズ 植田一本松校
〒468-0009
名古屋市天白区元植田1-202 金光ビル2F
TEL:052-893-9759
教室の様子(360度カメラ) http://urx.blue/HCgL

偏差値が高くてもコンピューターが使えなければ意味が無い

無意味な情報公開

宇宙とコンピューターが大好きな塾長です。

プログラミング教育。
どんどん強化されていますね!

昨年から小学校の全教科で。
今年から中学校の技術家庭科で。
来年から高校の情報1で。そのまま大学入試科目にもなります。

庶民化するプログラミング教室

こうした流れの中で、最近アンケート調査が行われました。

保護者の7割が子どものプログラミング学習を「検討する」と回答

もう、そういう時代になってきました!

これまでのプログラミング教室は、どちらかと言えば「意識の高い」ご家庭向けの習い事でした。
それが今年あたりから、どの家庭でも当たり前に検討する習い事になってきたということです。

これは良いことです。
とはいえ、日本は遅れている状態から、やっとのことで普通の状態になってきた程度。
まだまだ、これからです。

大人はどうなの?

一方、大人たちの方は大丈夫なんでしょうか?

今回は

「頭の良さが無駄になっている!」

という日本の課題を明らかにしたうえで、子供たちに

「本来はこうあるべきだよ!」

を示したいと思います。

ということで、こんなニュースのネタから話が始まります・・・

国家のシステムが手作業だった!?

2月17日のニュースです。

「日本の技術力の低さ」「生産性の低さ」が話題になりました・・・

厚労省、コロナ感染者数を手集計 菅首相「承知している」」(JIJI.COM)
https://www.jiji.com/jc/article?k=2021021700893&g=pol

国はどうやって全国のコロナ感染者の人数を把握しているのでしょうか?

なんと、その方法とは・・・手作業です!!

厚労省の委託事業者が、
深夜0時を過ぎたら「よーい、ドン」って感じで
全国の48都道府県や政令指定都市のホームページを見まくり、
数字を目で確認し、
1つ1つ手作業で数字を集めてから、
合計を計算!

という手順のようです。

気合とド根性!
炎の集計マニュアル!?

えっ、仕事のやり方が最初から深夜残業ありき!?

トホホ・・・

官僚もコンピューターの使い方が分からない

官僚の皆さんって、めっちゃ頭が良いんですよ。
そんな優秀な皆さんが、どうして今まで放っておいたのでしょうか?

う~ん、にわかには信じられませんでしたよ。だって、国のやることですよ。

きっと大そうなシステムがあって、
きっと日本中からネットワーク経由で数字が集められてきて、
きっと自動的に集計されているのだろう

などと思っていましたから。

それがなんと、僕らが自分たちでネットで調べて得られる情報と、質も手順も同じだったということです。
しかも、深夜0時を過ぎてから仕事をするのが正常な作業マニュアルという位置づけ。

わざわざ深夜残業の人件費を使っていたのです。
これでは働き方改革も進みません。

偏差値が高い人たちが集まる霞が関。
その官僚たちでさえ、コンピューターで集計することができませんでした。

コロナが緊急事態というのは分かります。
大変だと思います。

でも、問題の本質はそこではありません。
もっと根深いところにあります。
それは誰も次のことを考えなかったということです。

情報の再利用性

職場の仕事のやり方というのは、日々の改善の積み重ねなんですよね。
今までコンピューターを使おうとして来なかった悪しき職場の文化。
そういう悪い習慣が、ずーっと蓄積してきた結果が、正にここで露呈してしまったということです。

なんとも残念なニュースでした。

あらためて日本がIT後進国であることが浮き彫りになってしまいました。

それにしても・・・あれ?

日本は技術大国のはずじゃなかったっけ?
技術大国なのにIT後進国?

おかしいですね。

そこで、なぜコンピューターでスパッと集計を出せないのか、ちょっと調べて考えてみました。

自治体が情報発信する方法がダメだった

さて、デジタル庁が発足するのは今年の9月です。
つまり、日本全国の行政機関がネットワークでつながっていくのは、きっとその後の話になるでしょう。

そう考えると、今の段階で国や官僚の仕事を批判するのは早すぎかもしれません。
それに、大きな組織ですから、一部の失敗で組織全体についてどうこう言うのは気が早いです。
違う部署へ行けば情報の猛者がいらっしゃるのかもしれません。

批判だけならアホでもできます。
もっと生産的な記事を書くべきでした。

これは失礼しました!

それならば、せめて

「都道府県のホームページから感染者数を調べる処理」

くらいは自動化を提案したいところです。
少なくとも深夜残業ありきのマニュアルは良くありません。
深夜はコンピューターに作業をさせて、人間はお家に帰って寝ましょう。

逆に、なぜ最初からそういう発想でマニュアル化できなかったのか不思議です。
きっと何か事情があったはずです。
ということで、

都道府県のホームページがどうなっているのか?

を実際に見てみました・・・

そうしたら、なんと、
気が付いてしまいました。
さらに悲惨な現実に!

もう、本当にビックリですよ。
都道府県それぞれのホームページが、そもそも悲惨だったんです。

「数字」じゃなくて「画像」だったんですよ!

なぜ集計表を画像にしたらダメなのか?

例えば、エクセルなどで集計表をつくったとします。

この表の数値データをそのままWebサイトに載せて公表してくれたらよかったです。
見た人はその数字を再利用できます。
Webサイトから数字をコピーして、別の集計作業にすぐ利用ができます。

情報の再利用です。

ところが、今回はそうしませんでした。
画面に映ったエクセルの表の「写真」を撮って、その写真をホームページに貼り付けたのです。
(この記事の後半で、その実例を示しています)

写真から数字をコピーすることはできません。
それを見た人は、写真を見ながら、また手作業で数字を1つ1つ入力する、という作業が発生してしまいますよね。

情報が再利用できません。

数字は数字のまま公表すべきなのに、わざわざ写真で公表した。
この方法はダメですよ!

他のことに例えてみれば、もっと分かりやすいです。

はじめの一歩は「情報の再利用性」から

もしもあなたがLINEやメールなどで相手から電話番号を聞かれたら、どうやって知らせますか?

普通は、電話番号の「数字」をメッセージで返信しますよね。

それなら1往復のやり取りだけで済みます。
しかも相手は電話番号をクリックするだけで電話帳に登録したり、折り返しの電話をしたり、といった次の行動がすぐにできます。

つまり、相手が「利用しやすい情報の形」で返事をしようと考えますよね。

わざわざ電話番号を紙に書いて

「紙に書いたから、深夜0時を過ぎたら、私の家まで紙を受け取りに来てね。」

なんて相手に言ったらどうなるでしょう?

紙に書いたメモを写メにとって送るのも、ちょっと面倒です。
相手は写真とアドレス帳を行ったり来たりして登録作業をする手間が発生します。

ちょっと意地悪ですよね。

コンピューターの世界では不便ということになります。

このように情報を伝える時には、情報の種類にふさわしい形があります。
相手にとって「利用しにくい」「手間がかかる」ような形で情報を送っても、相手に伝えた意味が半減してしまうのです。

今回の学び:

数字や文字の情報を画像にしてしまうと、情報の再利用性が悪くなる!

各都道府県のホームページは、コンピューターの目で見ると、とても不便な情報発信になっているワケです。

情報の墓場

私は、紙の印刷物や画像ファイルを「情報の墓場」と読んでいます。

コンピューターが活用しにくいデータ形式だからです。

上の例で見たように、せっかく数値や文字というデータになっているものを、わざわざ紙や写真にしてしまったら単なる嫌がらせです。
もともと使いやすかった情報が、紙や画像ファイルにされてしまったら台無しになるからです。

熱がエネルギーの墓場と言われるように、コンピューターの世界では紙や写真などがデータの墓場に相当すると思います。

愛知県ホームページによる2021年4月13日の発表の例

(注意!)各都道府県が悪いというのではありません。日本全体に蔓延している問題です。ぜひ「自分の問題」として見て欲しいです。ピンチはチャンスかも。

試しに愛知県のホームページのHTML構造はこんな感じでした。ちなみに他の県や市も似たようなモノでした。

/html/body/div[1]/div[3]/div[3]/div/div[5]/div[1]/p[1]/img

<html>
<body>
<div id=”container”>
<div id=”mymainback”>
<div id=”main”>
<div id=”main_a”>
<div id=”main_body”>
<div class=”detail_free”>
<p>
<img alt=”030412検査陽性者” src=”/uploaded/image/249717.png” style=”height:885px; width:600px”>

最後がimgタグで画像ファイルになっています。
ですから、コンピューターの目で見ると

「感染者数のデータ」=「249717.png という画像ファイルがあるらしい」

くらいまでしか情報が読み取れません。
もちろん人間の目で見れば、写真として

 

愛知県発表_感染者数_20210413

というふうに見えます(愛知県のホームページの画像より)。

この表は表のように見えますが、なんと1枚の写真です。
ですから、ホームページ上でマウスで数字を選択したり、数字の部分を選んでコピーしたりすることができません。

試しに、上の表で数字のところを選択してみてください。

できないでしょう?

数字じゃないからです。選択することすらできません。

マジか!?

って思うでしょう。
そういうホームページのつくりなんです。

もちろん感染者数は一般公開されている情報ですから、セキュリティとか情報の公開範囲とかは関係ないですよ。ホームページで表示されている時点で、そういう話ではないですから。

ここまで公開しておいて、よりによって何で画像形式なの?

ってことです。

まぁ、とにかく、現状がこういう状況になっているわけですから、人間を深夜0時まで残業させる羽目になるのです。

9月に発足するデジタル庁は、こうした問題を1つ1つ解決していくわけですね。
すごく大変そう・・・
でもやり切らなければ日本に未来はありません。

人工知能に読ませればいい、はウソ!

こんな意見が出て来そうなので、それも考えておきましょう。

都道府県が公表しているホームページを人工知能に読ませれば、自動化できるのではないですか?

はい、技術的には可能です。

ご周知のとおりOCRという処理やディープラーニングという種類の人工知能を使えば、画像から文字や数字を読み取ることが可能です。
ただし、これは割に合わないコストがかかります。

なぜなら、データを写真に変更するエネルギーに比べて、写真を人工知能が読み取るエネルギーの方が、何百倍も必要だからです。

だったら最初から写真にしなければいいじゃん!

ということになります。つまり一番エコなのは、

何もしないこと

です。
表をつくったなら、そのまま表は表として公開すればよいのです。
エクセルで表を作ったのなら、その表をコピーしてHTMLで貼り付けることもできます。

わざわざ画像という別の形式に変換する手間など最初から不要です。

人工知能を開発するために人件費や開発費を使い、人工知能を運用するために大量の電気エネルギーを費やして、CO₂の排出量も増大。そのペナルティ金をまた海外へ支払う。そんな馬鹿な話はありません。

最初から素直に「使いにくいから直してほしい」と指摘して正す方が、何百倍もコストが安くすむでしょう。

ということで「画像形式で公開」という根本原因をとり除けば一瞬で解決です。

画像ファイルにこだわって人工知能にホームページを読ませる案は却下です。
税金の無駄です。

どうしたらよいか?

まず第一段階としては、地方の情報公開を、画像ファイル型からテキスト型に変えていくことです。
そうすれば少なくとも人間が集計作業をする手間は無くなります。

愛知県のホームページに関して言えば、<img>タグを挿入しているプログラムを、ちょこっと修正して<table>タグなどに変更するだけです。
このときタグに与える id の値は、国から指定して統一を図った方が良いでしょう。

そもそも画像ファイルを毎日どのように作成しているのか知りませんが、データを表形式にする方がプログラム的には楽ちんのはずです。

この程度ならプログラムの修正はごくわずか。ちゃんと設計されたシステムであれば数万円くらいです。運用テストなどの手数料を考えても5万円くらい。何十万円も請求されたらボッタくりですね。

そして第2段階としては、Web-API化することです。
これは9月に発足するデジタル庁の仕事になるでしょう。APIの仕様は国内で統一した方が良いからです。
長い目で見たメンテナンス性を考えれば、外部仕様だけではなく、ある程度のアーキテクチャまで統一した方が良いとは思います。

総務省のWebサイトには、すでにWeb-APIが組み込まれていますから、もう実績があります。
あえて注文をつけるなら、XML形式ではなくJSON形式の方を標準にして欲しいことくらいです。

こういうのは誰がやっても同じような仕様書になるので、国の方で「えいやっ」と仕様を決めてしまえばよいと思います。
今までさんざん手作業で情報収集に苦労して来た霞が関の官僚の皆さんです。彼らに「どんな情報が欲しい?」とヒアリングすれば良い仕様書に落とし込めるでしょう。

ありがちなミスは、自治体から意見を聴こうとして全国から人を招いたり、大きな会議体を作ったりすることです。そんな会議はまとまりません。人を集めるお金と時間があるなら、その経費を「後から変更や拡張がしやすい設計にする」方へ割り当てた方が賢明です。

仕様書ができたら、助成金付きで自治体へWeb-API化をお願いすればよいでしょう。

マスコミのみなさんもAPIを通じて即座に情報収集できますから、密な状態で取材する必要はなくなりますよ。

モノづくり教育の話は横に置いておきましょう

さて、情報の再利用性について考えてきました。

教育改革では、ひたすら子供たちがプログラミングを学んでいく話になりがちです。

ところが大人にもプログラミング教育(正確にはプログラミング的思考の教育)を急ぐ必要がありそうです。
上で見たように、日本の大人たちは情報の形式を正しく選択することに、まだ不慣れです。大人は大人で勉強していく必要があります。

何より、プログラミング教育をロボットや自動車などの「モノづくり教育」のことだと勘違いしてしまう大人が、まだまだ多いです。

日本は要素技術とハードウェアには強いけど、ソフトウェアには弱い。

そこが日本の限界を作っています。
大人の皆さんにお願いしたいのは、

プログラミングとモノづくりを切り離して考えよう!

ということです。

ハードウェアの生産力を増強する方向性に教育を重点化しても、日本の競争力は増えません。
国内では、どう見ても物価と人件費が割に合いません。
ハードウェアの生産を増やしても、働くほど貧乏になる未来しか見えません。

GAFAを見ればわかるでしょう。

プログラミング教育にもハードウェアが使われているだって?

いえいえ、その中身を見てください。どんなパワーバランスで生産されているのかを見てほしいです。

PC、micro:Bit、レゴなどでさえ、どれも外国製で、しかも設計やライセンス元は先進国で、生産は途上国という役割分担です。
パソコンやCPUも、設計やライセンス管理を行う役割と、実際にモノを生産する役割は、違う国です。
もちろん、前者はソフトウェアで、後者がハードウェアです。

これからはソフトウェアをつくった国や企業が圧倒的な競争力を持ちます。

そのため、純粋に

プログラミングで情報を活用できるセンスを磨く!

ことに注力した方が良いのです。

上で見たように、日本の課題は情報の扱い方を知っている大人が少なすぎることです。

だからプログラミングと言えば、すぐにモノづくりに発想が行ってしまうのです。
だから、なかなかキラーアプリが日本から誕生しません。

プログラミング教育が分かり難いのであれば、次の方針を徹底させるのでもかまいません。

「情報の再利用性」のセンスを早くから身につけさせる。

大人も子供も共通です。

とりあえず、これを日本の人材育成の目標としてはどうでしょうか。

コンピューターで情報を効率よく扱える。
そういうセンスを身に着けた人材を、これからどんどん増やしていく必要があります。

大人もプログラミングを楽しもう

逆に言えば、まだまだ仕事がいっぱいあるということで、これは景気の良い話です。
日本改造計画を再び行えるくらい、盛りだくさんですね。

せっかくやるなら、楽しんでしまえば良いと思います。

上の例で見てきた通り、これは国家の基盤に直結する問題です。
日本の生産性向上にも直結します。

でも「生産性」という言葉が良くないですね。
なんだかつまらなそう。

コンピューターはもっと楽しめるものであって良いと思います。

私たちが想像していることをどんどん実現してくれる便利な道具。
それがコンピューターです。
表現したいことをどんどん表現して、それを楽しめばよいと思います。

ただ、そのときにちょっと「情報の再利用性」について気を遣えばよいと思います。

人間の体よりも、はるかに速く回って、疲れも知らず、ミスもしない。
それがコンピューター。

それを使いこなして、もっと楽しいことをしてやろう!

大人だって、まだまだこれからです!

人生100年の時代なのですから。

日本からキラーアプリが爆誕するためには

ICTで特に重要なのは「キラーアプリ」つまり「多くの人に使われるソフトウェア」の存在です。今のところアメリカや中国に比べると、日本はキラーアプリを作ることが苦手です。

というか、そういう能力のある人たちがみんな海外へ逃げてしまっています。何しろ日本では価値を認めてもらえないのですから無理もありません。

ソフトウェア技術者は、日本にいれば年収300万円。海外に行けば年収1000万円。そりゃ逃げられます。

博士号を持っている人材が就職難になるような国です。それもこれもソフトウェア産業が乏しいからです。

それならばソフトウェア産業を活性化させて、優秀な人材が日本でも活躍できるようにすればよいです。

そうすればキラーアプリが日本から爆誕するのも時間の問題と言えます。

ゲームやアニメもソフトの1種ですが、その分野では既に多くのヒット商品が日本から爆誕しています。

十分に土壌はあると思います。

日本でソフトウェア産業を活性化させるためには、まず日本人がソフトウェアの価値をよく理解することだと思います。

モノの値段は人々の価値観で決まるからです。
価値が分かる人が増えれば、海外のようにソフトウェア産業に投資する人が増えるでしょう。

アメリカや中国と比べると、日本では20分の1くらいしかベンチャー企業に資金が集まらないと言われています。
資金が集まらないということは、日本のトップ層が価値を認めらていないか、価値を理解できない、ということです。

そりゃ海外に逃げていきたくなりますよね。

政治でも経済でも、ソフトウェアの価値を理解できる人が組織のトップに就くべきだと思います。

 


ヒーローズ植田一本松校の進学実績

卒塾生(進路が確定するまで在籍していた生徒)が入学した学校の一覧です。
ちなみに合格実績だけであれば更に多岐・多数にわたりますが、当塾の理念に反するので生徒が入学しなかった学校名は公開しておりません。

国公立大学

名古屋大学、千葉大学、滋賀大学、愛知県立大学、鹿児島大学

私立大学

中央大学、南山大学、名城大学、中京大学、中部大学、愛知淑徳大学、椙山女学園大学、愛知大学、愛知学院大学、愛知東邦大学、同朋大学、帝京大学、藤田保健衛生大学、日本福祉大学

公立高校

菊里高校、名東高校、昭和高校、松陰高校、天白高校、名古屋西高校、熱田高校、緑高校、日進西高校、豊明高校、東郷高校、山田高校、鳴海高校、三好高校、惟信高校、日進高校、守山高校、愛知総合工科高校、愛知商業高校、名古屋商業高校、若宮商業高校、名古屋市工芸高校、桜台高校、名南工業高校

私立高校

中京大中京高校、愛工大名電高校、星城高校、東邦高校、桜花学園高校、東海学園高校、名経高蔵高校、栄徳高校、名古屋女子高校、中部第一高校、名古屋大谷高校、至学館高校、聖カピタニオ高校、享栄高校、菊華高校、黎明高校、愛知みずほ高校、豊田大谷高校、杜若高校、大同高校、愛産大工業高校、愛知工業高校、名古屋工業高校、黎明高校、岡崎城西高校、大垣日大高校

(番外編)学年1位または成績優秀者を輩出した高校

天白高校、日進西高校、愛工大名電高校、名古屋大谷高校

※ 成績優秀者・・・成績が学年トップクラスで、なおかつ卒業生代表などに選ばれた生徒

 


生徒・保護者様のお友達登録はこちら

LINE登録するとプレゼントがもらえます!
【会員限定】お子様の成績と可能性を伸ばす18個のノウハウ

友だち追加


塾関係者様のお友達登録はこちら

LINE登録するとプレゼントがもらえます!
「zoomで簡単。オンライン授業移行の教科書」
または個別対談も可

友だち追加

 


名古屋市天白区の植田で塾を探すなら個別指導のヒーローズ!!

★ 直接のお問い合わせ ★
――――――――――――――――――――――
個別指導ヒーローズ 植田一本松校
〒468-0009
名古屋市天白区元植田1-202 金光ビル2F
TEL:052-893-9759
教室の様子(360度カメラ) http://urx.blue/HCgL

教育にパソコンやスマホを活用しまくるほどゲーム依存が減る

パソコン1人1台で何をする?

コンピューターと宇宙が大好きな塾長です。

4月です。新年度です。小学校も中学校も1人1台のパソコンです。

本当に使いこなせるの?
子供がパソコンで遊んでしまわないか?

気になりますよね。

スマートフォンの失敗経験

スマートフォンで成績が上がった子供と下がった子供の人数。

はたして、どちらが多いでしょうか?

これといって統計は見当たりませんが、カウントするまでもありません。
下がった子の方が圧倒的に多いでしょう。

学んだことが身に着かないような生徒は、もれなくスマートフォンにハマっています。
的中率は100%です。

まだまだ子供に「正しいスマートフォンの使い方」を実践させる仕組みが整っていないです。
無法地帯で好き勝手に使わせている。そんな状況です。

スマートフォンを買い与えたのが失敗だった・・・

まさに現在進行形で、そんな悩みを抱えている保護者様は多いでしょう。

ゲームをするために勉強する。
だから「勉強しているフリ」になる。
だからゲームの記憶は残っても勉強の記憶は残らない。

そういう短絡的な子供たちが増えています。

それでは、パソコンはどうでしょう?

今年度からパソコン1人1台。

スマートフォンと同じような運命をたどってしまうのでしょうか?

あるいは、このままでよいのでしょうか?

逆転の発想?! どうしたら正しく使いこなせるのか?

マイナス面だけ見ていても夢がありません。

いつかは賢く使いこなして欲しいです。そういう時代ですから。
すでに持っているなら、どうにかして有効活用したいものです。

これがゲーム機なら、まだ話は簡単です。

ゲームをやらない時間を設ければ、ゲーム機を触らせないという管理ができます。

「ゲームをやらない時間」=「使わない時間」

ですから、まだ勉強や生活のリズムを維持させる指導ができます。

スマートフォンやパソコンはどうでしょうか?

YouTubeやSNS、ニュースなどなど、ゲーム以外にも使う用事がたくさんあります。
多機能であるがゆえに、

「使わない時間」

を設定することが、そもそも難しいです。

であれば・・・どうするか?

これはもう、

使いまくる!

という逆転の発想しかないでしょう。

そんな無謀な!

いいえ、無謀ではないです。
私は実際に目にして、考えが変わりました。

勉強にスマホやパソコンを「使い過ぎる」環境にすべし

例えばアメリカでは20年以上前からパソコンでレポートを提出するのが当たり前です。
むしろ手書きのレポートを提出すれば減点されます。
日本もパソコン1人1台にしたのですから、早くこうすべきだと思います。

インターナショナルスクールや国際バカロレアの学校に通う生徒たちに話を聞くと、このことが本当になっています。

  • 学校からの事務連絡
  • 宿題や課題の連絡や、それらの達成条件や評価方針の連絡、
  • 宿題の提出
  • 提出物に対する評価やフィードバック
  • テスト範囲の連絡
  • テスト結果の連絡
  • 成績の発表
    ・・・

学校と家庭、先生と生徒の、ありとあらゆるやり取りがITSで行われています。
かなり進んだ教育だと感じます。

宿題が何かを確認するのはネット上、
宿題のレポートをまとめるための参考資料もネット上、
提出するのもネット上、
先生から提出物について評価やコメントをもらうのもネット上、
成績発表でさえもネット上です。

パソコンやスマホを「勉強の道具」として、否応なしに使わせています。

つまり、勉強するためにパソコンやスマホを使う時間の方が、遊びに使う時間よりも多いのです。

あそび < 勉強

こういうパソコンの使い方をしている子供たちを実際に目の当たりにして、塾長は気が付いてしまったのです。

なぜ、子供たちがスマホやパソコンで「ゲーム依存症」になってしまうのか?

その理由です。
それは、

勉強のためにパソコンを使わせる「量」や「時間」が少なすぎるから!

なのだと。

日本の中だけでは、本当に気づきにくいです。

だって日本は遅れているもん。

日本の大人が、パソコンやスマホを仕事に使わなさすぎる。
→ だから子供たちもパソコンやスマホの使い方を知らない。
→ だから、とりあえずゲームやYouTubeにハマっておく・・・

完全に大人の責任だと思います。
日本がITS後進国である本当の理由は、正にこれだと思います。

子供たちには、本当に申し訳ない。

そう思います。

大人は子供たちの手本ではなく「伴走者」であるべき

まずITSを教育に活用していくことに関して

大人は子供の手本には成れない!

という件について、ちゃんと正面から向き合う必要があるでしょう。
否定するのではなく、出発点にするのが大切です。

大人は手本に成れない?

日本の大人たちは先進国の中で、

  • パソコンが苦手
  • 勉強しない

という位置づけです。

「ガートナー、主要先進国のワークプレースに関する実態調査結果を発表 – 日本の働き方改革に立ちはだかる課題が浮き彫りに」(2018/3/12)より

それでは、日本人の能力が低いのかといえば、決してそうではありません。
むしろ先進国の中では高い方です。
個人で見れば、アメリカやドイツよりも高いスキルです。

「国際成人力調査(PIAAC:ピアック)」文部科学省
(調査結果の報告が公表されたのは平成25年10月8日)

そうすると、上の2つの文献が矛盾しているように思います。

ITSが遅れているけれど、能力は高い?

これは矛盾ではありません。
再び上の2つのことを注意深く見ていけば、分かってきます。

要するに、日本の大人たちは

  • 仕事にITSを活用していない

ということです。つまり、

  • 能力があっても使わない
  • 勉強したことを役立たせようとしていない

ということです。これは

「大学の入学」が勉強の「ゴール」

になってしまっている日本人の弱点と言えます。
いわゆる

受験までの人

ということですね。
そういう教育や採用をしているようではダメです。

日本の企業の採用試験。
その多くが「人間性重視」で「専門性軽視」です。
大学で学んだことを仕事に活かすような企業は、ほとんどありません。

そういう日本人の行動パターンを反映しているから、上のように矛盾に見える調査結果が出てくるのでしょう。

高等教育を生産に活かせないから、いつまでも労働生産性が低いまま

それが日本の現状と言えるでしょう。

そう考えると、教育改革で「教科書」や「入試問題」を難しくしてきましたが、これはトンチンカンな方向かもしれません。
本当は大人の方に「勉強を続けさせる」仕組みや、「勉強したこと使わせる」教育をする方が、日本の再起動が早いのかもしれません。

何はともあれ、少なくとも、

多くの大人は、子供の手本ではない

ということです。

試しに地下鉄に乗ってみてください。
すぐに証明できます。

車内で周りを見渡して、

大人たちが何をしているか?

観察してみてください。

  • スマホでゲームをしている
  • マンガを読んでいる
  • 週刊誌を読んでいる
  • 寝ている

日本の職人芸や勤勉さが世界を驚かせていたのは20年前までの話。
今は違うということを、ちゃんと受け止めましょう。

ですから子供たちの手本だなんて、そんな威張った態度ではいけません。

子供と一緒にITSを学んで活かせる大人

それでは大人がやることは何もないのかといえば、その逆です。
大ありです。

大人は急いでITスキルを高める必要があります。

とはいえ、子供を待たせておく時間なんて、もうありません。
塾や学校の先生がITを勉強している間にも、子供たちはどんどん卒業します。
教育現場にITを導入することに、もう猶予はありません。

もう、

子供も大人も同時に教育するしかない!

のです。

ただ救いがあります。

同じことをやるなら、そりゃ大人の方が理解が速い!

それが救いです。
それで大人の役割というのが自然に決まります。

一緒に学んでいく中でも、理解の速い大人の方が先回りできることが多いですから、十分に子供たちの良き相談相手に成れます。

一番やってはいけないのは、

  • ITSの食わず嫌い
  • 苦手意識でコンピューターの利用を避ける

というものです。

能力が低いことは問題ではありません。

  • 子供たちに学ぶ機会を与えないこと
  • コンピューターに触れる機会を奪うこと

それが問題です。
学ぶことを邪魔することが問題です。

大人も子供も一緒に学ぶ。

このような前提を宣言してしまえば、

「勉強にパソコンやスマホを使いまくる」

という状態を直ぐにスタートできます。

後ろ向きな大人

学校のシステムに少しぐらい不便があっても、大きな問題ではありません。
それに文句を言うのではなく、一緒に解決するのですよ。

問題を前向きにとらえて柔軟に解決していく姿を見せること

これが子供のためになるのです。
逆に、すぐに学校へクレームを出したり、いちゃもんをつけたりする姿はよくありません。

「文句を言ってやった!」感を出す大人の姿

これは子供たちにとって有毒です。
集合知の時代です。
批判や文句には価値がありません。

「どうしたら解決するか」という試行錯誤

それにこそ価値があります。
もう、いい加減に、こうした時代の変化を受け入れなければいけません。

先生に「威厳」は不要!むしろ有害!

たった「1通り」しかない答えを「速く正確に」出すこと。

子供を電卓にするような教育。
子供を電子辞書にするような教育。
子供をクイズ王にするような教育。

かつてはそれが必要でした。
でも今となっては古い考え方です。

そのような古い時代には、

  • 生徒よりも早く答えを出せること
  • たくさん答えを知っていること

が先生の「威厳」だったかもしれません。

黒板から目をそらしただけで怒鳴っていた先生

塾長が高校生のとき、数学の怖い先生がいました。
私はその先生の授業を選択で受講していました。もちろん先生は選べません。たまたまです。

ある日、私はその先生の説明に着いていけなかったので、授業の途中から教科書を読み出して、必死に着いて行こうとしていました。

おそらく3分くらい経ってしまったでしょうか。
じっくりと教科書を読みふけっていたのです。
思わず教科書の方へ全集中してしまったのです。

うかつでした。

気が付いたころには、もう、教室がシーンと静まり返っていました。
そして斜め下の方から強烈な視線を感じるようになりました。

恐る恐る、教科書から目をそらし、机の斜め下の方、つまり床の方に目線を移してみました。

信じられないことに、なんと、先生と目が合ったのです!
床の方を見ているはずなのに、先生と目が合ったのですよ。

一瞬、ちょっとパニックになりかけました。

先生が床の方から見上げるようにして、私の顔を覗き込んでいたのです!
それも、鬼のような形相で。

いつから睨まれていたのでしょうか。
怖くて考えたくもありません。

「おい。俺が今、黒板で話したことを言ってみろ。」

・・・もちろん答えられません。

「なんでぇぇええ、先生がぁああ、話している時にぃぃいい、ちゃぁあんと黒板を見ていないんだぁぁああ!!!」

実は、それが初めてではありませんでした。
私はその先生から目を点けられてしまったのか、何度か怒鳴られた経験があります。

選択科目だったので、その授業が終われば、また自分のクラスに戻ります。

「おまえ、また怒鳴られてたろう。隣の教室まで聞こえてたぞ。」

同級生から、よく茶化されたものです・・・

これは実話ですが、極端な例でしたね。
まぁ、とにかく、このような先生の「威厳」は、もう成立しないでしょう。

ちなみに、こんなふうに数学が苦手だった塾長が、大学では数学科に進んでしまいました。
ちゃんと卒業できたのですから、みなさんはもっと自信を持って良いですよ。

コンピューターが当たり前になったので

今やコンピューターが当たり前。

  • 決まった模範解答を、速く正確に答える。
  • 先生が言ったことを正確にコピーして復唱してみせる。
  • 難しい漢字が書ける。

そのような能力を極めても、何の価値も出てきません。

それよりもコンピューターを使いこなして、

  • 答えが「1つに定まらない」問題にチャレンジする
  • 今できる中で最善を尽くす

という教育の方が重要になってきています。

もちろん思考を構成する「最低限の知識」は必要ですが、これも「考える」と「覚える」を区別して学ぶ必要が無くなりました。
調査と思考を大量に行う過程で自然に知識が身に着いてい行く、という本来の学びへ収束していくでしょう。
「覚える」だけを取り出して「鬱陶しい」が漢字で書けるかどうかテストするとか、そういう無駄な教育は無くなっていきます。

伴走者の資格とは

ですから授業の準備の中で「完璧な答弁」を用意する必要はもうありません。

教室でパソコンがうまく動かなかったらどうしよう・・・動くように試行錯誤することも立派な教育です。ベテランの先生なら、むしろトラブルを仕込んで授業計画を立てましょうよ。

生徒の方がパソコンの使い方を知っているから気が引ける・・・知っている生徒の知識と先生の認知力の高さを合わせる「集合知」で授業を進めればよいじゃないですか。大人にも分からないことはあります。正々堂々とググればよいです。

大学でちゃんと自分の意思で学び、卒業研究に取り組み、自分の頭を使って論文を書いて卒業し、そして学校や塾の先生になったのであれば、問題解決の作法を十分に経験してきたはずですよね。子供たちから見えれば、かなり身に着いているはずです。

あるいは、仕事を自分の意思で真剣に取り組んできたのであれば、何かしらの改善活動をしてきたはずです。それも問題解決の実践です。

そういう塾の先生や学校の先生であれば、なんの問題もありません。
その能力で十分です。

もちろん威厳なんて最初から不要です。
ちゃんと授業ができるはずです。

きっと生徒のよき「伴走者」になれるでしょう。

 


進学実績

卒塾生(進路が確定するまで在籍していた生徒)が入学した学校の一覧です。
ちなみに合格実績だけであれば更に多岐・多数にわたりますが、当塾の理念に反するので生徒が入学しなかった学校名は公開しておりません。

国公立大学

名古屋大学、千葉大学、滋賀大学、愛知県立大学、鹿児島大学

私立大学

中央大学、南山大学、名城大学、中京大学、中部大学、愛知淑徳大学、椙山女学園大学、愛知大学、愛知学院大学、愛知東邦大学、同朋大学、帝京大学、藤田保健衛生大学、日本福祉大学

公立高校

菊里高校、名東高校、昭和高校、松陰高校、天白高校、名古屋西高校、熱田高校、緑高校、日進西高校、豊明高校、東郷高校、山田高校、鳴海高校、三好高校、惟信高校、日進高校、守山高校、愛知総合工科高校、愛知商業高校、名古屋商業高校、若宮商業高校、名古屋市工芸高校、桜台高校、名南工業高校

私立高校

中京大中京高校、愛工大名電高校、星城高校、東邦高校、桜花学園高校、東海学園高校、名経高蔵高校、栄徳高校、名古屋女子高校、中部第一高校、名古屋大谷高校、至学館高校、聖カピタニオ高校、享栄高校、菊華高校、黎明高校、愛知みずほ高校、豊田大谷高校、杜若高校、大同高校、愛産大工業高校、愛知工業高校、名古屋工業高校、黎明高校、岡崎城西高校、大垣日大高校

(番外編)学年1位または成績優秀者を輩出した高校

天白高校、日進西高校、愛工大名電高校、名古屋大谷高校

※ 成績優秀者・・・成績が学年トップクラスで、なおかつ卒業生代表などに選ばれた生徒

 


生徒・保護者様のお友達登録はこちら

LINE登録するとプレゼントがもらえます!
【会員限定】お子様の成績と可能性を伸ばす18個のノウハウ

友だち追加


塾関係者様のお友達登録はこちら

LINE登録するとプレゼントがもらえます!
「zoomで簡単。オンライン授業移行の教科書」
または個別対談も可

友だち追加

 


名古屋市天白区の植田で塾を探すなら個別指導のヒーローズ!!

★ 直接のお問い合わせ ★
――――――――――――――――――――――
個別指導ヒーローズ 植田一本松校
〒468-0009
名古屋市天白区元植田1-202 金光ビル2F
TEL:052-893-9759
教室の様子(360度カメラ) http://urx.blue/HCgL

大学入試のプログラミングはいつから? 傾向・対策・難易度

大学入試のプログラミングはどんな問題?

コンピューターと宇宙が大好きな塾長です。

プログラミングやコンピューターの知識が大学入試でも出題されます。
3月24日、大学入試センターがその「サンプル問題」を発表しました。

新しく加わる「情報」という科目に注目です。

どんな問題?
傾向と対策は?
難易度はどれくらい?

気になりますよね。
詳細を見ていきましょう。

大学入試でプログラミング!いつから?

2025年1月に実施される共通テストからです。

つまり、この4月から受験生になる中学3年生の世代からが対象です。

生年月日で言えば、

  • 2006年4月2日生まれ ~ 2007年4月1日生まれ
  • 平成18年4月2日生まれ ~ 平成19年4月1日生まれ

にあたる学年以降です。

この学年が教育改革が完成してから大学を受験する最初の世代となります。
つまり、この学年以降は、完全に新しいカリキュラムへ移行します。

教科書改訂が全面的に導入され、高校入試の出題傾向も新しくなります。
そして高校に進学した瞬間に、高校でも教科書改訂です。
新しいカリキュラムで高校3年間を過ごすので、大学入試も新傾向になるというワケです。

  • 小学校では、移行措置的に英語が準必須化
  • 中学校では、教科書改訂およびパソコン1人1台が導入された世代として初の高校入試
  • 高校では、論理国語やプログラミングなどを新設した新指導要領の最初の世代
  • そして大学入試も新指導要領の形式へ完全移行

この世代からは、てんこ盛りの大学入試です。

そもそも情報ってどんな教科?

高校の情報科は2科目です

  • 情報1(必須科目)
  • 情報2(選択科目)

という構成です。
このうち大学入試に出題されるのは「情報1」の方です。

情報1は高校1年生または2年生で履修するようです。
多くの高校は1年生になるでしょう。

ということで、まず「情報1」の章構成から確認しましょう。

  1. 情報社会の問題解決
    → 問題解決の流れ、モラル、法規、セキュリティ、リテラシーなど
  2. コミュニケーションと情報デザイン
    → デジタル情報の技術や種類、情報の収集法・表現法・評価法など
  3. コンピューターとプログラミング
    → 論理演算、誤差、制御、データの基本構造、アルゴリズム、モデル化とシミュレーションなど
  4. 情報通信ネットワークとデータの活用
    → ネットワーク技術、データ形式、データベース、統計・解析など

これらのうち、プログラミングを実践するのは第3章と第4章です。
だいたい高1の2学期後半からがプログラミングになりそうですね。

そこで、この情報1の「プログラミング」について、その実態を見てみましょう。

想定されるプログラミング言語

プログラミングといえば最初に気になるのが「言語」です。

高校では何語でプログラミングをするのか?

これが気になります。
それを知ることができる参考資料を見つけました。

2020年7月に文部科学省が高校の先生向けに出した研修資料です。

高等学校情報科「情報1」教員研修教材(本編) (文部科学省)

この中の演習で使われているプログラミング言語は3つです。

  • Python 3系 (数学関数:math、 グラフ表示:matplotlib、 確率や行列:numpy)
  • R (パイプ処理:dplyr、 形態素解析:RMeCab、 グラフ表示:ggplot2)
  • SQL

プログラミング初心者の人にとっては、頭が痛くなるような用語が並びますね。
まぁ、とにかく、

少なくとも3種類のプログラミング言語は学ぶ

ということを知っておいてくださいませ。

Python(パイソンと読みます)は、外部機器の制御や数学モデル、物理モデルのシミュレーションで使われていました。
Rは、形態素解析を使って単語の出現頻度を分析したり、箱ひげ図やグラフ図を表示するのに使われていました。
SQLは、リレーショナルデータベース専用の言語ですが、その演習問題が少しありました。

ちなみに、これらのプログラミング言語は、無料で入手できます。

プログラミング言語以外では、Excel の関数やグラフ機能が使われていました。
箱ひげ図や散布図の表示、相関係数の計算、回帰分析や統計的仮説検定などにExcelが使われていました。

補足

3月30日に検定を通った情報1の教科書が一部で公開されました。
ニュースによれば、

  • Scratch
  • JavaScript

を使っている教科書もあるようです。

どんなプログラミングが出題されるの?

高校の教科書で扱われるプログラミング言語が分かりました。
次に気になるのが、

どのように出題されるのか?

です。
そこで3月24日に発表されたサンプル問題の実際を見てください。ソースは「大学入試センター」です。

大学入試センターサンプル問題_情報_問2

ご覧のとおり、大学入試では特定のプログラミング言語に依存しないような問題文で出題されます。
しかしながら実際には、

何らかのプログラミング言語を使ってプログラミングした経験がなければ、問題文の意味すら分からない

という状況です。
上の問題文を見れば、それがお分かりと思います。

プログラミング言語の知識レベル

情報1の教科書では3種類のプログラミング言語が紹介されるのでした。
一方、上で見たように、入試問題では、

特定のプログラミング言語に依存しないようなプログラムの書き方

で出題されるようです。

つまり、プログラミングの実体験を通じてプログラミングの「センス」を身に着けておく必要がある、ということです。
PythonでもRでも他のプログラミング言語でも良いですが、経験を通じて「センス」を磨けということです。

それでは逆に、

「プログラミングのセンス」

とは、いったい何なのでしょうか?

結論から言えば、次のような概念をプログラムで表現したり使い分けたりできる能力です。

データ型の種類について

  • 整数型
  • 小数型
  • 文字列型
  • 配列型

演算について

  • 四則演算
  • 論理演算

文法について

  • 変数の初期化
  • 変数への代入
  • 添え字による配列の参照
  • 添え字による配列への代入

制御の種類について

  • 順序処理(プログラムが上から下へ実行される前提)
  • 繰り返し処理
  • 条件分岐処理
  • 繰り返しの中で添え字をインクリメントする考え方

その他

  • 「表示」「切り捨て」などの関数はプログラミング言語に依存しない表記
  • オブジェクト指向プログラミングが前提(型の自動変換、文字列の足し算など)

まだ不明な点

情報1の内容からすれば、次のデータ構造が出題されても当然と予想します。

  • 辞書型(連想配列、キー・バリュー形式のデータ)
  • 集合型(順序がなく重複を許さない形式のデータ)

とはいえ、古いプログラミング言語では存在しないデータ型です。
教員側の研修が間に合わない懸念などがあれば、もしかしたら出題されないかもしれません。

教科書ではデータ形式を学ぶ中で、どうしても上のデータ型が出て来ます。
例えばWeb APIでインターネットから情報を取得する単元では、JSON形式というデータ形式が「キー・バリュー形式」の1つとして紹介されています。
これは Python では「辞書型」、JavaScriptやPHPなどでは「連想配列」と呼ばれています。
その基礎になっているデータ構造が「集合型」です。

どちらも現代の情報処理では必須のデータ構造ですが、古いプログラミング言語には存在しません。
大学入試の範疇になるかどうかは、様子見ですね。

フローチャートでプログラミングを学ぶだけでは不十分

情報1の中でフローチャートも学びます。
フローチャートを使えば、特定のプログラミング言語によらずに、プログラムの流れを記述することができます。

そう考えれば、

プログラミングの試験は全てフローチャートでやれば良いじゃん

という素朴な疑問が生まれます。

しかし、ここで高校は「高等教育」であることを忘れてはいけません。
高校のプログラミング教育は、実際にプログラミング言語を使った情報処理やシミュレーションが想定されています。
義務教育とは違い、より実践的なのです。

フローチャートでは「変数に値を代入する」などといった細かいことは表現しません。
データの型の違いや配列の添え字処理などは、実際にプログラミングしてみないと感覚がつかめません。

プログラミングの実践的な能力までテストしようとすれば、フローチャートでは不十分。
大学入試センターは、きっとそのように判断したのでしょう。

というワケで、フローチャートで論理的にプログラムの流れを書けるだけでは不十分です。

何か好きなプログラミング言語を1つ決めて、普段から少しずつプログラミングに慣れていく必要があるでしょう。
勉強の中に、情報処理やシミュレーションをコンピューターで日常的に行う習慣を組み込んでいく必要があります。

Python がおすすめ

それでは何のプログラミング言語がオススメ?

という話になると思いますが、私は pythonをおススメします。
次のようなメリットがありますから、初学者にはやっぱり Python です。

  • 無料かつパソコンならほぼ全て動かせる
  • 情報1の教科書で学ぶ内容に合っている
  • 文法が簡潔(文末の;やブロックの()や{}が不要など)
  • データ形式や記載法が近代的
  • 統計やデータ解析の機能が豊富
  • 初心者向けの参考書が多い
  • ネット上ですぐに調べられる

確かに、プロのプログラミングの世界では、日本ではまだまだ Pythonはマイナーです。
一方で大学の研究室では Python が文系理系を問わず多く使われています。

なお、日本のプロがPythonをそれほど使わないのは、日本の産業が「ハードウェア中心」「ものづくり中心」だからです。
あるいは日本では英語が読めないプログラマーや数学ができないプログラマーが多いため、海外の最先端に比べると技術が古かったり偏ったりしています。
ものづくり系ではC言語が主流で、Web開発系ではPHP、ゲーム開発ではC#やJavaという感じですね。

しかし今後はPythonや他の言語を使う人口が増えてくると思います。

どちらにしても、1つのプログラミング言語を通じてプログラミングのエッセンスを学ぶなら、文法の細かいことは少ない方が良いです。
特にこだわりが無ければ Pythonで学びましょう。

数学の「統計」を知っていることが大前提

プログラミング言語の話に偏ってしまいました。
ここで決して忘れてはならない大前提を書いておきます。

それは、あらゆる学年で学んできた「統計」の知識が前提だということです。
具体的には以下の数学が問題文中にバンバン出て来ます。

  • 小5の「円グラフ」「棒グラフ」
  • 小6の「合計」「平均」「中央値」「最頻値」「範囲」「階級」「度数分布表」「度数折れ線」
  • 中1の「相対度数」「累積度数」(パレート図)
  • 中2の「四分位範囲」「箱ひげ図」
  • 中3の「標本調査」
  • 数学1の「分散」「標準偏差」「散布図」「相関係数」「仮説検定の初歩」
  • 数学Aの「場合の数」「事象の確率」「期待値」「独立な試行の確率」「条件付き確率」
  • 数学Bの「数列」「ベクトル」「確率変数」「確率分布」「二項分布と正規分布」「区間推定」「仮説検定」

あくまでも「情報」の試験であるため、数学Bの知識をどこまで使うかは微妙です。
あまり数学を高度にしてしまうと、数学Bとの試験の区別が無くなります。

数学Bとのすみ分けは考慮されるだろうと思います。

教育改革で継続的に強化されてきた数学の分野が「統計」です。
英語の4技能と並んで、数学の統計も強化しています。

プログラミングは「人間の考え」を「コンピューターが分かる言い方」に翻訳していく作業と言えます。
とはいえ、翻訳できるのは、人間の考えのうちのほんの1部。
人間が「厳密に論理的に考えている部分」だけになります。

そして、人間が論理的に考えていることを超厳密に表現できるのが「数学」です。
コンピューターと数学が切っても切り離せないのはそのためです。

さらに物理シミュレーションのように、テーマによっては他の数学や物理の公式も使うことがあります。

入試問題用の「方言」が生まれる危険性

サンプル問題に載っているプログラムを見て感じた違和感が1つあります。
色々なプログラミング言語を経験して来た人ならすぐ分かることです。

それは、中途半端なプログラムだということです。つまり、

「手続き型プログラミング」

をしているようで、実は、

「オブジェクト指向プログラミング」

を暗黙のうちに前提にしています。

どっちかにしろよ!

などと突っ込みたくなる中途半端なプログラミングなのです。
変数名がローマ字というセンスも古臭いですね。今どきは英語です。
ちなみに最近のプログラミング言語は、変数名を日本語にしてもOKです。

日本語にするか英語にするか、どっちかにしろよ!

などなど突っ込みたくなります。
とにかく、技術的にも文化的にも変な問題文になっています。

受験者にとって不幸なのは、

入試対策としてプログラミングの「方言」を入試用に学ぶ必要が出てくるかも?

という懸念です。

今回のサンプル問題の出し方は、フローチャートよりも実践的な能力を試すための苦肉の策だったと言えます。
とはいえ、その策が「共通テスト用の方言」を生んでしまうのは良くありません。

特定のプログラミング言語に依存しないようなプログラムの見せ方

をどのように表現するのか。
これが、大学入試センターにとって大きな大きな課題でしょう。

考えられる1つの案としては、フローチャートとのハイブリッド的な記載でしょうね。

マイクラミングのプロコースはPython

最後は宣伝です。

ヒーローズ植田一本松校では、プログラミング教室「マイクラミング」を開講しています。
プログラミングの根本的な考え方から超丁寧に学びます。

ジュニア~ハイコースは、主に義務教育に対応しています。プログラミング言語はScratch(スクラッチ)です。

プロコースは、高等教育に対応しています。ハイコース卒業生か、それと同等以上の生徒が対象です。Pythonを使います。

日本では、Pythonを使うプログラミング教室の多くが、WebサーバーやWebアプリの開発を学ぶ社会人向けです。
中には大学数学を持ち込んで人工知能の開発へジャンプしてしまうコースもあります。

中学生や高校生に合ったコースを見つけるのは、なかなか大変です。
中学や高校で習う数学の知識を活用しるようなコースともなれば、さらに見つけるのが大変になります。

自分の息子にやらせたいと思えるプログラミング教室が無い!

そう考えて開発したのがマイクラミングでした。

私が塾の先生として、息子にやらせるものとして、独自に開発しました。
プログラミングの考え方や本質を学べるように、ちゃんと学校で学んだことを活用するように、念入りに開発しました。

その考え方に共感してくれる教室が、だんだん増えてきました。
北海道から九州まで。

こだわりの内容です!
手前味噌で恐縮ですが、自信をもってお勧めしますよ!

お問い合わせ、お待ちしております!!

 


進学実績

卒塾生(進路が確定するまで在籍していた生徒)が入学した学校の一覧です。
ちなみに合格実績だけであれば更に多岐・多数にわたりますが、当塾の理念に反するので生徒が入学しなかった学校名は公開しておりません。

国公立大学

名古屋大学、千葉大学、滋賀大学、愛知県立大学、鹿児島大学

私立大学

中央大学、南山大学、名城大学、中京大学、中部大学、愛知淑徳大学、椙山女学園大学、愛知大学、愛知学院大学、愛知東邦大学、同朋大学、帝京大学、藤田保健衛生大学、日本福祉大学

公立高校

菊里高校、名東高校、昭和高校、松陰高校、天白高校、名古屋西高校、熱田高校、緑高校、日進西高校、豊明高校、東郷高校、山田高校、鳴海高校、三好高校、惟信高校、日進高校、守山高校、愛知総合工科高校、愛知商業高校、名古屋商業高校、若宮商業高校、名古屋市工芸高校、桜台高校、名南工業高校

私立高校

中京大中京高校、愛工大名電高校、星城高校、東邦高校、桜花学園高校、東海学園高校、名経高蔵高校、栄徳高校、名古屋女子高校、中部第一高校、名古屋大谷高校、至学館高校、聖カピタニオ高校、享栄高校、菊華高校、黎明高校、愛知みずほ高校、豊田大谷高校、杜若高校、大同高校、愛産大工業高校、愛知工業高校、名古屋工業高校、黎明高校、岡崎城西高校、大垣日大高校

(番外編)学年1位または成績優秀者を輩出した高校

天白高校、日進西高校、愛工大名電高校、名古屋大谷高校

※ 成績優秀者・・・成績が学年トップクラスで、なおかつ卒業生代表などに選ばれた生徒

 


生徒・保護者様のお友達登録はこちら

LINE登録するとプレゼントがもらえます!
【会員限定】お子様の成績と可能性を伸ばす18個のノウハウ

友だち追加


塾関係者様のお友達登録はこちら

LINE登録するとプレゼントがもらえます!
「zoomで簡単。オンライン授業移行の教科書」
または個別対談も可

友だち追加

 


名古屋市天白区の植田で塾を探すなら個別指導のヒーローズ!!

★ 直接のお問い合わせ ★
――――――――――――――――――――――
個別指導ヒーローズ 植田一本松校
〒468-0009
名古屋市天白区元植田1-202 金光ビル2F
TEL:052-893-9759
教室の様子(360度カメラ) http://urx.blue/HCgL

マインクラフト「プログラム」と「コマンド」の違いとは?

プログラムとコマンドの区別

宇宙とコンピューターが好きな塾長です。

マインクラフトのプログラミング教室をやってきて、今年で4年目くらいです。

プログラミングとは何か?

まだまだ、これを説明する必要性があるのですが、ちょっとした課題も感じています。
みなさんは

「コマンド」と「プログラム」の区別

言えますか?

作業頭になっている危険性

マイクラのコマンド。
Windows のプロンプトのコマンド。
何かのゲームで裏技的に使うコマンド。

そのようなコマンドを「打つ」ことが「プログラミング」なのだと思い込んでいる人たちがいるのです。

もちろんプログラミング経験が無くて何だかわからずにそう思うのは仕方がありません。
知らないで、あてずっぽうに想像しているだけならば問題ないです。

問題なのは、プログラミングを経験してもなお、そう思い続けている人たちです。

何が問題かと言えば、

「作業頭」

になってしまっていることです。
「作業」は必要なことですが、多くの場合は工夫して、減らしたり無くしたりできます。
それをせずに、ただ同じ作業を繰り返すだけ、つまり考えることを放棄している状態を

「作業頭」

と私は呼んでいます。
創造力を発揮するのとは逆の意味です。そうなっている危険性があります。
ゲーム依存症の人たちに多いです。

「めんどくさい」

が口癖です。
工夫をしないし、考えることを拒むので、
傍から見ると、面倒な行動をわざわざ好んでやっているように見えます。

そういう人たちに「プログラミングの良さ」を伝えるのって、すごく難しいんですよね。

どうしたら伝わるのか。

それが最近感じている課題です。

コマンドとプログラムの区別がつかない子供や大人たち

私のプログラミング教室ではマインクラフトを使っています。
プリンターやディスプレイの代わりです。

プログラミングの結果が真っ黒な画面に表示されても、何も面白くありません。
だから結果の表示先をマインクラフトにしているワケです。

そのマインクラフトには「コマンド」と呼ばれる機能があります。

詳細はあとで説明しますが、そのコマンドをプログラムだと勘違いしている人をたまに見かけます。
お子さんだけではなくて、大人でも勘違いしている人がいます。

なぜ区別できないとマズイのか?

初めての人なら、この勘違いは仕方がありません。
「あるある」です。

しかし、ずっと勘違いしたままではマズイです。

特に、社会人でこの区別がつかないのは、かなり深刻です。
「作業」と「仕組み」の区別がついていないってことです。

生産性に直結します。

マイクラの豆腐建築で考えてみる

ここでマインクラフトのコマンドについて少し説明します。

例えば、下のような豆腐建築を考えてみます。
1辺が5ブロックの立方体で、中をくり抜いただけ。そういう単純な建築です。
(マイクラの世界では直方体の単純な建て物のことを豆腐建築と呼ぶそうです)

豆腐建築

普通に作業するなら、プレイヤーはブロックを1つ1つ置いて建築します。
1辺が5ブロックの大きさなら、必要なブロックの数は82個です。

これを1つ1つ置いて建築を進めます・・・めんどうですね。

そこでコマンドを使えば、たった3行です。

① コマンドで豆腐建築

/fill ~1 ~ ~1 ~5 ~4 ~5 stone
/fill ~2 ~ ~2 ~4 ~3 ~4 air
/fill ~3 ~ ~1 ~3 ~1 ~1 air

この例ではマイクラのfillコマンドを使っています。
fill コマンドは「2つの座標を対角とする直方体」を石や空気で埋めつくしてくれます。
(高校数学で習う立体空間の座標ですから、少し慣れが必要です。塾生は小学生でも理解しています。)

そして紛らわしいことに、プログラミングでも同様に3行です。

② プログラムで豆腐建築(スクラッチの場合)

マイクラ豆腐建築_スクラッチ

やっていることはfillコマンドと一緒です。
ちなみに、Pythonでプログラミングすると、こうなります。

③ プログラムで豆腐建築(Pythonの場合)

mc.setBlocks(1,0,1,5,4,5,1,0)
mc.setBlocks(2,0,2,4,3,4,0,0)
mc.setBlocks(3,0,1,3,1,1,0,0)

おやまぁ。

コマンドとプログラム。
①も②も③も、確かに似ています。
結果も同じ。

  • コマンドもプログラムも形が似ている
  • 手数も同じ
  • コマンドもPythonも英語で、なんか上級っぽい

これだけ共通していれば、勘違いしてしまうのも無理がありません。
でも口を酸っぱくして言わなければなりません。

全く違います!

コマンドは「作業」ですが、プログラムは「仕組み」です。

逆に、この2つの違いが言えるようになることが

プログラミングって何?

を理解する第一歩なのかもしれませんね。

コマンドとプログラムの違いを挙げてみよう!

コマンドもプログラムも、コンピューターに命令を与える点では同じです。
ですから、コマンドをいくつも実行していけば、プログラムと同じ結果を得られます。

しかし、コマンドは実行したら終わりです。
そこで消えてしまいます。

上の豆腐建築で考えてみましょう。

建物が壊れたり、ワールドを作り直したりした後で、また豆腐建築をやり直すとしましょう。
そうなると、また3行のコマンドを打ち直す必要があります。

コマンドは消耗品です。
同じことを10回するためには、同じコマンドを10回打ちなおす必要があります。
そして打ち直す回数が増えればミスの回数も増えますし、時間も体力も消耗します。

プログラムであれば、実行ボタンを押すだけです。
最初よりも2回目以降の方が、むしろ楽です。
回数が何回に増えようが、人間の行動は1回であることに変わりありません。

もっと複雑で大きな作業になったらどうでしょう。

豆腐建築を5軒×4列=20軒で並べて村を作りたい。

つまり、こんな村を作るならどうでしょうか。

豆腐建築の村

コマンドであれば1軒で3行ですから、3行×20軒=60行を打ち込む必要があります。
やってられません。

プログラミングならこうなります。

マイクラ豆腐建築の村_スクラッチ

やっぱり

豆腐建築を10軒×10列=100軒で並べて町を作りたい。

などと気が変わっても、プログラムならすぐ対応できます。

「4回繰り返す」「5回繰り返す」をともに「10回繰り返す」に変更するだけです。

あるいは、

建物の色を1軒1軒変えたい。

となったらどうでしょうか。

豆腐建築の村_カラー

コマンドの場合は、大量かつ複雑になります。
しかしプログラムならば1行の修正で済みます。

マイクラ豆腐建築の村_カラー_スクラッチ

このように、やることが複雑になるほど、大規模になるほど、プログラムは威力を発揮します。

プログラムがコマンドより優れている点

コマンドの限界はすぐに感じます。例えば

  • 「似たような作業をたくさんやる」
  • 「少しずつ変えて実行する」
  • 「他の人に同じことをやってもらう」
  • 「複雑な作業を組み立てる」
  • 「少しずつノウハウを蓄積する」
  • 「蓄積したノウハウを他の人に渡す」

などなど。
やるたびに消えてしまうコマンドでは、こうしたことができません。

そういう時こそプログラムの出番です。

プログラムがコマンドよりも優れている点をまとめるとこうなります。

  • 再利用できる
  • 複雑なこともできる
  • 大量の作業もできる
  • 速く正確にできる
  • 人に渡せる
  • 蓄積できる
  • 改良できる

これを一言でまとめると、

プログラムは「仕組み」

です。
一方、コマンドはその場その場で終わってしまいます。
結果を得ることはできますが、その場限りの成果です。

コマンドは「作業」

だと言えます。

仕組みを作れるプログラミングの方が、作業の効率化や発明につながるというワケです。

未来を考えるからプログラミングの価値が出る

マインクラフトはゲームですから、一瞬また一瞬を、刻々と楽しむものです。

今さえ良ければ満足

という感覚の連続です。
そもそもゲームってそういうものです。

ですから、ゲーム操作のほとんどは、その場限りの操作です。
その場限りの行動とその場限りの満足。
とても本能的です。

しかし、未来のことまで考え出したらどうでしょう。
マインクラフトの世界に「未来」を加えると、状況が変化してくるわけです。

  • もしかしたら、また同じことをやるかもしれない
  • もっと速く便利にしたい
  • 他の人もできるようにしたい

このような想像力を働かせたときに、初めてコマンドの限界を感じるようになります。
そこでプログラミングの出番になるワケです。

人間と動物の理性を区別する1つが「未来」を考えられるか否かだそうです。

  • 将来に備える
  • 複雑なことを簡単に実現する
  • 人と協力する
  • 社会に貢献する

こうした未来志向の欲求に応えるのがプログラミングです。

そして未来志向が強くなるほど、プログラミングの価値がよく分かるようになるでしょう。

ゲーム操作をプログラミングするのはムダ

逆に1回しかやらないことであれば、プログラミングのメリットはほとんどありません。
1回しかやらないのですから、コマンドを3行打つことも、プログラムを3行書いて実行することも、同じです。
むしろコマンドの方が楽かもしれません。

同じように、たとえば、

  • モンスターをスポーンさせる
  • プレイヤーを動かしてゲームを進める

などといったゲーム操作をプログラミングしたところで、何の価値もありません。
子供たちにとっても、何も面白くないでしょう。
そもそもゲーム操作の多くは1回1回の使い捨てだからです。

ゲーム操作をプログラミングするなんて、やらない方がましです。
純粋にゲームとして楽しんだ方が良いと思います。

ですから当然、マインクラフトのプログラミングを「ゲームの自動化」だと思っている限り、プログラミングの価値は理解できません。

マインクラフトに未来志向を持ち込むからこそ、プログラミングの必要性が発生します。

まとめ

未来志向が無ければ、コマンドとプログラムの区別がつきません。

  • 目の前の作業をこなすだけのコマンド
  • 未来の仕組みをつくるプログラム

この違いが本当に分かっていることが大切だと思います。

マインクラフトをプログラミングで使うなら、ぜひ仕組みを作りましょう。

1回しかやらないゲーム操作をプログラミングしても、面白くないし、価値がありません。
それでコマンドとプログラムの区別がつかなくなるなら、なお悪いです。

ゲームはゲームで楽しみましょう。
プログラムをつくるなら、ぜひ「仕組み」をつくりましょう。

そして普通では味わえないようなマインクラフトの世界をどんどん創造して欲しいと思います。

その経験は、やがて社会の仕組みをつくり変えたり、社会の問題を解決したりする力になるでしょう。

 


進学実績

卒塾生(進路が確定するまで在籍していた生徒)が入学した学校の一覧です。
ちなみに合格実績だけであれば更に多岐・多数にわたりますが、当塾の理念に反するので生徒が入学しなかった学校名は公開しておりません。

国公立大学

名古屋大学、千葉大学、滋賀大学、愛知県立大学、鹿児島大学

私立大学

中央大学、南山大学、名城大学、中京大学、中部大学、愛知淑徳大学、椙山女学園大学、愛知大学、愛知学院大学、愛知東邦大学、同朋大学、帝京大学、藤田保健衛生大学、日本福祉大学

公立高校

菊里高校、名東高校、昭和高校、松陰高校、天白高校、名古屋西高校、熱田高校、緑高校、日進西高校、豊明高校、東郷高校、山田高校、鳴海高校、三好高校、惟信高校、日進高校、守山高校、愛知総合工科高校、愛知商業高校、名古屋商業高校、若宮商業高校、名古屋市工芸高校、桜台高校、名南工業高校

私立高校

中京大中京高校、愛工大名電高校、星城高校、東邦高校、桜花学園高校、東海学園高校、名経高蔵高校、栄徳高校、名古屋女子高校、中部第一高校、名古屋大谷高校、至学館高校、聖カピタニオ高校、享栄高校、菊華高校、黎明高校、愛知みずほ高校、豊田大谷高校、杜若高校、大同高校、愛産大工業高校、愛知工業高校、名古屋工業高校、黎明高校、岡崎城西高校、大垣日大高校

(番外編)学年1位または成績優秀者を輩出した高校

天白高校、日進西高校、愛工大名電高校、名古屋大谷高校

※ 成績優秀者・・・成績が学年トップクラスで、なおかつ卒業生代表などに選ばれた生徒

 


生徒・保護者様のお友達登録はこちら

LINE登録するとプレゼントがもらえます!
【会員限定】お子様の成績と可能性を伸ばす18個のノウハウ

友だち追加


塾関係者様のお友達登録はこちら

LINE登録するとプレゼントがもらえます!
「zoomで簡単。オンライン授業移行の教科書」
または個別対談も可

友だち追加

 


名古屋市天白区の植田で塾を探すなら個別指導のヒーローズ!!

★ 直接のお問い合わせ ★
――――――――――――――――――――――
個別指導ヒーローズ 植田一本松校
〒468-0009
名古屋市天白区元植田1-202 金光ビル2F
TEL:052-893-9759
教室の様子(360度カメラ) http://urx.blue/HCgL

【プログラミング教育】確率を使えば円の面積が求まる?

受験が終わったらプログラミングで遊んでみよう!

塾長です。

もう春ですね。
3月3日と言えば桃の節句ですが、ことしは中学の卒業式でもあります。そのあとすぐに愛知県公立高校入試が始まります。国公立大学は先週から始まっていますね。
もう、そういう季節です。

受験が終わったら何をする?

一方で、すでに受験を終えている生徒も多いです。教室では私立高校から届いた課題に取り組む生徒たちや、中学生の総復習にあらためて取り組む生徒たちがいます。

要するに放っておけば新学期まで暇です。そんなキミたちに、

ぜひ今こそ、自分なりの「本当の勉強」というものにチャレンジしてみたらいかが?

などと声をかけています。
たとえば、理系の子には「ブルーバックス」というシリーズの本をお勧めするとか、逆に哲学の変な本を読んでみたらどうかとか、そういう雑談もしています。
コロナ禍で卒業旅行が難しい、そんなご時世だからこそ、落ち着いて本を読んでみるのも一興です。

もちろんマンガやアニメでも良いと思います。

新しい本との出会いは、新しい自分との出会いになることがあります。

また最近ではパソコンで遊んでみることもお勧めです。

塾長が生まれて初めて目にした科学計算プログラム

そんな話を生徒たちにしていたせいか、自分が高校生になったばかりの頃を急に思い出しました。

塾長は高校生になってから直ぐに地学部に入りました。天文少年だったので迷わずストレートに行きました。
高校の屋上には1つ部屋があって、その上が天文台になっていました。地学部は屋上もその部屋も天文台も、すべて自由に使うことができました。そして屋上の部屋には1台のパソコンが置いてありました。
ある日、3年生の先輩がそのパソコンで自作のプログラムを披露してくれました。

衝撃でした。何のプログラムだったか、今でもハッキリと覚えています。

モンテカルロ法による円周率の計算プログラム

今から30年以上も前です。たしかSHARPのX1というパソコンで、BASICというプログラム言語でした。
もちろんプログラムの1行1行を覚えているわけではありません。覚えているのは先輩がしてくれた説明です。

どんな計算をしているプログラムか

その仕組みというか、考え方が面白くて、今でも覚えているのです。

「あー、コンピューターって、こんなことまでできるんだ。」

そんなことを初めて実感した瞬間でした。

どんな話だったか、ちょっと説明しますね。

確率で面積を求める!?

突然ですが、もしもこんな図形があったら、どうやって面積を求めますか?

いびつな形の面積の図

長方形の中に雲みたいな形があって、色が塗られています。その部分の面積です。

もちろん、こんな変な形の面積を出す公式なんて知りません。

こういう時に次のような発想で求められると言うのです。

確率で面積を求められる!

もう少し説明を続けます。

もしも次のことが分かれば面積が求められます。

長方形の中で雲の形が占める割合

たとえば仮に、雲の面積が長方形の面積の3分の2だとすれば、

$$ 10 \times 6 \times \frac{2}{3} = 40 cm^{2}$$

という具合に求まるわけです。つまり、

実際には何分の何なのか?

という「割合」を求められれば良いわけです。

この割合、どうやって求めましょうか?

そこで確率の登場です。

上から針を落とす実験

長方形の中で雲の形が占める「割合」を求めるために、この絵に対してランダムに点を描いていくことを考えます。

点を描く場所に偏りがあってはいけません。人間の意思が働くと偏りが出るかもしれないので、人間の意思が入らないように、でたらめにやる必要があります。例えば、この絵を地面に敷いて上から針を落とし、針の先端が止まった場所に点を描く方法などがあります。そういう方法ができたとしましょう。

試しに10本ほど針を落として、その先端に赤い印をつけてみた例が次の図です。

いびつな形にランダムに点を打った図

10本の針を落としたら7本が雲の図の中に入りました。つまり針が雲の中に落ちる確率が $\frac{7}{10}$ ということです。これは言い換えると、雲の面積が占める割合が長方形の $\frac{7}{10}$ だったと見なすことができます。だったら、

$$ 10 \times 6 \times \frac{7}{10} = 42 cm^{2}$$

ということで求めたことになりそうです。

良ろしいでしょうか?

けっこう良い線まで求められたとは思いますが、まだ不安ですよね。

たったの10本で決断してよいの?

そういう不安感があるからです。たまたま7本だったのかもしれません。もう1回実験したら $\frac{6}{10}$ になったり、 $\frac{8}{10}$ になったりするかもしれません。

10回では自信が持てないのなら回数を増やせばよいです。そこで1万回くらい実験しましょう。そしてその結果が、 $\frac{6711}{10000}$ になったとします。だったら、

$$ 10 \times 6 \times \frac{6711}{10000} = 40.266 cm^{2}$$

ということで良いでしょうか?

かなり良い線まで求められたとは思います。
しかし、まだ不安が0ではないですよね。1万回よりは10万回、いや100万回。いやいや1億回なら・・・などと増やしていけば、いつかは求まるだろうと思うワケです。

このようにランダムな行為で発生する確率を利用して、何かを計算していく方法を「モンテカルロ法」と呼びます。

この発想法、すごくないですか?

塾長は高1の春に感動した思い出があります。

ところで、円の面積も、これと同じ方法で求めることができます。そして円の面積が分かれば円周率も分かるというワケです。

確率で円の面積を求める!

それでは円の面積を求めていきましょう。

いま半径1の円を描きます。中心を座標の原点にすると下の図のようになります。

xy座標の中の円の図

ここでマイナスの座標を使うと計算が面倒です。そこでx座標もy座標も「正の数」だけ使うことにします。それが図で黄緑色の部分です。

つまり下図のように円の右上4分の1の扇形だけを実験に使います。

xy座標の中の扇形

この図で色のついた扇形は、1辺が1の正方形の中にピタリと納まっています。この正方形の中に針を落とす実験をしてランダムに点を打っていきましょう。すると

$$半径1の円の\frac{1}{4}の面積=1 \times 1 \times \frac{扇の中の点の数}{点の総数} =\frac{扇の中の点の数}{点の総数} $$

となりますね。
一方で円の面積の公式を使った式では、

$$半径1の円の\frac{1}{4}の面積=1 \times 1 \times \pi \times \frac{1}{4} = \frac{\pi}{4} $$

両者は同じはずですから、

$$ \frac{扇の中の点の数}{点の総数}=\frac{\pi}{4} $$

よって

$$ \pi = 4 \times \frac{扇の中の点の数}{点の総数}$$

となって円周率 $\pi$ が求まるわけです。

プログラミングで求める!

それでは上の考えをプログラミングします。

ちなみに正しい円周率は、

$$\pi=3.1415926535 \dots$$

だそうです。
今回はこれを模範解答として、プログラミングで得られた円周率の精度を評価してみましょう。

扇の中か外かの判定は?

プログラミングをする上で、あと1つ問題が残っています。それは

打たれた点が「扇の中か外かを判定する計算」をどう実現するか?

という問題です。
先に答えを言ってしまうと、これは中3の「三平方の定理」で解決します。

扇形の中か外か

例えば上のように点が打たれたとします。もしもその座標が $(a, b)$ だったとすれば、原点からその点までの距離は三平方の定理から $\sqrt{a^{2}+b^{2}}$ となります。これが円の半径1よりも小さければ扇形の内部というワケです。

ただし1は2乗してもしなくても1なので、 $\sqrt{a^{2}+b^{2}}$  の代わりに $a^{2}+b^{2}$ を使っても、1以上か未満かの判定には影響しません。少しでも計算を楽にしてあげた方がコンピューターから高速に結果を得られます。そこでプログラムではルートを取る前の $a^{2}+b^{2}$ と1を比べて判定します。

さぁ、今度こそプログラミングです。

まずは私が高校生の時に経験したBASICというプログラミング言語で再現してみます。

BASICのプログラミング

半径1の図をそのまま描くと小さすぎて何も見えなくなるので、400倍に拡大して描画するようにプログラミングしています。

10 CLS
20 DEFINT L
30 L=400:COUNT=0:R=0.0:X=0.0:Y=0.0
40 CIRCLE(0,0),L,1
50 LINE(L,0)-(L,L)
60 LINE(0,L)-(L,L)
70 INPUT N
80 FOR I=1 TO N
90 X=RND(1)
100 Y=RND(1)
110 PSET((L*x),(L*Y)),2
120 R=X*X+Y*Y
130 IF R <= 1.0 THEN COUNT=COUNT+1
140 NEXT I
150 PRINT (4*COUNT/N)

このプログラムを使って、針を落とす実験の回数を10000回まで実行したのが下の図です。この1万回の実験で、だいたい6秒くらいかかりました。
扇形は青い線で、針の落ちた場所が赤い点です。

モンテカルロ法で円周率を求める

円周率が3.132と出ています。
残念ながら1万回の実験をもってしても小数第1位くらいまでしか求まらなかったようです。

そこで10万回に増やしてみました。今度は60秒くらいかかりました。

BASIC_モンテカルロ法で円周率_10万回

10万個も点を打つと、かなり塗りつぶされている感じになります。
そして円周率が3.1404と出ています。
ようやく10万回でお馴染みの「3.14」つまり小数第2位まで求められました。

こりゃ、とてもじゃないけど、人間の手で実験なんてしていられませんね。

Pythonのプログラミング

今度は同じことを「Python(パイソン)」というプログラミング言語で実行しました。下がそのプログラムです。
BASICよりも高速に動作するので、10万回を超えるような計算はPythonの方で実験することにします。
グラフィックは面倒なので省略します。その代わり計算にかかった時間を表示するようにしました。

import random as r
import time as t

def cal_pai(n):

count_in  = 0
start = t.time()
for i in range(n):

x = r.random()
y = r.random()
if (x*x + y*y) <= 1:

count_in += 1

pai_n = 4*count_in/n
print(“n={}, pai={}, time={}[sec]”.format(n, pai_n, (t.time()-start)))

cal_pai(100)
cal_pai(1000)
cal_pai(10000)
cal_pai(100000)
cal_pai(1000000)
cal_pai(10000000)
cal_pai(100000000)
cal_pai(1000000000)

実行結果が下の図です。私のパソコンでは1億回の計算に21秒くらい、10億回の計算に4分12秒くらいかかりました。

Python_モンテカルロ法で円周率_10億回

なるほど、やっぱり10万回で「3.14」まで求まるようですね。
そして1億回で小数第3位の3.141まで求まっています。
しかし10億回に増やしても小数第4位まで出すことができませんでした。本当は3.1415…と表示されて欲しいのですが、3.1416…となっています。

そこで100億回にチャレンジしてみたいところですが、そうすると1時間くらいかかりそうなので止めておきます。

Scratch(スクラッチ)のプログラミング

最後にスクラッチのプログラミングです。
スクラッチは計算が遅いので、このように何千万回も計算をするような処理には向きません。ただしプログラムは読みやすいです。

Scratch_モンテカルロ法で円周率_100万回

実行してみると100万回で小数第2位の3.14まで求まりました。かかった時間は3秒弱でした。意外と速いですね!

同じ100万回で見ると、Pythonは約0.22秒、BASICは約600秒ですから、スクラッチの計算速度はBASICの200倍、Pythonの$\frac{1}{13}$くらいの速さということになりました。もっとも今回のBASICはエミュレーター上で動作し、なおかつグラフ表示もしているため遅いのは仕方がありません。

スクラッチは簡単にプログラミングできる環境でありながら、立派にアルゴリズムをプログラミングして実験できる環境だと言えます。

小学生が初めてプログラミングする環境として「スクラッチが最強」であることが、あらためて実感できました。

弱点を補うのもプログラミング

スクラッチにも弱点はあります。今回のプログラムに関しては次の2つです。

  1. 小数の乱数を生み出す命令が無い
  2. 「以上」「以下」を表す演算子が無い(「より大きい」「より小さい」しかない)

この2つの弱点を補うために、それぞれ次のような工夫しています。

  1. 「0~1000の範囲」で整数の乱数を生成し、それを1000で割って小数にした
  2. 「1以下のとき」の条件が作れないので、代わりに「「1より大きい」でないとき」とした

みなさんならどのように工夫しますか?

有るもので工夫するのもプログラミング的思考の大切なポイントです。

とても奥が深い分野

モンテカルロ法は奥がとても深くて、大学の卒業論文などでもよく取り上げられる問題です。

奥が深いとは、例えば、実際に実験することを想像すればわかります。

実際に実験するときには、先に実験の目的を決めますよね。今回なら

「円周率を小数第何位まで求めたいか?」

ということを決めます。
仮に、これが世界で初めての実験だったとしましょう。
すると逆に、

「その桁まで求めるには、何回くらい実験する必要があるのか?」

ということが分かっていなければ、実験を終わらせることができません。

世界で初めて実験するのですから、まだ誰も円周率の小数第4位の数を知りません。つまり正解が分かっていません。

答え合わせができない!

というのが、この実験の難しいところなのです。

そこで代わりに

「何回目の実験で正解にたどり着けるのか?」

を何らかの方法で求めておく必要があります。
それが分かっていなければ、いつまでもゴールできません。永遠に実験をし続ける羽目になってしまいますから。

この「実験を終えてよい回数」を求める方法は、実はとても難しい理論になります。大学の数学レベルの話になってしまいます。

上の実験では、Pythonで10億回やっても小数第4位を正しく出せんでした。しかし実際の実験では、そもそも「正しく出なかった」という判断ができません。今回は先に円周率の正解を表示するという「ズル」をしていたので「まだ求まっていない」という判断ができた、というワケです。

さて、円周率の小数第4位の数。

100億回なら出るのでしょうか?
もしかしたら1000億回なのでしょうか?

こういうたいへんな作業をやる前に、先に「何回やったら終わっていいよ。」という回数を知っておきたいですね。

大学受験の範囲を超えてしまいますが、興味のある人は調べてみてください。

暇な時間を上手に使える人に成ろう

高校受験や大学受験を終えた皆さんが、暇つぶしをするネタとして、今回はモンテカルロ法で円周率を求めるプログラミングを提供してみました。

塾長の過去の思い出から、たまたま思い出したので書いてみました。

コンピューターを使った遊び方は色々ですが、ゲームをするだけではもったいないです。

ぜひコンピューターが持つ本当の力を引き出してみてください。

もちろん、これは時間の使い方の1つの例です。

みなさんは暇な時間に何をしますか?

そういう時間を上手に使える人に成りたいものですね。

 


ヒーローズ植田一本松校の進学実績

卒塾生(進路が確定するまで在籍していた生徒)が入学した学校の一覧です。
ちなみに合格実績だけであれば更に多岐・多数にわたりますが、当塾の理念に反するので生徒が入学しなかった学校名は公開しておりません。

国公立大学

名古屋大学、千葉大学、滋賀大学、愛知県立大学、鹿児島大学

私立大学

中央大学、南山大学、名城大学、中京大学、中部大学、愛知淑徳大学、椙山女学園大学、愛知大学、愛知学院大学、愛知東邦大学、同朋大学、帝京大学、藤田保健衛生大学、日本福祉大学

公立高校

菊里高校、名東高校、昭和高校、松陰高校、天白高校、名古屋西高校、熱田高校、緑高校、日進西高校、豊明高校、東郷高校、山田高校、鳴海高校、三好高校、惟信高校、日進高校、守山高校、愛知総合工科高校、愛知商業高校、名古屋商業高校、若宮商業高校、名古屋市工芸高校、桜台高校、名南工業高校

私立高校

中京大中京高校、愛工大名電高校、星城高校、東邦高校、桜花学園高校、東海学園高校、名経高蔵高校、栄徳高校、名古屋女子高校、中部第一高校、名古屋大谷高校、至学館高校、聖カピタニオ高校、享栄高校、菊華高校、黎明高校、愛知みずほ高校、豊田大谷高校、杜若高校、大同高校、愛産大工業高校、愛知工業高校、名古屋工業高校、黎明高校、岡崎城西高校、大垣日大高校

(番外編)学年1位または成績優秀者を輩出した高校

天白高校、日進西高校、愛工大名電高校、名古屋大谷高校

※ 成績優秀者・・・成績が学年トップクラスで、なおかつ卒業生代表などに選ばれた生徒

 


生徒・保護者様のお友達登録はこちら

LINE登録するとプレゼントがもらえます!
【会員限定】お子様の成績と可能性を伸ばす18個のノウハウ

友だち追加


塾関係者様のお友達登録はこちら

LINE登録するとプレゼントがもらえます!
「zoomで簡単。オンライン授業移行の教科書」
または個別対談も可

友だち追加

 


名古屋市天白区の植田で塾を探すなら個別指導のヒーローズ!!

★ 直接のお問い合わせ ★
――――――――――――――――――――――
個別指導ヒーローズ 植田一本松校
〒468-0009
名古屋市天白区元植田1-202 金光ビル2F
TEL:052-893-9759
教室の様子(360度カメラ) http://urx.blue/HCgL