2010年10月19日火曜日

げぇ~まともじゃん

こんにちは、こすげです

この前書いたように先週の日曜日に情報処理技術者試験が行われたようです。そのときの問題と解答がIPAのサイトに公開されています。で、午前の問題を見た限りにおいての感想は、「おー、問題の使いまわしをするようになってから、ずいぶんまともになったじゃん」ってことです。ずーっと以前は「同じ問題を使わない」ということで、何問というか珍問が見受けられた情報処理技術者試験の午前問題ですが、(良問を)使いまわすことによって、ようやくまともになってきたんじゃないかと思います。
ただ、出題される問題を使いまわすことで、ただ過去に出題された問題をやっておけば基礎力がなくても合格できちゃうって問題があるのですが、それに対して、IPAは午後の問題では基礎力を重視する姿勢を打ち出して?、今回それに沿った出題がちゃんとされていることに、(いい意味で)驚きました。

上のリンクをたどって、午後の問題を見てほしいんですが、私が問題の質を評価できる問は、以下の
問1 ハードウエア(組み込みシステム)
問3 ネットワーク(CRC)
問4 情報セキュリティ(認証システム)
問8 データ構造及びアルゴリズム(符号付き2進数の乗算)
問9 ソフトウエア開発(C言語)
問11 ソフトウエア開発(Java言語)
問12 ソフトウエア開発(アセンブラ)
ぐらいなんです。ですが、いずれも「概ね」良問だとおもいます。

実は午後の問題は、情報科学や情報技術の勉強を始めて数年の人には幅が広すぎるのですが、ちゃんと問題分の中に解説があるので、それをきちんと読みこなすことができれば、まったく知らない分野からの出題であっても、困難なく解けるようになっているんですね。今回は、幅を広げながら、問題の中での解説がきちんと行われており、国語力や数学力と、(いままで自分が知らない分野を理解しなければならないという)困難に立ち向かう覚悟を持っていれば、ちゃんと解ける問題ばかりです。ただ、試験時間が人によっては、ちょい足りないかもしれないけど。

特に問3は問題としてよりも、この問題を教材にして、CRCのことを教えたいくらい良い出来ですね。
あー、でもソフトウエア開発に関して言えば、C言語やJava言語の難易度と、アセンブラの難易度が揃ってない(アセンブラが極端に簡単)気がします。その辺が問題かな。

あ、ついでにこれも書いておこう。

基本情報技術者試験のアセンブラで採用されている「システム COMET II」なんですけど、これぜひ、スタックポインタと汎用レジスタの間で、データのやりとりが行えるようにしてほしいなぁ。現状では、スタックポインタの値はOSによって制御され、プログラムでは操作できないような仕様になってますけどね。
それは、なぜかというと、近代的なプログラミング言語では、関数(サブルーチン、メソッド、プロシージャ、、、いろーんな呼び方がありますけど)への値の引き渡しにはスタックを使うのが当たり前だし、一時的な変数もスタック上に置かれることが多いからです。
まあ、それが原因で、バッファーオーバーフローなんていう脆弱性も生まれちゃっているわけで、スタック領域をプログラムが利用することは、現代のプログラミング言語の負の側面も含めた常識になっているわけです。それを情報処理技術者試験のアセンブラで取り上げることは、情報処理技術者の質の向上と言った面で意味のあることになります。まあ、不満があるにはあるのですが、スタックポインタと汎用レジスタの間でのデータのやりとりが可能になれば、近代的な意味で出題に幅が広がるわけですね。
いつまでもサブルーチンへの値の引き渡しに、レジスタつかっているなんて、ないでしょうよ。レジスタ依存していたら、それこそ移植性に問題でちゃうじゃん。

こんな問題も作れるしさぁ。。。

問 以下のアセンブルコードは、どのC言語のプログラムをコンパイルしたものか。選択肢の中から記号で答えよ。

問 C言語から4バイト長符号なし整数に格納したIPアドレスとサブネットマスクを引き渡すとそのネットワークのブロードキャストアドレスを4バイト長符号なし整数を戻す関数 unsigned int getBroadcastAddress(unsigned int ip, unsigned int mask) を、CASL IIで記述した以下のプログラムについて設問に答えよ。ただし、C言語のプログラムを「システム COMET II」で動作させるための、拡張OSやコンパイラなどの仕様は巻末の資料を参照すること。

うぷぷ。

なんだったら、整数限定のサブセットでシステム COMET II用、C言語のクロスコンパイラ、オープンソースで提供してもいいでっせぇ(大笑。

パブリックコメントの募集があったら、この件を出しておこう。。。って、忘れるんだよなぁ、いつも(笑

0 件のコメント:

コメントを投稿