子どもの「プログラミング学習」ってなんだろう?
2024/05/29
現役プログラマーとして様々な活動をされている鳥井雪氏による、プログラミング通信をご紹介します。こちらのコラムでは、「実際のプログラマーが毎日どんなことを考えてプログラミングしているか」や「実生活でプログラミング的思考がどのように役立つのか」などを、わかりやすく分解してご紹介いただいています。
★こちらの「こどもプログラミング通信」も合わせてご覧ください!
本記事の筆者:鳥井雪(とりい・ゆき)氏
小学校高学年むけプログラミング入門書『ユウと魔法のプログラミング・ノート』著者。
Railsプログラマーとして活躍し、女性にプログラミングの技術を解放する世界的ムーブメント「RailsGirls」の、日本での普及にも尽力する。その功績を認められ、2013年楽天テクノロジーアワード ルビー賞受賞。
RailsGilrsの創始者の一人である、リンダ・リウカス著のプログラミング教育絵本『ルビィのぼうけん』を翻訳、1カ月経たず3刷2万部のヒットとなり、プログラミング教育必修化にむけての一助となる。
翻訳に『ルビィのぼうけん こんにちはプログラミング』『ルビィのぼうけん コンピューターの国のルビィ』『プログラミングElixir (笹田耕一と共訳)』
プログラミング学習の考え方
近年、低年齢からのプログラミング学習がかなり広がってきました。
わたしもプログラマーとして、今年の東京書籍の五年生の国語の教科書『あたらしい国語』に、プログラミングについての文章を掲載させていただいています。
しかし、難しいのは親世代がプログラミングへの知識が薄いこと。仕事や専門教育でプログラミングに関わりがないと、子どもにどう教えていいのか、子どもが何を学んでいるのかがわかりづらいですよね。算数や国語とはそこが違います。
親も「プログラミングってなんだろう、子どもは何ができるようになるんだろう」がわかるといいですよね。
プログラミングは、ざっくり言うと、「コンピューターの力を使ってやりたいことを実現する方法」です。プログラミング学習はその方法を学ぶことです。
コンピューター、計算機には、得意なことがたくさんあります。人間の頭だけでは何十年もかかるような計算を数秒で終わらせることができます。数百万回、同じ仕事を間違わず繰り返すこともできます。コンピューターは、人間がやれることを、信じられない規模に拡張してくれるのです。
プログラミング言語を覚えるだけが学習内容ではない
しかし、コンピューターの力を力を借りるには、なかなかテクニックが要ります。人間が、人間のやりたいことを、コンピューターの分かる形に整えて、コンピューターに教えてあげる必要があります。
別の言い方をすると、コンピューターに分かる言葉で、コンピューターに仕事を命令するのです。 コンピューターに分かる言葉は、プログラミング言語と呼ばれます。そのプログラミング言語を使って、コンピューターに与える命令がプログラミングです。
プログラミング学習は、プログラミング言語を覚えるだけが学習内容ではありません。それは、算数で「+」や「かける」の意味を覚えたり、国語でかなと漢字をおぼえるだけで学習が終わるわけではないのと同じです。
「+」や「かける」やかなや漢字、そしてプログラミング言語は、いわば道具です。その道具をどのように使うのか、どのように考えて組み合わせていくのかが、本当の学習内容です。
たとえば「こんにちは」とコンピューターに3回言わせたいとします。
プログラムで、「こんにちは、と言う。こんにちは、と言う。こんにちは、と言う。」とコンピューターに命令することができます。別の命令の方法で「こんにちは、と3回言う。」と命令することもできます。どちらがよい命令でしょうか?
コンピューターは、繰り返しが得意です。同じ命令内容を何千回何万回でも間違えずに繰り返すことができます。ですから、よい命令は、「こんにちは、と3回言う。」の方です。もし「こんにちわ」を10000回言わせたくなったら、「3」のところを「10000」に変えればよいだけだからです。”こんにちは、と言う。”を10000回書き続けるのはいやですからね 。
プログラミングで「やりたいこと」を実現できる
そして、もしかしたら「こんにちは」を言わせるタイミングには、条件があるかもしれません。たとえば「お昼にだれかが玄関から入ってきたら」だとか。それを表現するやり方は、どのようなプログラミング言語の書き方を組み合わせたらいいのか....そんなことを自分で考えられるようになるのが、プログラミング学習の目指すところです。
つまり、プログラミングで子どもたちが学んでいるのは、「コンピューターで何ができるのか」「そのコンピューターの力を生かすにはどうすればいいのか」ということ、そして「自分のやりたいことを実現するために、どのように考えてコンピューターを使うのか」といったことなのです。
お子さまがプログラミングの話をしてくれることがあったら、ぜひ「今はこういう考え方を学んでいるんだな」「コンピューターはこういう使い方ができるんだな」といった観点できいてあげてください。きっと楽しいコミュニケーションになると思います。