個別指導塾、学習塾のヒーローズ。植田(名古屋市天白区)、赤池(日進市)の口コミで評判!成績が上がる勉強方法が身につく!振替、自習も便利!
// 条件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

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

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

大学入試のプログラミングはいつから? 傾向・対策・難易度

大学入試のプログラミングはどんな問題?

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

プログラミングやコンピューターの知識が大学入試でも出題されます。
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

ICTでどうなる?とある塾長が教育の未来を予想してみた

未来の教育

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

「これから日本の教育はどうなると思いますか?」

こんな質問を昨日、とある教育関係に就職を希望している講師から質問されました。そこで私のした回答をブログにも書いておこうと思います。

プログラミングで「すでに起こっている未来」とは!?

最初に「すでに起こっている未来」について紹介します。面白い事例です。

そして実はこの話は今日のブログの最後の話に繋がります。

その「すでに起こっている未来」とは「マイクラミング」の「プロコース」に通う生徒たちの姿です。

なんと、学年がバラバラすぎるのです。

小学生から大学生まで、本当に色々な学年の生徒たちが、同じコースを受講しています。

飛び級とか、そういうレベルではありません。

もっと言えば、ぜひ大人たちにも受講して欲しいとすら思っています。大人たちが子供を引っ張っていくのですから、大人にもプログラミングを学んでほしいです。

小学生は、かなり背伸びをして学んでいます。それでも付いてきています。「ハイコース」を卒業して来ただけのことはあります。
中学生は、すこし背伸びをして学んでいます。ちゃんと付いてきています。もちろんハイコースの卒業生です。
高校生以上は、理解が速いです。でもプログラムのミスは小中学生と同じように発生します。

人間はランダムにミスを起こしやすい生き物です。知識の差がない内は、学年によらず、みんな同じようなミスをします。みんなでミスを共有してノウハウを高めていきます。

またプログラミングはコンピューターのサポートを受けながら学ぶのが前提です。人間の得手不得手がコンピューターのサポートで穴埋めされてしまうので、それだけ学年の差が目立たなくなります。

さらにプログラミングでは「答えのない問題」にチャレンジします。これまでの勉強とは逆に、むしろ「間違えること」が大切なのです。そのため知識のある人が素早く解いて暇を持て余すような状態が起こりにくいです。

「コンピューター」とか「ITS」などと言われると、みなさんは何を思い浮かべますか?

「作業効率」や「便利さ」などが注目されがちです。もちろん、それもありますが、上で書いたように人間の経験がフラット化して、

「先輩も後輩もなくなってしまう」

という現象も起こるのです。

今まで日本の学校ではプログラミングをほとんど教えて来ませんでした。ですから何年生であろうとプログラミングを学ぶのに知識や経験の差はほとんどありません。

学年は大きな意味を持たないのです。

そのため結果として、同じプロコースを小学生から大学生までが同時に受講しているという現象が起こります。

さて、こうした事実をヒントに、みなさんも

これからの教育がどうなっていくのか?

ぜひ予想してみてください。

テストや入試が無くなる!?

最もインパクトの強そうものから、あえて大胆に行こうと思います。

将来的には学校のテストが無くなると思います。考えれば考えるほど「成績をつける」という行為がそもそも無駄な作業だと思えてきます。何年後になるか分かりませんが、そうなると予想します。

これは「教育の理想」から逆算した予想です。わたしはそれを次のように設定してみました。

  • 誰でも、希望のスキルを習得するまで必要十分な教育を受ける権利がある
  • 誰でも、教育の内容や方法は自分に合った個別最適で受ける権利がある

もしもコンピューターがこの理想に向かって活用され、進化していったらどうなるでしょうか?

きっと、生徒が学習して来た全ての過程がコンピューターに記録されるようになるでしょう。するとそこから、その生徒に必要な次の学習が素早く適切に示されるようになります。このような仕組みの下では、そもそも学年が不要です。できるところはどんどん進んでしまい、できないところはじっくりマイペースにやればよくなります。
そして学校の先生はコンピューターの記録を見れば生徒の状況をすぐに把握できます。いつでもすぐに把握できるなら、わざわざテストを実施する必要がありません。

このような仕組みの下では、そもそも優劣の定義ができません。みんなが違うことを違いペースで行うため、横並びの比較ができないからです。あるのは一人一人の緻密な記録です。

人間には指紋があって、それは一人一人違います。しかし誰も「こっちの指紋の方が優れている」なんて比較しませんよね。そのような状態になるでしょう。

進学に関しては、学習内容のマッチングが重要になります。高校や大学でやっていることと、生徒がやってきたこととの相性が何らかの指標で示されるでしょう。学習を進めればその相性はリアルタイムで更新されていくので、自分に合う進路をどの時点においてもじっくり考えることができます。入試は不要です。

