C言語を教えるのは意外と大変(高校クラブ奮闘日誌4)

2010/11/24 18:45:00

 こんにちは、サトにゃんです。来年の4月から大阪府内の情報系専門学校に通うことになりました。慣れない電車通学になると思いますが、気持ちを切り替えて頑張りたいです。高校を卒業するまでにこの連載を終えなければ……。

 ではでは、前回の続きを書きたいと思います。

■□■□■

■ 顧問の先生をどうするか

 主顧問の先生の転勤を聞いて驚いた自分は、すぐ部員全員に連絡。部員の皆は「そうなんだ……」という感じ。もっと心配してよ……。

 結局、顧問を引き受けてくれそうな先生を探すことに。いろいろな先生に事情を説明し、最終的に1人の先生を紹介されました。その先生は、校内でオーディオ機器やパソコンに詳しく、本当に優しい先生でした。自分のお願いに先生は「あぁ、いいよ」みたいな感じで、顧問を引き受けてくれることに。顧問の先生をどうするか、という問題は意外と簡単に解決しました。本当に感謝です。

 いま考えると、引き受けてくれる顧問の先生がたとえ見つからなかったとしても、廃部にはならなかったと思っています。自分が通っている高校では、部と同好会の違いがあまりなく、同じクラブとして認められています。部員がゼロにならない限りは、存在し続けることができます。ただ、監督する立場の顧問の先生がいて初めてクラブとして成り立つので引き受けてくれる顧問の先生を自分たちで探そう! って思いました。このように、同好会を立ち上げて部長になると(自分だけかもしれませんが)本当に大変です。奮闘の毎日ですから(笑)。

■ C言語を教えるという難しさ

 C言語講座がスタートしけたれど、どうやって教えればいいの……? そんなことに悩んでいた自分がいました。HSPのように、プログラミングツールだと簡単なのですが、本当のプログラミング言語であるC言語を教えることにはまったく慣れていませんでした。

 自分は学校の先生ではないので、教えるときに配布するプリントとかは全然用意していません。書店で売られているプログラミング書籍の解説を参考にして進めるほうが分かりやすいかなぁーって。その書籍選びがポイントで、いかに分かりやすく教えられるかが左右されてきます。書店で立ち読みしたり、Amazonのカスタマーレビューを確認したり、いろいろ自分なりに調べてみました。最終的には候補書籍を全部購入して、読み比べてみました。そのうちの書籍4冊を紹介したいと思います。

―――――

『猫でもわかるC言語プログラミング 第2版』 粂井康孝(著)

 サンプルコードと練習問題解答を収録したCD-ROMを付録。書籍の帯には「知識ゼロからの出発」と書かれています。通称「猫C」。有名な書籍の1つですよね。他の高校のパソコン系クラブで結構使われているみたいです。 分かりやすい(猫でも分かるんだから人間でも分かる)という一方で、分かりにくい(猫にしか分からない)という意見もあります。ある程度パソコンに詳しくないと理解できないかも……。

『Cの絵本』 アンク(著)

 解説本や独学本というのではなく、絵本としてのプログラミング参考書。イラストによる解説が多め。初心者でも気軽に読めるのがいいですね。絵本なので堅苦しい感じがまったくないです。ただ、説明されている範囲は少ないです。本当の入門書といったところでしょうか。

『独習C 第4版』 ハーバート・シルト(著)

 Cの絵本とは真逆の分厚くて、文字とソースばかりの参考書。CD-ROM付き。全体的に読んでみましたが、初心者には理解しづらい説明です。これも、(前述の「猫C」よりも)ある程度パソコンに詳しくないと理解できません。C言語プログラミングに慣れてから読んでみるといいかもしれないです。とりあえず書かれていることが多いので、結構参考になります。

『明解C言語 入門編』 柴田望洋(著)

 シンプルな感じの参考書。帯には「C言語入門書の最高峰」と書かれています。3色刷りですが、分かりやすく解説されています。文字とソースばかりなのに、なぜか初心者でも理解できそうな内容。「明解」というだけに分かりやすかったですね。自分が選ぶC言語入門書の中で確かに最高峰でした。シリーズとしてほかにも中級編や実践編なども。演習問題の解答は、検索すれば出てきます。

