今、1回生向けの少人数セミナー授業でC言語の初歩を教えています。彼らは既に前期にJavaを学習しており変数や制御構文の簡単なものは習得しているはずです。ちなみに授業の教科書はやさしいJava(高橋麻奈さん著)です。
C言語を教えるときに何か資料がないと。。。ということで猫でもわかるプログラミングを利用させてもらっています。*1
とりあえず、printfとscanfを使えるようになろうということで繰り返し小さな課題にチャレンジしてもらっています。今日は3択クイズでキーボードから数字を入力して当たり/はずれを表示するプログラムを作ってもらいました。
指導していて感じるのは、やはりprintfやscanfの書式指定(%dや%f)などが難しいようです。Javaにもprintfはありますが授業の演習では出てきません。習っていないということもあるのでしょうけど、%dと記述するくらいなら文字列連結で書いた方が直感的と感じるようです。
おまけにscanfでは変数に&をつけます。一応、ポインタやポインタ変数の話しはしましたが一度説明して理解することは期待していません。とりあえず現段階ではscanfで変数が出てきたら&をつけるんだよ、と話しています。
本学科も数年前まではC言語がメイン言語でした。Javaに変更するときもいろいろ議論がありましたが、どちらが良いのかは判断が難しいところです。ただ、最初のうちは扱える情報量が少ないのでなるべく記述量が少ない方が学び易いだろうな、とは思います。そういう意味ではrubyやscalaの方がいいのかな。。。と思います。
*1:なかなか課題ができない学生は俺たちは猫以下か。。。などと言っていますが