第一、少子化がどんどん進むのですから定員は満たされません。競争が無いのですからマッチングの質を高めるしかないでしょう。入試は自然消滅していくと思います。

学校の先生は、今よりももっと生徒指導にやりがいを感じやすくなると思います。テストをしたり成績を付けたりする手間がなくなるのですから、それだけ生徒のよき相談相手として役割に集中できるでしょう。しかも今までよりも実践的な相談ができます。勉強で何を伸ばしたいのか。逆に苦手をどうしたいのか。回避したいのか、克服したいのか、そこそこに乗り切りたいのか。そのような相談をして、一人一人の教育方針をきめ細かく設定し、コンピューターに指示していくことができるでしょう。

ビッグデータの学習ログさえ実現できてしまえば、テストも入試も不要になると思いませんか?

学年もクラスも無くなる!?

生徒の教育を最後までやり切る。

そこに集中していけば、上のようにテストも成績管理も不要になると考えました。

私はさらに「学年」や「クラス」も消えてしまうと予想します。それらの代わりになる別のグループ単位が構築されるだろうと思います。

今度は逆に「今までの方がおかしい」という所から考えてみましょう。

今の僕たちは、テストが終わればそのテスト範囲の勉強は終わりです。よい成績を取るのが目的であり、その先が無いからです。もうそれ以上は授業を受けることができません。

これって変ですよね?

なぜなら勉強とは「できない」を「できる」に変えることだからです。テストで間違えたところを「できる」ようにすべきで、本当はテストを終えた後こそ、もっと勉強すべきです。先に進んではダメでしょう。

ところが今はそうなっていません。なぜなら「学年」や「クラス」という制限があるからです。

昔はコンピューターが無かったので、生徒一人一人の学習過程を細かく記録することができませんでした。そこで記録を細かくつけるのは諦めて、1人の先生が覚えきれるくらいの人数で指導する「クラス」という単位ができました。記録ばかりしていたら指導ができません。コンピューターが無かったので大雑把に記録するしかありませんでした。

また昔は教材も電子化されていなかったので、1冊の本に合わせて勉強する方が分かりやすかったのです。指導もその方が楽です。そこで「学年」を設けて学年ごとに1冊の教科書が対応するようになりました。1年の学習計画も教科書に合わせて立てられました。

このように学校の学年もクラスも定期テストも、全てコンピューターが無かった時代の仕組みです。

コンピューターの発達でその前提が崩れました。「作業が大変だから無理」という理由が無くなり、もうすぐ生徒1人1人の細かい学習の記録が可能となり、教科書も電子化されてランダムに参照できるようになります。いよいよ個別最適の教育ができるようになります。

個別最適の教育

その行きつく先では、学年もクラスも無くなっていると思いませんか?

本当の意味で表現が自由になる

教育改革では、

  1. 知識・技能
  2. 思考力・判断力・表現力
  3. 主体性

の3つの内の2番目と3番目の強化がうたわれています。
その中でも特に気になるというか、疑問に思っているのが「表現力」です。

主体性は表現した結果を見て判断するしかありません。そのため主体性も表現力次第になってしまいます。「実力はないけれど、表現がうまいから主体性があると見なされる」では、教育に中身がありませんし、不公平です。

そう考えると「表現力」とは何なのかが気になります。というよりも「何を表現と認めるのか」が気になります。そこで先に理想を設定してみようと思います。

  • 多様な表現手段や表現形式が認められるべき
  • 誰でも、自分の望む表現ができるようにサポートを受ける権利がある

コンピューターの発達で、それが可能になっていくだろうと塾長は思うわけです。

代表的な例が、漢字の自動変換です。キーボードで漢字入力が正しくできるのであれば、書き取りの能力としては十分だと認められるべきでしょう。

それだけではありません。塾長はもっともっと多様な表現形にも対応していくべきだと思うワケです。

仮に入試そのものが無くなるとしても、現実問題として、学習過程の練習や演習では「認められた表現形式」でしか回答が許されないでしょう。これはつまり、「学習の記録」の残る「できた」「できない」の評価がその形式に依存してしまうことになります。社会科なのに漢字で書かないから「できない」と見なされたのでは社会科の学習過程を正しく記録できません。

自分の表現が形式上の制約を受けてしまい、思うような表現ができないのであるなら、それは問題です。例えば進路のマッチングについて正確に分析ができなくなるかもしれません。

教育改革後の入試問題を見る限り、相変わらず表現手段として「文字列」しか認めていないのが現状です。問題文には図表が出て来ますが、図表で回答することができません。許されている回答の表現形式が、あまりにも限定されすぎています。

言葉で答えたら〇なのに絵では×

塾長が中1のときの話です。理科のテストでした。動物の分類が問われました。

