資料を見ても、そのうち書いた本人もわからなくなりそうなので整理してみる。
「プログラミングができる」とは、「プログラミング言語の文法」がわかり、適切な「データ構造とアルゴリズム」を選択しコーディング可能なこと。
FizzBuzz問題は、データ構造は考慮する必要がない初級の問題です。この問題が難なく解ける位プログラミングができる人は、ひとまずおいて、FizzBuzzまでの関門は何かを考えてみた。
FizzBuzzの平凡な解答は、ループ処理と条件分岐から成る。人の頭で答えを出す時にはあまり悩むことはなくても、プログラムのコードで表現するには優先順位を考慮する必要があります。
このFizzBuzz問題が解けない人は、ループ処理や条件分岐の構文を理解していないか応用することができていないのでしょう。
「上手な教え方の教科書」によると、プログラミングのような認知機能の学習がうまくいかない理由として5つの問題が挙げられています。
「熟達化の問題」はいまひとつ説得力がないので、自分のレベルに合った問題を解くのが良いよと誘導するのに都合がいい理論を持ってきてみたりして(第二言語習得の理論のインプット仮説)。
とにかく、他の認知機能をそつなく学習できるような人はプログラミングにも同様の手法で学習が行えるはず。
プログラミングには論理力が特に重要とされていて、無ければ苦労するがプログラミングを学習することで鍛えることもできるのではないか。
コンピュータの操作方法やプログラミングの構文でつまずいてしまう人でも、コンピュータサイエンスを学ぶことで得られることはあるんじゃないかな。
TIS-100を紹介したかっただけなのに中級に続くかな。
セコメントをする