私は子供たち(9歳から13歳)にプログラミングについて教えるためのチュートリアルを書いています。私はコンピューター自体から始めました。コンピューターサイエンスとはあまり関係がありません。それは、計算問題の解決に関連するプロセスに関するものです。
その出発点で、私は機械が特定の計算問題で私たちを助けることができるという理解に向けて彼らを導きます。人々は抽象的な思考と想像力に長けていますが、コンピューターは明確に指定されたルーチンに従うのに優れています。彼らは驚くべきスピードで何度も何度もそれを行うことができます!
バイナリ形式での数値の表現については、私のチュートリアルですでに説明しています。しかし、負の数をどのように表現しますか?これを行う方法は、どの表記法でも非常に多くありますが、コンピューター用に選択されたシステムは、非常に特殊な理由からです。符号付き整数値の追加に関連する機械の量を減らすためです。負の数を処理するためだけに個別のチップを作成して構築する必要はありません。自然数の演算に使用していたのと同じチップを使用したいと思います。
誰かが路上であなたに尋ねた場合(これは完全に非現実的です)、「コンピューターはどのように負の数を表し、なぜそれらはこのように表すのですか?」
私の具体的な質問:
コンピューターはどのように負の数を表しますか?
なぜコンピューターはこのように負の数を表すのですか?
この多くの経験豊富な開発者は、これについて少し考えなければならないと思います。答えを思い付くことができない人もいるかもしれません。私は派手になろうとはしていません。これは実際の経験によるものです。プロの開発者にこの質問をしましたが、彼らはそれに答えることができません。彼らは空白の凝視を描きます。それらにJBossとJavaBeansを与えると、彼らは自信を持ってあなたをスチームロールします。とても面白い!私もこの質問に苦労しています。毎回答えを思い出さなければなりません。解決策を見つけるには、紙またはホワイトボードが必要です。私が望んでいるのは、生徒が使用している機械をよりよく理解できるように指導することです。