ハチュウ類のワニは大きく2種類に分類されます。アフリカやアジアに住む「クロコダイル」と、アメリカに住む「アリゲーター」です。確か生息地をヒントに名前を回答する知識問題でした。

私は肝心の「クロコダイル」「アリゲーター」という名前を忘れていしまいました。なんとか必死に思い出そうしていると、授業中に先生が「アフリカの(クロコダイル)は下の歯が見えるが、アメリカの(アリゲーター)は見えない。」と説明していたのを思い出しました。そこで「クロコダイル」と書くべき解答欄に、代わりに「下の歯が見えているワニの横顔の絵」を描きました。そして「アリゲーター」と書くべき回答欄には、「下の歯が見えないワニの横顔の絵」を描きました。

もちろん×でした。

まぁ期待はしていませんでしたが、あわよくば部分点をという期待が打ち砕かれて、何とも寂しい気持ちになったのを今でも覚えています。とにかく中1の時の塾長は、テストに慣れていなかったので、このように回答形式で空気が読めずに苦労しました。

表現力や主体性を評価したければ表現の自由度を拡大させる必要がある

それはそうと、今あらためて教育者の立場として振り返ってみますと、今だからこそ「別に〇でも良いじゃん。」などと思えてくるのです。

もちろん昭和の時代は×でよかったです。コンピューターが未発達でしたから「紙に文字をしっかりと書く」という表現形式が前提になっていたのは仕方がなかったと思います。社会に出れば何かと「紙に文字を書く」ことが要求される世の中でしたからね。

でも今は違います。コンピューターが当たり前の時代で、しかも日々ものすごいスピードで進化しています。ペーパーレス化が進み、ほとんど直筆の文字も書かなくなり、人工知能が落書きも認識してくれるような時代です。もっと広く表現手段を認めても良いだろうと思うワケです。

実際問題として、学年が低くなるほど、表現力も主体性も乏しくなります。まだ知識が少ないし、表現手段や表現のテンプレも多くは知りません。特に文字の読み書きに関しては、学習障害で生まれつきの格差が起こり易いです。

ですから今のまま義務教育の段階の子供たちや習熟度の低い高校生たちに、表現力だ、主体性だ、などと言っても、生徒たちは何もできずに困ってしまうだけではないでしょうか?

一方で、確かに表現力や主体性の強化は大切です。

それではどうするか?

もう、その「表現力」として認める表現形態を多様に認めるより他にないでしょう。子供たちが使える数少ない表現手段で、一生懸命に表現してくれたものを前向きに認めていく必要があると思うのです。

つまり、表現力や主体性を評価したいのであれば、評価する側には、多様な表現形式を受け入れられるだけの懐の広さが求められるというものです。

そのように、教育のあるべき姿を考えれば、表現する側も、それを評価する側も、コンピューターのサポートを受ける必要がどんどん出てくるでしょう。

コンピューターによる表現サポートが発達すれば、その先には、表現の自由が拡大した世界が待っている思いませんか?

一生ちょこちょこ勉強し続けるスタイルになる

コンピューターで人々がつながるようになり、率直な意見の出し合いも盛んになりました。TwitterなどのSNSを見ればわかるように「意見」になる手前の「心のつぶやき」レベルの言葉がたくさん共有されるようになりました。

これが教育に与える影響は大きいと思います。つまり今まで何となく心の中だけで「これ勉強しなくても良いんじゃね?」と疑問に思っていたようなことが、見えるようになってしまったからです。

例えば、誰かが

「ぶっちゃけ漢文って勉強する意味ないよね。みんなが勉強することじゃないよね?」

みたいにつぶやいたとします。それをみんながリツイートしたり賛同のコメントを書いたりしていくと、それが一種の社会現象になります。その中から世論にまで拡大するものが出てくるでしょう。

「みんなもそう思ってたんだ。だったら勉強したい人だけすれば良いじゃん!」

このような意見が世論の圧力にまで高まってしまえば、国も指導要領を変えるしかありません。教育改革していたら対応が間に合いませんから、文部科学省から教育委員会へ通達を出すような形で小改訂が繰り返されるようになると思います。

もちろん今の段階では「入試で出すから勉強しろ!」と脅して学生諸君を黙らせることができています。しかし、少子化や学校の経営難などが加速すれば、その脅しも効かなくなるでしょう。不合理な出題をするような大学には学生が集まらなくなるかです。そうやって不合理な入試そのものが無くなっていきます。ですから、そのころになると、いよいよ文部科学省から教育委員会へ通達する改善案件の数も増えていくでしょう。ちゃんとICT化を進めていれば、この対応もそれほど難しくはありません。もしもICT化ができていなければ、その対応作業に追われてブラック職場になり、果ては閉鎖に追い込まれると思います。

