ソフトウエアⅠ・Ⅱ

Part1

この講義は工学部の電気系学科の4学期の必修科目で、C言語プログラミングを学ぶ講義です。前期課程ではプログラミングに関する知識量の差が学生によって大きいのですが、工学部の、特に電気系の学生は一定以上のプログラミング知識を有していなければならないため、あまりプログラミングに慣れていない学生も一定水準までのプログラミングを習得することを目的としています。なお教科書として、カーニハンとリッチーが書いた『The C Programming Language』(いわゆるK&R)の訳書である『プログラミング言語C』を用いています。C言語が標準化されるまでの事実上の規格書であったこともあり、古典的な教科書ではありますが多くの人から支持を受けている本です。 工学部の電気系学科とは電子情報工学科(Aコース)と電気電子工学科(Bコース)に分かれていますが、電子『情報』工学科というだけあって、一部の学生は既にプログラミングに関してかなりの知識を持っているようです。課題に取り組む周囲の学生が奏でるタイピング音に、あまりプログラミング慣れしていない私は気圧されてしまいそうです。そんな雰囲気を知ってか知らずか、講義はどんどん加速していきます。C言語は独学で少しだけしか触れたことがない筆者は、今の講義は楽しいと思う反面で今後果たしてついていけるのか、と一抹の不安を覚えるのでした。

Part2

この講義は13回の講義のうち前半7回をソフトウェアⅠ・後半6回をソフトウェアⅡとしています。先日の講義はソフトウェアⅠ最後で、前半は中間試験を行いました。60分の筆記試験の後に、実際にプログラミングの試験を行うというスタイルです。筆記試験も時間ぎりぎりまでかかるほど量の多いものでしたが、その後のプログラミング試験がくせ者でした。普段あまり時間を気にせずプログラムを書いているため、時間の制約があるというだけでどうしてもあわててしまいます。するとどうでしょう、普段はしないような間違いをたくさんしてしまいます。あらかた書いてプログラムを実行しても期待通りに動いてくれません。焦るばかりで正解に行き着くことなく時間切れ。仕方なくバグを含んだプログラムを提出し、それでも諦めきれずに見直すと、間違いはすぐに見つかりました。落ち着いて探せば修正に1分もかからなかったことが悔しく、もっとプログラミング慣れしないといけないと痛感した試験でした。

Part3

さて、中間試験も終わり、気分も新たにソフトウェアⅡの講義が始まりました。プログラミングの文法に重きを置いていたソフトウェアⅠと違い、このソフトウェアⅡはアルゴリズム(コンピュータが動くときの考え方)を考えることに重点を置いているようです。授業中の演習は、どれも一癖あるもので、すでにプログラムの「書き方」の授業ではないのだと思い知らされました。ちなみにこの講義、試験はラピッドプログラミングだそうです。それって何? と思ったのですが、先生によると「講義時間内にプログラムを作成し提出する」というものだとか。それってソフトウェアⅠで苦しめられた実技試験と同じ形式ってことですよね……。

Part4

ラピッドプログラミングの結果が返ってきました。問題は3問の穴埋めで、うち2つは若干のミスがありながらも、最終的にはそれぞれ30分ずつで正しい演算結果にたどり着きました。ですが最後の問題が鬼門で、試験時間を延長していただいたにも関わらず、正しい結果が得られることはありませんでした。結果は80/100点と悪くない点でしたが、やはり書いたプログラムが動かないまま終わるというのは歯痒いものです。

Part5

ソフトウェアⅡは期末試験ではなく最終レポートとしていくつかの課題が課せられました。その内容は講義で扱ったアルゴリズムを応用して、与えられた問題を解決するプログラムを作成するというもの。基本は一通り講義で学んだとはいえ、問題解決の手法を自分で考えて実現することの難しさを実感させられました。C言語初学者を対象としたソフトウェアIから、13回の講義を経て、実践的なプログラムを書けるようになったように思います。


このページにコメントを送る
このページへの評価:
いい!よくない!
掲載日:12-11-04
担当:亀甲博貴
*