プログラミングの学習にあたって、プログラミングの特徴を理解することが、とても大切です。
プログラミングは、人間が頭や手で行っていることを、PCで自動化させ、作業時間を短縮します。
PCは人間と違って、疲れることはなく、スピードも早く、間違いもありません。
その一方で、
(近年、人工知能という技術で、人間に近づきつつはありますが。)
すなわち、あらゆるパターンを、事前に全て想定できるかどうかが重要です。
例えば、試験の採点を例に考えてみましょう。
マークシート方式のように、回答が1~4等に絞られる場合、採点をPCでプログラミング化し、実施する方が効率的です。
仮に、マークシート方式で1人100問の試験を受験した場合、人間が採点すれば数十分要するにところを、プログラミングされたPCで採点することで、採点時間が数秒に短縮されます。
これは、試験の回答が、1~4というパターンで想定可能であるため、プログラミングによる、採点が可能となります。
しかし、マークシート方式ではなく、自由入力の場合はどうでしょうか。
「日本の首都はどこですか?」
という問いに対して、「1.東京」という選択肢があれば、1が回答となりますが、自由入力の場合は、
「東京」「とうきょう」「トウショウ」「TOKYO」「tokyo」等の複数のパターンが考えられます。
これが、複数の言葉で組み合わされるケースを想定すると、そのパターン分を想定する必要があります。
例えば、「東京の浅草」という、回答の場合は、
「東京のあさくさ」
「とうきょうの浅草」
「トウキョウの浅草」
「東京のASAKUSA」
のように、相当数のパターンを想定する必要があります。
これが、文章になれば、単語の表記に加えて、文章の順番や、接続詞も含めて回答パターンを想定しなければなりません。
この場合は、PCのプログラミングよりも、人間が採点する方が、回答の精度は向上する可能性が高いです。
すなわち、自由回答のように、事前に回答パターンの想定が困難な場合は、人間が行う方が適切といえます。
プログラミングを学習する上で、あらゆる事象を「どのようにパターン化させることができるか」を考えることが重要です。