このような合理化の流れによって、学生の学ぶものがミニマム化したり、アラカルト形式に変わったりしていくことでしょう。

漢文を勉強したい人はするし、したくない人はしない。必要性があれば勉強するし、なければしない。そのような合理化によって、みんなが画一的に勉強するというシステムが、どんどん壊れていくと思います。

こうした変化は義務教育では起こりにくいかもしれませんが、高等教育ほど起こり易くなると思います。学年が高いほどオンデマンド的な教育が進みやすいでしょう。

今のシステムに代わりに「学びたいものを学びたい時に学ぶ」というスタイルになるでしょう。つまり生涯教育が加速していくと思います。

これまで多くの人にとって「大学入試までの勉強」だったものが「一生涯の勉強」に変化していくのだろうと思います。

「三角関数なんて、要らないよ。」

と信じている人は、それを勉強しない選択をするでしょう。どうせやっても頭に入りません。しかし人生は長いので、もしかしたら必要になる時が来るかもしれませんし、本当に一生必要ないかも知れません。ですから

誰であろうと、必要な時に必要なものが勉強できる!

という環境を整えておくことが社会全体としては大切なのです。

生身の人間だけでその環境を作るのは無理でした。しかしコンピューターの発達で、それができるようになっていきます。それに伴って、人々の学びに対する態度はさらに合理的になっていき、結果として「生涯ちょこちょこ勉強し続ける」ようなスタイルになると思います。

世の中は少しずつ良くなっていく

私は根柢のところで

「世の中は少しずつ良くなっていく」

と信じております。

そして「良くなる」の意味が「自由になる」ことだと思っています。

ICTの活用でそれが進むと信じているので、上のような予想になりがちなのだと思います。

みなさんはどう予想しますか?

 


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

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

国公立大学

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

私立大学

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

公立高校

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

私立高校

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

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

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

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

 


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

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

友だち追加


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

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

友だち追加

 


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

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

緊急事態宣言「延長」での運営方針(2021/2/3~3/7)

緊急事態宣言延長_20210203

塾長です。

愛知県に出されている緊急事態宣言を「1か月延長する」と発表がありました。
2021/2/2夕方に大村知事が意向を発表、その夜には菅総理から正式に全国10都府県で延長と発表されました。

これを受け、先のブログ「緊急事態宣言での運営方針(2021/1/14~2/7)」で宣言した方針を、そのまま1か月延長します。
すでに塾生のご家庭にはコミルで対応方針をご連絡いたしました。

お問い合わせの方や講習の外部生にも向けて、ブログでも概要を掲載しておきます。

基本的な対応方針

  • 実施期間: 2021/2/1(月)~ 3/6(土) 延長
  • 実施内容: 21時に閉館(通常より1時間早い)
  • 調整事項: 期間中のみ21時台の受講分を20時台以前へ移動

※ 時間短縮営業は当塾の自主的な対応です。ご理解とご協力をお願いいたします。

主な開校スケジュール

期間中も対面授業を実施しておりますが、オンライン指導でも対応可能です。
予定通り、春期講習、プログラミング教室、テスト対策、入試対策も行います。

2021年2月の授業予定

※「21時閉館」する以外は「すべて予定通り」です。

通塾がご心配な方に対する個別対応(再掲)

  • 保護者様のご判断でオンライン化をご希望される場合は、個別に対応いたします。
  • オンライン授業はアプリZOOMで行います。
  • その他、振替対応なども臨機応変に対応しております。
  • ただし通常の時間帯とは異なる時間帯へ個別に調整させていただくことがあります。

恒常的な対応(再掲)

緊急事態宣言の有無にかかわらず、次のことは常に実施しております。

  • 教室に出入りする人すべてのマスク着用
  • 受講座席をパーティションで分ける(昔から設置済み)
  • 自習座席を2座席おきに配席(ソーシャルディスタンス)
  • 教室の消毒と換気
  • アルコール消毒液の設置
    など

その他(再掲)

今回の宣言では学校や学習塾に対して休校や時間短縮の要請は出ておりません。
よって上記の方針は自主的な取り組みを含みますので、他塾と比較する根拠にはなりません。

今後も必要に応じて行政の指示に従い、安全な運用を心がけます。

上記の方針も、状況により変更や改善を行うことがあります。

もしも関係者に感染者が出た場合の対応方針につきましては先のブログ「2021年1月の教室の運営方針」をご覧くださいませ。

 

1日も早く感染が収束し、重篤患者が出なくなることを願います。
医療関係者の皆様へ、心より感謝と尊敬の意を表したいと思います。

 

以上です!

 

 


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

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

国公立大学

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

私立大学

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

公立高校

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

私立高校

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

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

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

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

 


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

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

友だち追加


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

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

友だち追加

 


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

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