Pythonがプログラミング教育に向いている5つの理由。

パソコン

【Python】プログラミング教育に向いてる5つの理由。

更新日:

2020年からプログラミング教育が必修化されることはご存知でしょうか?

詳しくはこちら。
[sanko href="https://riko-cal.com/parenting/programmingeducation2020/" title="小学校のプログラミング教育の内容とは?【2020年必修化】" site="りこかるのお部屋"]

[say name="シゲ" img="https://cubkitson.net/wp-content/uploads/2019/02/10-2-1-e1551287082977.jpg"]プログラミングなんてやったことないわ。[/say]

[say name="カミ" img="https://cubkitson.net/wp-content/uploads/2019/02/73-1-e1551287234652.jpg" from="right"]普通せやろな。[/say]

プログラムは難しい。

そう思い込んではいませんか?

実は、エンジニアにでもならない限り、プログラミングはそんなに難しいわけでもないのです。

[box class="box33" title="こんな人にオススメ"]
[list class="li-chevron li-mainbdr main-c-before"]

  • これからプログラミングを始めたい方
  • 子供にプログラミングを教えたい方
  • Pythonのことを詳しく知りたい方
  • プログラミング教育の利点について知りたい方

[/list][/box]

Pythonは手間が少ない

プログラム言語は大きく分けるとインタプリタ型コンパイル型の2つに分かれます。

コンパイル型はOSや各種ソフトウェアに使用され、プリンターや外付けハードディスクといったハードウェアも操り、高速性に優れている言語です。

ただ、コンパイル言語は、プログラムを実際に動作させるために機械語(マシン語)という言語に変換しなければなりません。

この作業をコンパイルと呼びますが、これが意外に面倒です。

それに比べ、インタプリタ型は動作が少々遅いものの、コンパイルの必要がありません。

書いたら即実行。これがインタプリタ型の最大の魅力です。

たった一手間ではありますが、プログラムにミスがあった場合に発生するデバッグ(バグを取り除く作業)が非常に簡単で、短時間で何度でも試せます。

小学生の授業時間だけでなく、大人でも限りのある時間に学習する上で、インタプリタ型は効率よく学習できるプログラム言語と言えます。

インタプリタ型のプログラム言語

インタプリタ型の言語には、主にWebページに使用されるPHPというプログラム言語があります。

いま皆さんがみているこの記事を含めて、WordpressはPHPで作られています。

自由度が高い上に、ブラウザで表示できるインタプリタ型の大人気なプログラム言語ですが、残念ながら教育用には向いていません。

なぜならPHPを学習する上で、知っておかなければならないことがあるためです。

PHPを実際にブラウザで表示させるためには、HTMLという実際にブラウザに表示させるためのコーディング、そのHTMLのデザインを司るCSSを知っておかなければならず、学習する上でPHPにたどり着くまでに大きな手間がかかってしまいます。

[say name="シゲ" img="https://cubkitson.net/wp-content/uploads/2019/02/10-2-1-e1551287082977.jpg"]そんなん言っとるけど、こなゆきはPHP大好きなんやで。[/say]

[say name="カミ" img="https://cubkitson.net/wp-content/uploads/2019/02/73-1-e1551287234652.jpg" from="right"]そういや資格試験のときもPHPでやれば良いのに!ってキレとったなwww[/say]

その点、Pythonには事前の知識は必要ありません。

インストールしてIDLEを実行すれば、すぐ学習できるよう設計されています。

インタプリタ型の中でも、学習するという点ではPythonは抜きん出ています。

Pythonで何が出来るの?

Pythonで作れる代表的なものは、今流行りのAI(人工知能)です。

Pythonで作られた人工知能は、膨大なデータ量から今後起こりうる可能性を探る統計学分野で大きな成果をあげています。

もちろんPythonのエンジニアになるためには、そう簡単なことではありません。

いわば、温泉ピンポンのような娯楽からオリンピック競技まである卓球のような奥深さが感じられます。

簡単でありながら奥が深い。

そこがPythonの大きな魅力です。

誰がみてもわかりやすいプログラム

Pythonの特徴として「ココからココまでを何回繰り返す」というコードや、「この条件ならこれをやる」というコードの中身をインデントで表します。

[memo title="MEMO"]インデントは字下げするという意味だよ![/memo]

他のプログラムでは、見やすいようにインデントする風習はありますが、強制ではなく個人が決めたルールでインデントしています。