―――――

 と、書評みたいになってしまいましたが、簡単に紹介させてもらいました。最終的に、クラブで教えるのに使う書籍は『明解C言語 入門編』と『Cの絵本』に決めました。自分の場合は『猫でもわかるC言語プログラミング』よりも『明解C言語 入門編』のほうがダントツに分かりやすかったです。技術チームのみんなも同じことを言っていました。『Cの絵本』を選んだのは、堅苦しく教えたくなかったからです。イラストを使っての解説も必要ですね(上記4冊の紹介内容は個人的な意見です。少数派かもしれません……)

 でも、本当にC言語を教えることは難しかったですね。自分自身、C言語を完璧に知らなかったので苦労しました(特にポインタを理解してなかったのは痛いです)。技術メンバーの皆は「おまじない(※1)って絶対に覚えなきゃダメ?」とか「関数って何?」とかばかり……。HSPのときよりも熱心に教えました。HSPが手軽すぎたんですね。いい経験になりました。ゆっくり順調にC言語講座が進み、ポインタの手前にさしかかったとき……。

(※1) 「明解C言語 入門編」4ページに書かれている。C言語プログラミングにおいて、最低限書かなければいけない部分のこと。 #include <stdio.h> int main(void){ return(0); }

Clangprogrammingbook
個人的に今までに購入したC言語関連書籍
C言語のポインタはまだ分からないままです……。

■ ゲーム製作としてのシナリオ作成作業

 クラブの技術チームメンバーは、これまでHSP講座やC言語講座でプログラミングについて勉強してきました。今までやってきたプログラミング講座で学んできた知識を生かし、ゲームスクリプトのスクリプティングをすること。それが、本来の目的「ゲーム製作」です。

 デザインチームはというと、(アドベンチャーゲームなので)ゲームで使うシナリオを考えてもらっていました。技術チームのC言語講座でポインタの手前にさしかかったころに修正前のゲームシナリオがついに完成し、クラブメンバー全員で本当のゲーム製作がスタートしました。

 自分も後からゲームシナリオを読ませてもらったんですが、文章の量がすごかったです。デザインチームの女子2人が数カ月という短い期間で、約3万字、A4サイズ58ページにわたるゲームシナリオを書き上げてくれました。本当に自分では考えられない量です(笑)。内容がどうとかは関係なく、書いてくれた2人には「本当にお疲れさま」といまでも言いたいですね。

 そしてその後、クラブメンバー全員でゲームシナリオの1次~3次修正が行われ、やっとゲームに使うシナリオが完成したのでした(シナリオ作成入門書と辞書を片手に作業していた記憶があります。Skypeの会議通話で深夜に修正作業をすることもしばしば……。それだけ時間はありませんでした)。

 果たしてゲームは完成するのか、期限までに作ることができるのか…!?

■ 自分は恵まれている環境だった

 いま思うと、クラブ設立時から今日に至るまで、自分は本当に恵まれている環境だったんだなぁと身に染みて感じます。いろんな人にクラブ設立の話をするんですが、それだけでも本当に難しいようですね。先生の人数や施設・設備には限りがあるので、最近はクラブを設立すること自体が珍しく、認められないケースももちろんあるそうです。そんな中、クラブを立ち上げられたことだけでも奇跡に近かったですね

 また、このときの部員数は10人で、現在でも10人の部員が所属しています。ほとんどの高校で生徒入部率が下がっている中、文化部でしかもパソコン系クラブに10人も部員がいるということも珍しいみたいです。一時期に女子も入部してくれていたときもあったので、いろんな意味で恵まれている環境だったんだなぁーって。クラブを作っていくのは、自分じゃなくて部員1人ひとりですからね。クラブメンバーには本当に感謝しないといけないです。

