探究型プログラミング学習(探プロ)

プログラミングの考え方を学んで、未来を創る力を手に入れる

プログラミングの考え方を学んで未来を創る力を手に入れる

『ルビィのぼうけん』勝手に超訳 Vol.02

続いて2章「なぞのヒント」です。

 

この章は、書いてある内容そのものが結構謎だなぁ、という印象を受けました。

何を学ばせようとしているのか、ちょっとよく分からなかったので、そもそもどうして、文字列や数、真偽、という概念を知っておく必要があるのか?

という観点で書いてみます。

 

コンピュータが理解できる最小単位の命令は、1 or 0 です。

これは本書にもあるように1=真 0=偽、という意味でも使いますし

他にも

1=ON 0=OFFとか、何らかたった2つの選択肢であるものに使います。

 

この概念は私たちも普段から使っているので違和感ないと思うのですが、使い方を間違えると困ったことになります。

例えば、完全なる2択ではないときに使う場合です。

 

ひと昔前のシステムでは、たとえば性別を1=男 0=女、としていましたが

これは、現代ではNGですよね。

 

では、もう1つの選択肢を用意する必要が出てきたらどうしましょうか。

ここで使うのが、本書でいう「文字列」です。

 

「性別="男"」のように、1ではなく文字列として扱うことで、性別にはどんな情報でも、いくつでも扱えるようになります。

 

困った使われ方のもう一つの例は、1と0の意味を一般とは逆に使うケースです。

 

例えば

もし鍵がかかっていたら(=1)中には誰もいないので電気を消す

 と判定すべきところを

もし鍵がかかっていたら(=0) 中には誰もいないので電気を消す

 としたら何がおきるでしょうか?

 

そうです、期待とは逆のことがおきてしまいます。

 

通常は、もし鍵がかかっていなければ(=0)、と判定するので、下の例ですと、中に人がいても電気を消してしまうことになります。

この辺は感覚的なところもあるのですが、一般的には

1=ON 0=OFF

なので、天邪鬼にはならないようにしておきたいところです。

 

これは冗談のようでいて、実際のシステム開発の現場でもときどき起きるのです。

プログラミングする人の癖で、1と0を一般的とは逆に使ったり、単なるうっかりミスだったり・・・

1=真、0=偽という2択でものごとを判断すること

そしてそれは本当に2択なのだろうか?

2択でないなら、どういう選択肢があるのか?

といったことは、日常的に意識しておくと良いことがあります。

 

先ほどの性別の例もそうですが、思い込みで2択だと思っていたけれど

よくよく考えると選択肢が他にもあった、というケースは意外とあります。

仕事でも何でも、あとあと面倒な修正や変更が発生することを防ぐためにも

選択肢は本当に2つ?

と考える癖をつけておくと良いですね。

 

ちなみに、本の「れんしゅう6:真偽」のところで書かれているのは、論理演算(積AND、和OR)の話です。

アルゴリズムを考える上で必須ではありますが、「かつ」とか「または」という考え方は、普段から子どもたちも日常的に使っているはずなので、プログラミングの思考特有というものではないですし

特に補足は不要ですね。

 

ところで、この章に出てくる「おどうぐ箱」のエリアに変数が登場しますが

プログラミングでは必須の概念だけれども、日常的にあまり使わないんですよね。

変数はコンピュータの概念(一時的に保管しておくエリア)と直結しているので、ちゃんと理解しておけば、いざコードを書く ときに便利だけれども、そうでなければ、あまり気にしなくて良いと思います。

算数でxやyが出てくるのは中学生以上ですしね。

(早く学習しておいて悪いことはないですが)

 

変数の考え方はいまのところ、日常生活で活用できそうなシーンが思い浮かばないので・・・

見つかったら補足します。

 

 

@tanpro-lab