プログラミングで自由研究!
こんにちは。スッキリC著者の中山です。夏休み&お盆、いかがお過ごしですか。
夏休みといえば、なんといっても「自由研究」。 最近は「プログラミングを自由研究の題材にする」っていうご家庭も増えているのではないでしょうか。
「よーし、今年はお父さんがプログラミングを教えてあげよう!」なんていって、喜んでスクラッチ入門書を小学生の子供に手渡しているご家庭もあるでしょう。
子供でプログラミングをしていたら変な目で見られる時代を生きた中山的には、感慨深い限りです。
自由研究の罠!
・・・ただ・・・ですね・・・。自由研究には1つだけ気をつけなければならないことがあるんです。
たとえば、スクラッチの普及により、次のようなことも最近は増えていると想像されます。
子「じゃ、いってきまーす!」
→ クラスで5人ぐらい「スクラッチの自由研究」を持ってくる事件勃発(しかも参考にした本が同じで、作った題材までかぶる)。
いや...まぁ仕方ないんですよねぇ。そんな時間もネタもあるわけでもないですし...。
でもですね。自由研究って、なんか「自由に題材を考えて取り組む」みたいな位置づけになってるじゃないですか。
だから、カブっちゃうって、「合コンに着ていった服が他の参加者(同姓)と被る」ぐらいショックだったりするんです。
「自分の頭で題材を考えなかった」とか「自分の頭で考えてたけど、ベタなことしか思いつかない」みたいにいわれている気がして、自由研究が嫌いになっちゃうと残念ですよね。
やっぱり「小さく・簡単でもいいから、オリジナルな試み」を発表し、周囲に認めて貰える成功体験っていうのを重ねていけたら、自由研究がどんどん好きになると思います。
たぶんカブらない自由研究
そして「かぶらない!」「みんながビックリする!」「むしろ多少ひかれる!」というプログラミング自由研究を探している、小学校高学年〜中学生のご家庭に、スッキリシリーズからのマニアックなご提案です!
「子供向け」のスクラッチや、「やさしい」Pythonなどの方面からプログラミングに取り組まれる方が多い2019年だからこそ、あえて「コンピュータの仕組みを学べる本格的プログラミング言語C」のさわりの部分だけを研究題材にするのです。幸いこのたび、C言語入門書「スッキリわかるC言語入門」について、出版社の公式サイトで1〜2章までを無料で試し読みできるようになったとの連絡を受けましたので、ちょっと冒頭の部分を試し読んでみて、楽しく研究できそうかご検討いただけたら幸いです。
研究方針1: アプリを作ってみる
まず思いつくのは、「C言語で何かを作ってみて発表する」、というアプローチです。たとえばスッキリCの1章や2章に登場する短いプログラムをマネして作ってみて、少し改造してみるだけでも、十分に自由研究になるでしょう。
このとき注意が必要なのは、C言語のアプリは「文字しか出ないので、アプリ自体を発表しても地味」という点ですね。どうしてもスクラッチなどに比べれば作品の見栄えはしません。ですから、アプリ自体に加えて、「コンピュータ(CPU)を直接制御するマシン語を自らの手で生み出した」ということをしっかりとアピールしたいところです(スクラッチのようにいろいろと「お膳立てされた舞台の上」ではないっていうところがポイント!)。
なお、スッキリCに掲載されている「パズルRPG puzmon」を作ってみるというのも楽しいかもしれません。ただ、こちらはかなり手強い課題なので、多少プログラミングの経験がある(例:去年はスクラッチで自由研究をやった・学校でプログラミングを習っている)ような方向けです。「初級」としてご紹介している方法をえらび、かつ、十分に時間を確保して取り組んでみてくださいね。
研究方針2: 「しくみ」を深掘りする
次に考えられるのは、プログラミングを通して「コンピュータのしくみ」を研究するというアプローチです。プログラムをコンパイルして実行する過程だけであっても、どうなっているかをいろいろご両親と一緒になって調べてみることもできるでしょう。
たとえば、ソースファイル・オブジェクトファイル・実行可能ファイルの3つについて、テキストエディタで開いてみて中身を覗いていろいろ想像するのも楽しいですね。もちろん、バイナリエディタを使って開けば、より深く研究をすることが可能です。
ソースファイルのどの部分をどう変えると、実行可能ファイルのどの部分が変わるかなんていうものをいろいろ試すと、ワクワクしますね。
実行可能ファイルをエディタで覗き込むと「リテラル部分」が想像つくのですが、書き換えてみて動くか試してみるのもいいかと思います。
研究方針3: プログラム言語の歴史をしらべる
そしてエポックメイキングなプログラミング言語Cならではの方針が、「プログラミングの歴史を調べる」というアプローチです。C言語の祖先やC言語の子孫との関係をいろいろと調べ、特徴を比べてみるのも楽しいでしょう。
中学生などでより深く踏み込みたい場合、「時代に沿ってプログラミング言語が変化してきた背景に、どのような社会ニーズがあったのか」などを調べてみるのもよいでしょう。
楽しい自由研究を!
ありきたりではなく、ちょっとマニアックで、研究の幅が広い... ぜひそんなC言語研究をきっかけにコンピュータやITにより興味を持ってくれる子供さんが増えたら嬉しい限りです。