■ 後輩を交えての新たなスタート

 2009年4月、2年のはじめ、後輩の新1年生2人がクラブメンバーとして加わり、新たなスタートを切りました。そのうちの1人の後輩が、動画技術やハードウェアに本当に詳しくて、自分が後輩に教えられることも……。日々勉強の毎日です。

 後輩が入部してくれただけでも嬉しかったですね。自分が立ち上げたクラブを後輩に引き継げるんですから。もう1人の後輩は、放送部にも所属していて、いかにもパソコン系クラブっていう感じです(笑)。これからの後輩の活躍に期待です!

(次回に続く)

プログラミング講座の日々(高校クラブ奮闘日誌3)

2010/10/20 17:00:00

 連載「高校クラブ奮闘日誌」、前回はこちらから。

■ HSPでプログラミングの楽しさを教える

 プログラミングのこと全然知らない友人に「プログラミング面白いじゃんかー!」と言ったら、「なんか難しそう……」と確実に返してくれます(笑)。おそらく普通科高校の生徒のほとんどがそう思ってるんじゃないでしょうか。そんな思い込みが普通に定着してるので、部員のみんなにどうやってプログラミングの楽しさを教えたらいいのかと、ずっと悩んでいました。

 そんな中、クラブ内でHSP講座がスタートしました。リファレンスやヘルプを漁りながら、基本文法と関数を勉強しつつ、それをみんなに教える。自分自身の理解が少しでも間違ってると、部員に教える内容にも影響してくる。責任とプレッシャーがやばかったです……。幸いにも、自分はプログラミング言語共通の基本概念は全部知っていたので、基本文法は難なく理解できました。けど、いままでWebアプリケーションしか作ったことがなかったので、Windowsアプリケーション開発のことはまったく分からず……。

 最終的に何とか理解でき、そこそこWindowsアプリケーションが作れるまでになりました。講座のおかげで、部員の皆もプログラミングの楽しさを少し分かってくれたようでした。「何のプログラミング言語から挑戦していいのか分からない」という人には、HSPをオススメしたいです(正確には、HSPはプログラミング言語というより、プログラミングツールです)。クラブで個人的にWakeOnLANパソコン遠隔起動アプリやFeliCa出席管理アプリなどを作ったりもしました。本当にHSPでいろんなことができるんですね。いやー、本当にいい経験になりました。

■ よし、次はC言語だ!

 技術チームの皆がHSPに慣れ始めてきたころに、ようやく自分がある提案しました。

 サト「C言語に挑戦してみる?」

 部員「えーっと……C言語ってアレでしょ? 確かプログラミングの……」

 さすがC言語。普通科高校生でも、C言語のことを知っている人が多いです。自分の周りでは「名前だけしか聞いたことないけど……」って答える人が多かったですが、意外な回答でしたね。そんなもんなのかなー、みたいな感じです。このときになってやっと、技術チームの部員にC言語を勉強する計画があることを伝えました。そんなこんなで、C言語講座もスタートしました(このときの自分は、多少C言語が扱えるレベルでした。書籍でひそかに勉強してたんです。ポインタの手前っていうと分かりやすいでしようか……?)。

 全然、先が見えないクラブの方向性。どうなることやら……。

■ 初心を忘れずに

 いままでいろいろやってきたけれど、自分よりすごい人はいくらだっているし、今でも自分は初心者だと自覚してます。当たり前のことですが、「初心を忘れずに」が大切ですね。上には上がいるから自分も頑張れるんだな、と思ってます。そう思えば、後は勉強して上を目指すのみですから。

■ 主顧問の先生の転勤

 「いろんなことがあったけど、いよいよ高校2年生か……」

 2年のはじめ。始業式の数日前にこんなことを思いながらクラブでパソコンをカタカタ。いつものようにクラブが終わり、部室のカギを返すため職員室へ。ちゃんとカギを返し、帰ろうとしたその時、その場にいた先生が予想もしなかったことを言いました。

 先生「あ、そういえば主顧問の先生、転勤されるよ?」

 サト「 (゚ロ゚;) 」

 もう顔文字で表すぐらいの驚きでした(笑)。 そして、早急にクラブの新しい顧問の先生を見つけないといけない。これもどうなることやら……。