また、インデントしなくても作動するため全くインデントしない人もいます。

そのため他人が見た場合、どこでどうなっているのかを把握しづらく、読み解くのに時間がかかります。

強制インデントという特徴はPython以外のプログラムにはありません。

この強制インデントのおかげで、他人がプログラムを読む時間を大幅にロスすることが可能です。

Pythonはライブラリが豊富

ライブラリは英語で図書館という意味です。

簡単に説明しますと、ライブラリは自分のプログラムに読み込ませるプログラムの集合体です。

例えば政治家になりたいAさんがいるとします。

Aさんが政治家になるためには、一生懸命勉強して有名大学に入り、コネを作りつつ秘書を何年かやって、ようやく党に入り、そこから推薦を受け出馬するという過程が必要です。

ライブラリは、全ての過程をすっ飛ばしてAさんを政治家にする方法をホイっと渡してくれます。

人それぞれ捉え方に差異はありますが、「いちいち文句言わないドラ○もん=ライブラリ」という方がわかりやすいのではないでしょうか。

Pythonには、そんな便利なライブラリがたくさん用意されています。

Webスクレイピング

Webスクレイピングとは、星の数ほど存在するWebページから様々な情報を集めることを言います。

統計学が得意なPythonは、スーパーコンピュータを使用することで、Webスクレイピングを利用して統計を取り、高度なAIを形成することが可能になります。

その点では、まだ発展途上にあり加速度的に需要が高まっています。

Pythonの弱点

完全無欠のような書きぶりで記事にしてしまいましたが、Pythonにも弱点はあります。

最初に述べたスピードです。

インタプリタ型も正確に言えば、実行の都度、ユーザーに見えない形で機械語へ変換されます。

元から機械語へ変換してあるJavaやC言語に比べると実行速度が遅いため、私たちがいつも使用しているWindowsやiOSといったオペレーティングシステム、ChromeやFirefoxのようなブラウザには不向きです。

これから先も、Pythonはアプリケーションの域を超えることはないかも知れません。

まとめ

この記事のまとめです。

[box class="box32" title="Pythonが学習に向いている理由のまとめ"]
[list class="ol-circle li-accentbdr acc-bc-before"]

  1. Pythonは手間が少ない。
  2. Pythonは他の言語よりもプログラムが見やすい。
  3. Pythonはライブラリが豊富。
  4. Pythonは簡単だけど奥深い。
  5. 需要が加速度的に高まっている。

[/list]
[/box]

最後に、Pythonの真理:The Zen of Pythonを書き記して記事を締めたいと思います。

import this #この1行を実行すると↓の実行結果を得られます
実行結果


The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

[box class="box26" title="和訳"]
「美しさ」は「醜さ」よりも優れています。
「明示的」は「暗黙的」より優れています。
「単純」は「複雑」よりも優れています。
ただ「複雑」は「訳のわからなさ」よりも優れています。
「フラット」は「入れ子」よりも優れています。
「疎」は「密」よりも優れています。
読みやすさが重要なのです。
「特別な場合」は「ルールを破るほどの特別」ではありません。
時には、実用性は純粋さを打ち負かすこともあります。

明示的に黙っていない限り、エラーは黙って次の工程に渡されるべきではありません。

あいまいさに直面しても、安易に推測されるべきではありません。
推測するための一つ、そして好ましくは一つだけの明確な方法があるべきです。

あなたがオランダ人でない限り、その方法は最初は明白ではないかもしれませんが。

「今やる」というのは、「何もしない」より勝ります。
ただ、「何もしない」というのは、「慌てて今すぐ飛びつく」よりは、まだマシなことが多いものです。

もし、何かをしようとして、その説明が難しいとすれば悪いアイデアに決まっています。
何かをしようとして、その説明が簡単だとすれば、それは良いアイデアの可能性があります。
プログラムや変数に気の利いた名前を付けるのは、いいアイデアです!--でも、その先をやりましょう!

(和訳:google翻訳を日本語っぽく和訳)[/box]

最後までお読みいただきありがとうございました。


  • この記事を書いた人

こなゆき

パーフェクト趣味人。 知的好奇心MAX。 ゲーム・パソコン全般・科学・DIY・オーパーツとか怪しげなものも大好物。

-パソコン

Copyright© さぶかるぐらし , 2019 All Rights Reserved.