学校でプログラミングを教えるより正規表現やSQL文の書き方を教えるべき
ハッキリ言って、学校でプログラミングを教える必要は無いと思います。なぜなら、決まった答えが無いからです。それに、何の言語を教えるつもりなのでしょう。まさか、汎用性が高いなどといって、VBAでもやるのでしょうか。それとも、基礎が大事などといって手書きでHTMLでも書くのでしょうか。そもそも、教える側がコンピュータイコール、プログラミングなどという短絡発想ではないかと疑っています。
プログラミングにはこれという正解が無いです。学校の点数主義な教育方針で「これが正解」のような書き方が勝手に広められたらどうでしょうか。開発現場は今以上に阿鼻叫喚の地獄絵図になると思います。まともに教えられるならプログラミングは教えた方がいいと思います。しかし、今の日本にはそれができるキャパシティはありません。これがプログラミングの教育に対して私が否定的になる最大の理由です。
更に言及すると、プログラミングをいきなり教えるという考え方がずれています。プログラミングというソフトウェアを作る技術より、まずはソフトウェアを使いこなす技術を教えるべきではないでしょうか。現時点でもソフトウェアを作る人はたくさんいます。その、作ったソフトを使いこなす人がいて、初めて何らかの結果に繋がります。また、使う人の良質のフィードバックがあってこそ、高度なソフトウェアが作成できるというものです。
ビックデータを扱うにしろ、AIを扱うにしろ、大量のデータを処理できる人材が必要です。そのためには、SQL文が書けるようになるのは非常に効果的と考えます。また、大量のデータからより、目的に近いデータを抜き出すとなれば、基礎になるのは正規表現かと思います。プログラミングを教えるにしても、この二つを避けては通れません。
細かいことを言えば、正規表現やSQLもプログラミングに入るといえば入るかもしれません。ポイントは、ソフトを作るための教育より、ソフトを使いこなすための教育が必要ということです。AccessでもSQL文は実行できます。一般的なエディタ (あえてvimと特定はしません) でも正規表現は活用できます。すくなくとも、特定もできないプログラミング言語より、どう活用するかという返答が速やかに出せます。
教育として行うなら、どう活用していくべきかしっかりと説明できるものを教育していくべきではないでしょうか。
コメント
ほげぴー
そもそも学校は決まった答えを教えるものといった認識が気になりますが、それはさておき。
↑
気にしておいてください。物の見方は千差万別です。いろいろな見方があることは認めるべきことかと。
By Horus
プログラミングも教え方次第ではないでしょうか。例えばテストでは毎回コーディング規約が与えられてそれに従って書けるかをみるなど。そうすれば現場に入ったとしてもコーディング規約にしたがって書くので品質はある程度担保されるのかなと。
↑
それが最も避けるべきパターンです。なぜなら、現場のコーディング規約自体がクソなケースが多いからです。個人的にはコーディング規約に則っても品質は上がらないと思っています。コラムのネタにしてみようと思います。
とりあえずフォーマッタでも使えと指摘しておきます。
By Horus
仲澤@失業者
まぁ何を学ぶのでもだいたい同じなんですが、
経験上で言うならプログラムを学ぶためには「日本語の読解力」が絶対に必要。
↑
コラムでは触れていませんが、この意見に全面的に同意します。
By Horus
例えばWin32SDKの画面に文字列を描画する関数TextOut()の説明は
「現在選択されているフォント、背景色、および文字の色を使って、指定された場所に文字列を描画します。」「関数が成功すると、0 以外の値が返ります。」です。
自分は最初に見たときには何が書かれているのか数分考え込んでしまいました。不明確な部分の説明は一旦保留にして、わかる部分を理解したうえで、仮説をたてたり、不明部分を明確にしてから、それを調べなければならなかったのです。これって、何歳ぐらいから可能なんでしょうかねぇ。
↑
私の個人的な意見ですが、言語化するよりやらせて納得させるべき課題かと思います。経験が無いと、言葉以前に何を言おうとしているかすら分かりません。
言語化しても経験が無ければ理解できないことはあると考えています。どんなに日本語の能力が高くても、理解させるには経験が必要です。そう考えると下積みが必要なので、16~18歳くらいからでなければ難しいかと思います。
By Horus
名無しのSE
SQLってのももっと短絡的では?ww
↑
短絡でもいいです。短絡的な意見を否定するなら、コラムについたコメントを全否定することになりますので。
By Horus
>ビックデータを扱うにしろ、AIを扱うにしろ、大量のデータを処理できる人材が必要です
今はね。2020年の小学生が社会に出る頃には時代はガラッと変わっているよ。
↑
なので、それに対応しようという話をしているのですが。
By Horus
それよりも、プログラム言語の基礎だけをかじらせておいて、興味ある人は自由研究なり趣味なりで思いっきり何かを作る、という好奇心の選択肢を与えることが重要。
↑
この意見には同意します。
By Horus
>教育として行うなら、どう活用していくべきかしっかりと説明できるものを教育していくべきではないでしょうか。
あなたの言うことが正しいのであれば、音楽や美術の授業は不要ですね。
↑
音楽や芸術を知らない人の発言ですね。音楽や芸術も、しっかり学べば高度な理論に裏打ちされていることが分かるはずです。直接活用できなくても、間接的に大きな恩恵を得ることはできます。
音楽や芸術の活用の仕方についても、ここで説明したとおりです。時間さえいただければしっかり説明もできます。故に必要です。
By Horus
匿名
もう少し調べてから発信すべきかと思えます。
↑
もう少し考えてからコメントすべきです。
By Horus
匿名
小学校のプログラミングの話でしょうか?
↑
違います。どこにも「小学校」などと書いていません。
By Horus
論理的な思考を養うのが目的で、特定の技術を習熟させるのが目的ではないかと思います。
↑
それが現状の教育現場ではノウハウが無いので無理だという話です。
By Horus
VBAやらを覚えさせるのはもちろん、Sql、正規表現なども将来使う目的で学ばせるのは無理があるかと思います。
↑
小学生にやらせるのは無謀ですが、高校の選択科目で将来使わせる前提で教えるならありかと思います。
By Horus
匿名
今回の変更によって、学校でプログラミング言語を教えることにはなるわけではなさそうです。
https://edtechzine.jp/article/detail/518
↑
情報ありがとうございます。
By Horus
Horus
コメントに返信をつけました。コメントが多かったため、誰にどの返信をつけたか分からなくなるので(なったので)、コメントへの追記で返信をつけました。
コメントを付けるときは何でもいいので名前は入れてください。匿名さんがいっぱいいて、どの匿名さんか判別できずしんどいです。データに振るID程度に考えておいてください。
・・・いや、マジで匿名さんは勘弁してほしいです。
T.Nakagawa
> プログラミングにはこれという正解が無いです。学校の点数主義な教育方針で
個人的にはSQLでも「これが正解」と決まらない場合が多いと思います。その書き方が適切かどうかはテーブル設計とデータによって異なります。
それこそ「JOIN禁止」「EXISTS禁止」みたいなのは勘弁してもらいたいです。
Horus
> T.Nakagawa さん
(名前いれでコメント頂けて助かります)
これについては、本当に ケース バイ ケース ですよね。試行錯誤を繰り返す内に覆ることもあります。たまに、過去の自分が覆ることもあるので、本当に正解はわかりません。
ap
指導要領を読むとプログラミングではなくプログラミング思考が目当てですので、企画段階としては大丈夫そうです。実装段階でどうなるかは分かりませんが。
Horus
> ap さん
プログラミング「思考」なら問題なさそうですね。ただ、その後に曖昧な文言が羅列していそうですが。
T.Nakagawa
レスありがとうございます。
今のところ小学生段階では「プログラミング言語」は対象外との話は聞きました。
ですが、だとすると「プログラミング思考」がどんなもので誰が何をどう教えるのかが課題のように思います。以前
http://www.atmarkit.co.jp/ait/articles/1804/26/news018.html
という記事がありました。暗記するだけでなく読解力や考えてみる習慣(すぐ正解を教えてもらおうとするのではなく)を大事にするほうが先な気はします。今の学校教育がそっちに向いているか不安はあります。
Horus
> 「プログラミング思考」がどんなもので誰が何をどう教えるのかが課題のように思います。
多分、各人が好きなように考えているので、政府?何ちゃら連盟?か何かは知りませんが、まとまった考えは無いと思います。どうせまとまらないなら、各学校の特色が出やすいように、独自にカリキュラムを組めるように学校運営の方針を変えた方が有効かと。
それぞれに任せたら、結果を出したところが生き残ります。全体で方針云々を議論するより、何らかの結果は得られるのでは。