(次回に続く)

ゲーム製作いよいよスタート!(高校クラブ奮闘日誌2)

2010/08/23 19:30:00

 お久しぶりです、サトにゃんです。

 今年の夏は異常なくらい暑くて自分も夏バテ気味です……。みなさん、体調に十分に気を付けてくださいね。水分補給もしっかりと!!

 ではでは、中途半端に終わっていた前回の続きを書きたいと思います。

■ 誰も知らないゲーム製作

 部長としてGOサインを出したのはいいんですが、ゲーム製作についてはみんな初めてで、誰も知りませんでした。未知の世界に踏み込んでしまったワケです。

 クラブも設立したばかりで自分も(おそらく)みんなもワクワクしていたし、そのときの部員はいろんな意味でゲームに興味を持っていました。キャラクターや絵を描くのが好きな人、ゲーム音楽が好きで作曲したいと思っている人、将来プログラマを目指している人、などなど……。みんなのやる気はすごかったと思います。「やれるだけやってやろう。失敗したら、それはそれでいい経験になるだろう」と。途中でやめることだけは避けたかったです。

■ 何ともいえないプロジェクトメンバー

 ただ、高校のクラブでゲームを作るというレベルなので、プロジェクトメンバー(=部員全員)が何ともいえない感じでした。普通科高校なので、もしかしたら恵まれてるほうかもしれません。

 〔リーダー〕
 担当は自分。PHP/SQLが多少扱えるレベル。開発経験なし。
 〔技術チーム〕
 4人で構成。ほとんどプログラミング経験・開発経験なし。覚えようとする気はある。
 〔デザインチーム〕
 5人で構成。全員美術分野に詳しくて、絵を描くのが好きな人ばかり……。

 全員で10人くらいだったかな……。デザインチームは完ぺきだけど、技術チームが微妙な感じでした。

■ 情報技術やプログラミングのことを教えるのは誰?

 先ほど書いたように技術チームは全員初心者でした。ゲーム製作となると、いずれはプログラミング、せめてスクリプティングは覚悟しておかないといけません。じゃあ、それを教えるのは誰か。

 「もしかして自分?」

 まぁ、教える覚悟はできていました。いろんな人に情報技術の素晴らしさ・すごさを知ってほしい! という想いでクラブを作ったという理由もあったので、ちょっぴり楽しみでした。部長でもありリーダーでもある自分の腕の見せ所ですね(笑)。自分が勉強しながらそれをメンバーに教えていく、というスタンスでいくことにしました。

■ ゲーム製作のはずがプログラミング講座に……

 ゲーム製作が始まる前から「C言語をクラブで学ぼう!」 という計画をしていたので、じゃあもうこの際、プログラミング言語の基本であるC言語を学ぼうじゃないか! ということになったワケです。ただ、初心者にはハードルが高すぎると思ったので、プログラミングの楽しさを知ってもらうのとモチベーションを上げるためにHSP講座を開くことにしました(ちなみにこの時点で自分はC言語とHSPのどちらの言語もまったく知りませんでした)。

 工業高校とかだったら情報に詳しい先生がいたかもしれないのに。この先どうなることやら……。

(次回に続く)

■□■□■

 んー、いま思い出すといろんなことがありましたね。コラムを書いてるとそのときのことを思い出します。少しずつ思い出しながら書いてるので、投稿までに間がかかるかもしれませんが、かならず話は完結させるので、楽しみにしていただけるとうれしいです。

 余談ですが、自分が作ったこのクラブはすでに部に昇格して生徒会から予算をいただいています。次期部長にも引き継いだので、あとは卒業するまで見守るだけです。卒業してからもこのクラブがなくならないことを願うばかりですね。部昇格の話はまた今度したいと思います。

 長々とありがとうございました。まだまだ続く予定です。ではでは。

自分の手で何かを作り上げる(高校クラブ奮闘日誌1)

