アカウント名:
パスワード:
実際のプログラミング(構文とかそういうの)を教えるという話なら、そんな授業は多くの人にとって役に立たないので、義務教育で教える意味は無いと思います。ただ、プログラミングを学ぶと身に付く、フローチャートとかサブルーチンとかみたいなそういう論理的な思考だけは、義務教育で教えるべきかと。そっちは多くの人にとって役立ちますし、その後本格的にプログラミングを学ぶためにも、役立つものです。
(だから、使う言語も、Javaとかみたいなプログラミング言語じゃなくて、GUIでフローチャート組み立てるような教育用のでもいい。)
あとは、コンピュータの基礎知識とか、簡単な歴史とか、ネットを安全に使うためのあれこれとか・・・そういうのは必要かと。でもプログラミング自体はいらね。
学校教育のプログラミングで学べることは論理的思考よりも、状態を保持して、それを変化させていくと言う考え方だと思う。そういう考えは、実社会において作業工程のマニュアル化や指示などで欠かせないこと。論理的思考は他の科目でも学べるけど、状態という概念は他の科目では学べないことだし。もちろん、実務の中でも学べることだけど、記録、伝達、指示などの意義や内容を理解してもらうには、状態という概念を持っていてもらうと、話が早い。
また、手続き型言語における関数の概念や、グローバル変数・ローカル変数・引数の使い分けを理解も重要だと思う。全てがグローバル変数と言う考えを実務で適用されたら、いつの間にか書類の差し替えが起こっていたり、公開すべきではないファイルが全面公開になっていたりしそうで怖い。
ただ、現状のプログラミングの学習でそう言うことは意識になさそうだし、プログラミングができる人もあまり意識していなさそう。
「そういうこと」って
手続き型言語における関数の概念や、グローバル変数・ローカル変数・引数の使い分け
のことじゃないですよね?だとすると、
状態を保持して、それを変化させていくと言う考え方
のこと? んー、そうかなあ。よく解らない。もう少し解説してもらえるかな?
主に「学校教育のプログラミングで学べること」としての「意識」のつもりで書いているので後者。前者は一般的なプログラミングで学べることに関してなので、やや蛇足。
ただ、どちらにしろ、「論理的思考」の範疇なんじゃないと言われればそうだろうけど、(高校までの)数学や物理でも「論理的思考」は養えるわけで、それらとの違いをはっきりさせるために、状態や抽象化、スコープといった概念を出してみた。
なお、#2488527のACのようなことを意識しては書いていない。もちろん、状態という概念があれば、そういう話は早いだろうけど。
主に「学校教育のプログラミングで学べること」としての「意識」のつもりで書いているので後者。
その後者というのは、
のことだよね。だとすると、それを
プログラミングができる人もあまり意識していなさそう。
と言うのが理解できないんだけど。
アルゴリズム以前の当たり前過ぎることで、理解はしていて当然だし「状態」を意識はしているけど、概念を意識しているかどうかは、また別の話ってこと。
それって、自分の周りの「プログラミングができる人」達だけなんじゃないか、って考えたことない?
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
普通のやつらの下を行け -- バッドノウハウ専門家
プログラミングで欠かせない論理的思考だけ教えるべき (スコア:1)
実際のプログラミング(構文とかそういうの)を教えるという話なら、そんな授業は多くの人にとって役に立たないので、義務教育で教える意味は無いと思います。
ただ、プログラミングを学ぶと身に付く、フローチャートとかサブルーチンとかみたいなそういう論理的な思考だけは、義務教育で教えるべきかと。
そっちは多くの人にとって役立ちますし、その後本格的にプログラミングを学ぶためにも、役立つものです。
(だから、使う言語も、Javaとかみたいなプログラミング言語じゃなくて、GUIでフローチャート組み立てるような教育用のでもいい。)
あとは、コンピュータの基礎知識とか、簡単な歴史とか、ネットを安全に使うためのあれこれとか・・・そういうのは必要かと。でもプログラミング自体はいらね。
Re: (スコア:0)
学校教育のプログラミングで学べることは論理的思考よりも、状態を保持して、それを変化させていくと言う考え方だと思う。そういう考えは、実社会において作業工程のマニュアル化や指示などで欠かせないこと。論理的思考は他の科目でも学べるけど、状態という概念は他の科目では学べないことだし。もちろん、実務の中でも学べることだけど、記録、伝達、指示などの意義や内容を理解してもらうには、状態という概念を持っていてもらうと、話が早い。
また、手続き型言語における関数の概念や、グローバル変数・ローカル変数・引数の使い分けを理解も重要だと思う。全てがグローバル変数と言う考えを実務で適用されたら、いつの間にか書類の差し替えが起こっていたり、公開すべきではないファイルが全面公開になっていたりしそうで怖い。
ただ、現状のプログラミングの学習でそう言うことは意識になさそうだし、プログラミングができる人もあまり意識していなさそう。
Re: (スコア:1)
ただ、現状のプログラミングの学習でそう言うことは意識になさそうだし、プログラミングができる人もあまり意識していなさそう。
「そういうこと」って
手続き型言語における関数の概念や、グローバル変数・ローカル変数・引数の使い分け
のことじゃないですよね?
だとすると、
状態を保持して、それを変化させていくと言う考え方
のこと? んー、そうかなあ。よく解らない。もう少し解説してもらえるかな?
Re: (スコア:0)
主に「学校教育のプログラミングで学べること」としての「意識」のつもりで書いているので後者。前者は一般的なプログラミングで学べることに関してなので、やや蛇足。
ただ、どちらにしろ、「論理的思考」の範疇なんじゃないと言われればそうだろうけど、(高校までの)数学や物理でも「論理的思考」は養えるわけで、それらとの違いをはっきりさせるために、状態や抽象化、スコープといった概念を出してみた。
なお、#2488527のACのようなことを意識しては書いていない。もちろん、状態という概念があれば、そういう話は早いだろうけど。
Re:プログラミングで欠かせない論理的思考だけ教えるべき (スコア:1)
主に「学校教育のプログラミングで学べること」としての「意識」のつもりで書いているので後者。
その後者というのは、
状態を保持して、それを変化させていくと言う考え方
のことだよね。
だとすると、それを
プログラミングができる人もあまり意識していなさそう。
と言うのが理解できないんだけど。
Re: (スコア:0)
アルゴリズム以前の当たり前過ぎることで、理解はしていて当然だし「状態」を意識はしているけど、概念を意識しているかどうかは、また別の話ってこと。
Re:プログラミングで欠かせない論理的思考だけ教えるべき (スコア:1)
それって、自分の周りの「プログラミングができる人」達だけなんじゃないか、って考えたことない?