アカウント名:
パスワード:
実際のプログラミング(構文とかそういうの)を教えるという話なら、そんな授業は多くの人にとって役に立たないので、義務教育で教える意味は無いと思います。ただ、プログラミングを学ぶと身に付く、フローチャートとかサブルーチンとかみたいなそういう論理的な思考だけは、義務教育で教えるべきかと。そっちは多くの人にとって役立ちますし、その後本格的にプログラミングを学ぶためにも、役立つものです。
(だから、使う言語も、Javaとかみたいなプログラミング言語じゃなくて、GUIでフローチャート組み立てるような教育用のでもいい。)
あとは、コンピュータの基礎知識とか、簡単な歴史とか、ネットを安全に使うためのあれこれとか・・・そういうのは必要かと。でもプログラミング自体はいらね。
学校教育のプログラミングで学べることは論理的思考よりも、状態を保持して、それを変化させていくと言う考え方だと思う。そういう考えは、実社会において作業工程のマニュアル化や指示などで欠かせないこと。論理的思考は他の科目でも学べるけど、状態という概念は他の科目では学べないことだし。もちろん、実務の中でも学べることだけど、記録、伝達、指示などの意義や内容を理解してもらうには、状態という概念を持っていてもらうと、話が早い。
また、手続き型言語における関数の概念や、グローバル変数・ローカル変数・引数の使い分けを理解も重要だと思う。全てがグローバル変数と言う考えを実務で適用されたら、いつの間にか書類の差し替えが起こっていたり、公開すべきではないファイルが全面公開になっていたりしそうで怖い。
ただ、現状のプログラミングの学習でそう言うことは意識になさそうだし、プログラミングができる人もあまり意識していなさそう。
「そういうこと」って
手続き型言語における関数の概念や、グローバル変数・ローカル変数・引数の使い分け
のことじゃないですよね?だとすると、
状態を保持して、それを変化させていくと言う考え方
のこと? んー、そうかなあ。よく解らない。もう少し解説してもらえるかな?
「アプリケーションやデータには内部状態があって、パソコンを使ってる時は UIを通してそいつを操作している」ってことを意識してもらえるようになると、コンピュータの挙動に関する誤解が減るんじゃないかと期待。
# 「内部状態と表現は別ロジック」も追加したい
現状の教育現場で行われている手法でプログラミング学習を実施したとして、コンピュータの動作を一般化してとらえられるようになるとは思ってないけど。
それと、
プログラミングができる人もあまり意識していなさそう。
これがつながらないんだけど。
つまりカプセル化のことでしょ?
んー、その辺りがよくわからんないんだよね。#2488619 [srad.jp]では
なお、#2488527 [srad.jp]のACのようなことを意識しては書いていない。
って言ってるしね。# 複数AC相手の話めんどうくさい。
そこの使い分けをせず全部グローバル変数で実装されているタコなプログラムを、仕事で何度も見てきたんじゃないでしょうか。
はあ、そんなもんですかねえ。
プログラミングで学べる概念が、一般的に応用できるものということを言いたかったので、
なお、#2488527 [slashdot.jp]のACのようなことを意識しては書いていない。
って書いただけ。議論の方向が違う。
なんつーのかな。そうだったら最初からそう端的に書いた方がいいんじゃない?
冗長で複雑より、単純で解りやすい方が優れてる、っていうのもプログラミングで学習できることの一つでしょう。
まあ、苦労してまで理解しなきゃいけない様なことは言ってなさそうなので、どうでもいいんだけどね。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
私はプログラマです。1040 formに私の職業としてそう書いています -- Ken Thompson
プログラミングで欠かせない論理的思考だけ教えるべき (スコア:1)
実際のプログラミング(構文とかそういうの)を教えるという話なら、そんな授業は多くの人にとって役に立たないので、義務教育で教える意味は無いと思います。
ただ、プログラミングを学ぶと身に付く、フローチャートとかサブルーチンとかみたいなそういう論理的な思考だけは、義務教育で教えるべきかと。
そっちは多くの人にとって役立ちますし、その後本格的にプログラミングを学ぶためにも、役立つものです。
(だから、使う言語も、Javaとかみたいなプログラミング言語じゃなくて、GUIでフローチャート組み立てるような教育用のでもいい。)
あとは、コンピュータの基礎知識とか、簡単な歴史とか、ネットを安全に使うためのあれこれとか・・・そういうのは必要かと。でもプログラミング自体はいらね。
Re: (スコア:0)
学校教育のプログラミングで学べることは論理的思考よりも、状態を保持して、それを変化させていくと言う考え方だと思う。そういう考えは、実社会において作業工程のマニュアル化や指示などで欠かせないこと。論理的思考は他の科目でも学べるけど、状態という概念は他の科目では学べないことだし。もちろん、実務の中でも学べることだけど、記録、伝達、指示などの意義や内容を理解してもらうには、状態という概念を持っていてもらうと、話が早い。
また、手続き型言語における関数の概念や、グローバル変数・ローカル変数・引数の使い分けを理解も重要だと思う。全てがグローバル変数と言う考えを実務で適用されたら、いつの間にか書類の差し替えが起こっていたり、公開すべきではないファイルが全面公開になっていたりしそうで怖い。
ただ、現状のプログラミングの学習でそう言うことは意識になさそうだし、プログラミングができる人もあまり意識していなさそう。
Re: (スコア:1)
ただ、現状のプログラミングの学習でそう言うことは意識になさそうだし、プログラミングができる人もあまり意識していなさそう。
「そういうこと」って
手続き型言語における関数の概念や、グローバル変数・ローカル変数・引数の使い分け
のことじゃないですよね?
だとすると、
状態を保持して、それを変化させていくと言う考え方
のこと? んー、そうかなあ。よく解らない。もう少し解説してもらえるかな?
Re: (スコア:0)
「アプリケーションやデータには内部状態があって、パソコンを使ってる時は UIを通してそいつを操作している」
ってことを意識してもらえるようになると、コンピュータの挙動に関する誤解が減るんじゃないかと期待。
# 「内部状態と表現は別ロジック」も追加したい
現状の教育現場で行われている手法でプログラミング学習を実施したとして、コンピュータの動作を一般化して
とらえられるようになるとは思ってないけど。
Re:プログラミングで欠かせない論理的思考だけ教えるべき (スコア:1)
「アプリケーションやデータには内部状態があって、パソコンを使ってる時は UIを通してそいつを操作している」
ってことを意識してもらえるようになると、コンピュータの挙動に関する誤解が減るんじゃないかと期待。
それと、
プログラミングができる人もあまり意識していなさそう。
これがつながらないんだけど。
Re:プログラミングで欠かせない論理的思考だけ教えるべき (スコア:2)
UIがコントロールをカプセル化、
あるいはオブジェクトが内部変数をカプセル化。
元コメは、
そこの使い分けをせず全部グローバル変数で実装されているタコなプログラムを、
仕事で何度も見てきたんじゃないでしょうか。
# レキシカル変数のないプログラミング言語はどっちかというと使いたくない
新人。プログラマレベルをポケモンで言うと、コラッタぐらい
Re:プログラミングで欠かせない論理的思考だけ教えるべき (スコア:1)
つまりカプセル化のことでしょ?
んー、その辺りがよくわからんないんだよね。#2488619 [srad.jp]では
って言ってるしね。
# 複数AC相手の話めんどうくさい。
そこの使い分けをせず全部グローバル変数で実装されているタコなプログラムを、
仕事で何度も見てきたんじゃないでしょうか。
はあ、そんなもんですかねえ。
Re: (スコア:0)
プログラミングで学べる概念が、一般的に応用できるものということを言いたかったので、
って書いただけ。議論の方向が違う。
Re:プログラミングで欠かせない論理的思考だけ教えるべき (スコア:1)
プログラミングで学べる概念が、一般的に応用できるものということを言いたかったので、
なんつーのかな。そうだったら最初からそう端的に書いた方がいいんじゃない?
冗長で複雑より、単純で解りやすい方が優れてる、っていうのもプログラミングで学習できることの一つでしょう。
まあ、苦労してまで理解しなきゃいけない様なことは言ってなさそうなので、どうでもいいんだけどね。