2010/05/21 18:00:00

 お久しぶりです、サトにゃんです。

 前回書いた記事からずいぶんと経ってしまいました。コラムニストとして何かコラムを書かなければ、と日々思ってるんですが、ちゃんとした文章(記事)となると、なかなか書きづらくて……。(笑) 書きたいことはたくさんあるんですが……。

 さて、前々回に

クラブ内で勉強会とかいろいろなことをおこなっているんですが、それについては次回触れたいと思います。

と書きました。今回はこれについて書きたいと思います。

■ パソコンクラブを作ろうとしたきっかけ

 まずはそのクラブのことから。

 中学生のころは、3年間ずっと卓球部に入っていました。本当は、パソコン(情報)系クラブがあれば入りたかったんですが、そういうクラブがなかったんです。「高校に入学したらすぐにパソコンクラブに入ってやる!」ってずっと思っていました。

 高校入試で無事合格し、高校に入学したものは良いものの、中学校と同様にパソコン系クラブは存在しませんでした。このことで、とてもショックを受けた記憶がありますね。でも、一度しか経験できない学校生活を無駄にしたくないって思ったんです。「そうだ、クラブを作ればいいんだ!」って。

 クラブを作ると思い立ったのはいいものの、現実はそんなに甘くなかったです。まず、発起人(設立時部員)10人という壁がありました。クラスメイトですら知らない人ばっかりだったので。手あたり次第で興味を持っていそうな人に声をかけたり、クラスメイトに紹介してもらったり……。

 でも、「お前何のためにクラブ作るんだ? すでにあるクラブのどこかに入ればいいじゃねーか」とかそんなことを散々言われて断られました。そんなことを言われても、諦めたくなかったんです。クラブを“作る”ために発起人を探す毎日でしたね……。

 そして約1カ月後、無事に発起人を10人集めることができ、顧問の先生2人にもお願いして何とかクラブ設立申請を行うことができました。最終的には、その後の職員会議で承認され、ひとまず「パソコン同好会」という名前でクラブはスタートしました。

■ 初めからクラブを作り上げる

 高校に入学してから2カ月しか経っていないのに部長になった自分は、クラブ活動環境の整備に追われていました。クラブを作るということは、備品も予算も何もないということを意味していたんですね。活動したくても活動できない。こりゃヤバいって思いました(苦笑)。 幸いにも、校内のLAN教室を使ってもいいということになったので、何とかなったんですが……。

 「よし、いよいよ本当の活動開始だっ! あれ……? でもみんな活動に来てくれない……」こんな状態が続き、1人だけで活動してることもしばしばありました。ネットサーフィンしてるだけの活動です。こんなんでクラブ活動している意味があるのかなー、って。

■ ゲームを作ろうぜ!

 「ゲームを作ろうぜ!」

 誰かがこんなことを言いました。ゲームといっても、アドベンチャー(ノベル)ゲームです。「他の高校のパソコン系クラブもゲーム作ってるみたいだし、まぁいっか」みたいな感覚で部長としてGoサインを出し、ゲーム製作プロジェクトが開始したのでした。

 これが後々苦労することになるとは予想してなかったです……。

(次回に続く)

■□■□■

 全部書くと長くなりそうなので、数回に分けることにします。読みにくい文章になるかもしれませんが、自分なりに書いていきたいと思うので、見ていただけると嬉しいかぎりです。

 でも、コラム書くことって本当に難しいというか、奥が深いです。学校では教科書や本で読むことしかしないので、書くことに関してはまだまだ初心者レベルですね。いつか自分なりの最高のコラムを書けるように頑張りたいと思います!(笑)

「あけおめメール」で気がついたこと

2010/01/06 17:00:00

 こんにちは、サトにゃんです。

 いよいよ2010年に突入ですね。今年もエンジニアライフのコラムニストの1人として頑張っていきたいと思いますので、よろしくお願いします。

■ 定番になっている「あけおめメール」

 今年になった瞬間、「あけおめメール」のせいなのか、今年も携帯電話のメールの送受信が不安定になりましたね。 携帯電話のメールの利用者数が増えてからは、毎年起こることなんですけど……。 今では定番になってきています。

 なので、社団法人 電気通信事業者協会が「年末年始のケータイのご利用についてのお願い」というページで携帯電話の利用者にお願いしているワケです(余談ですが、「ウシから最後の、トラから最初のお願いです。」というフレーズ、なかなか良いですよね)。

■ 今年は去年よりもヒドかったような気が……

 さすがに毎年のことなので、ある程度は予想していましたが、今年は去年よりもヒドかったような気がします。自分もauの携帯電話から、1日の1時くらいにメールを数件送ったんですけど、すべてのdocomoのメールアドレスから「554 Transaction failed (処理失敗)」のエラーメールが返ってきました。去年はこんなことなかったのに……。

 NTTドコモが「iモードメール宛先別送信一覧表(送信状況)」という情報を公開しています。31日21時から1日2時までのiモードメールの送信状況は次のとおりでした。

Docomososhinlist
31日21時から1日2時までの「iモードメール宛先別送信一覧表(送信状況)」

 ふむふむ……。au→docomoだけじゃなくてdocomo→auのメールに関しても遅延していたことが分かります。さすがに2時になってからはだいぶ安定してました。

■ Toにすべてのメールアドレスを指定するのやめてくれる?

 「あけおめメール」でもメールアドレス変更のメールでもそうなんですが、アドレス帳に登録されているメールアドレスをすべてToに指定して送信する人がいます。メールについてある程度知っていたら、そんなことはないんですが……。

 ToやCcに複数のアドレスを指定しちゃうと、ToやCcに指定したメールアドレスが他の人にバレちゃいます。そんな些細なことを、中には気にする人もいると思うので。

Mailto
以外とよく見かけるToの複数指定 他の人のメールアドレスも見ることができる

■ Bccを使うべし!

 ToやCcがダメとなると、残るはBcc……。そうなんです、Bccを使えばこれを解決してくれます。

Bccexample
このようにすると、他の人にメールアドレスが知られるのを防ぐことができる

 Toに自分のメールアドレス、Bccに送る人のメールアドレスを指定すれば、Bccに指定されている受信者はお互いのメールアドレスは分かりません。仮に上の写真で送信したとすると、受信者のaaaaa@example.comから見て、bbbbb@example.comとccccc@example.comのメールアドレスは表示されません。

 携帯電話のメールの利用者数が増えてきていますが、ToとBccの使い分けを知らない人は意外と多いです。そういった人に知ってもらいたい、ということで今回簡単に取り上げさせてもらいました。

 (※上の写真でToにmyaddress@example.comと指定していますが、これは自分のメールアドレスのことです。Toにメールアドレスを最低1つ指定しないと送信できない携帯電話がほとんどだと思うので、今回は自分のメールアドレスを指定しました)

■ まとめ

 複数の宛先に送るとき(同報送信)は、Bccを使う

 詳細はGoogleなどで調べてもらえると、より分かりやすい情報を見ることができると思います。

 前回の記事で、

クラブ内で勉強会とかいろいろなことをおこなっているんですが、それについては次回触れたいと思います。

 と書いていました。次回には書くようにします。本当に申し訳ないです。

 それと、全然関係ないことなんですが、友達とIT系の非営利の任意団体を立ち上げることになりました。このことは、設立後、機会があればこのコラムで紹介したいと思います。

 今年も、あなたにとってすばらしい1年になりますように。

@IT Special 注目企業
@IT Special ラーニング

エンジニアライフ 最新の投稿コラム

@IT自分戦略研究所 新着記事

エンジニアライフ スポンサー

コラムニスト プロフィール

サトにゃん
大阪府在住の専門学校生。情報系非営利団体の役員やライターとして取材・執筆なども。主に情報技術全般や電子機器・家電製品について興味を持つ。さまざまな活動に参加し、日々勉強、挑戦する毎日を送る。(個人ウェブサイト)

2011年3月

    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

バックナンバー

月間バックナンバー

検索

Powered by TypePad
- PR -
@IT Special 注目企業
インデックス

@IT Special ラーニング