Cafe capybara TECH-BLOG

PHPな会社でゴリゴリしてるあかいいぬの技術ブログです

小樽商科大学講義「ソフトウェア科学」について

半分愚痴みたいなものですが、これが現状です。大学に関する問題は数多く存在しますが、これもその大きなものの1つではないかと感じます。



今回対象となるのは、小樽商科大学社会情報学科発展科目(3年生~)、「ソフトウェア科学」について。

つまりC言語を利用してプログラミングのアルゴリズムについて学ぶ講義です。

1講にアルゴリズムについての説明をOHPを利用して受け、2講に実習としてそのアルゴリズムを実装して提出、添削してOKをもらうというものです。





その講義が、ありえない。






ワシなんて一応プログラミング歴6年はあると言って良いくらい(ほとんどC#だけど)なので、C言語のポインタだとかソートだとかっていうのはまあ商学部の学生ランクはもちろん持っています。

1講の実習に関する説明を全く聞いていなくとも、課せられた問題(これも講義の内容を聞いていないと書けないような大雑把なもの)を解くのは簡単です。

んなもんで、自分なりに解釈して自分なりにコーディングして恐らく試されているであろう部分に関しては完璧にこなしているつもりで提出。



「んー、ここ講義で言ったところと違うねー。ちゃんとわかってやってるんならいいんだけどねー。」などとひとりごとを呟きながら採点。既にイライラ。

「ここさー、こういうことをやってほしいわけじゃないんだわー。講義出てないならわからないかもしれないけど。」ごめんなさい。去年同じ内容の講義に参加した結果のコードです。

「講義出てない部分は自分で解決してね。はいやり直し。」



みたいなことを毎回言われるわけですね。去年も同様だったので途中でキレて講義参加やめたんですけど、どうしても単位が足りないから受けるはめになったわけなんですよ。


どうやらあの講義、ワシの思っていた目的とは違う目的でやっているみたいですね。



C言語という比較的シンプルな言語を用いて、実際プログラムのアルゴリズムがどう動いているのかを実感し、その感覚を身につける」


のが目的だと思っていたんですけど、実は、


「1講で紹介したソースコードや先生のありがたいお話をちゃんと聞いて、そのソースコードやお話を覚えて実習で応用する」


ことが目的みたいです。先生の態度を見ると(ありがたいお話は論点がずれてるし不足しているので応用は出来ませんが)。


まあ、それなら仕方ないわな。1講で使った変数名と違ったらそれは怒られるだろうし、話したことと違う処理を行なっている行があればその部分は消されるわな。



今週のアルゴリズムは、「ポインタのみを使った値の交換」で、もうちょっと解説すると「ヒープ領域にメモリを確保(mallocですね)して、そこに数値を代入し、ポインタの実体(*aで出る値)をポインタを使って交換した後にメモリを解放する(free関数だ)」という所をやる感じだったらしい。


まず前回以前でポインタの学習をおこなっていない。この講義の下位科目(履修済み推奨科目)に「情報処理」があるが、そっちのポインタの学習でちゃんと意味を理解した学生は(うちは文系だから)ほとんどいないんじゃないかなあと思う。


ということでポインタすらまだわかってない状況で、ヒープ領域を利用して交換を行わせるとか狂気の沙汰である。

しかも講義を受けた人に聞けば、どうやらスタック領域とヒープ領域の話は全く聞かされていないそうで、さらにmallocについては「関数だ」としか言われず説明は行われなかったらしい。プログラミングの最初期の#includeという魔法の言葉と同じレベル。「まろっく」ってなに?ってレベル。


今回のコードは実際15行程度でかなり見た目は薄いはずなのだが、裏では結構難しめのことをやっているのでちゃんと理解してコードを書き、課題2つ目の「上記の処理をわかりやすいように図示しなさい」という「上記」ってどこを指すの、とかどういう形で図示すんの、とか色々文句をつけたくなる課題を一発でクリアした人は見たところほとんどいなかったらしく、この講義の1講の説明レベルの低さが伺える。

まあ、図示については1講中に全部書いたからその通りにかけばいいだけなので学生がその図の意味を理解出来る可能性はほぼゼロ。

実際答えの例を見せてもらったら、スタック領域とヒープ領域に分けて(もちろん「スタック」とか「ヒープ」なんて言葉はそこに存在しない)その処理をフロー形式で書くらしい。


まあ、自分もまだ知識不足なところがあって、宣言したポインタ変数はメモリ上のどこにおかれるの、とか、メモリ確保ってどこを確保するの、とかは自分で調べて今回のアルゴリズム(というよりもC言語の基礎知識)の意味を理解したわけだが(普通は先生が教える部分)、ほとんどの学生はチンプンカンプンなまま帰っていったのだろう。



これだけ文章を叩き書いてつまり何が言いたいかっていうと...





「あの講義は、ありえない」!






あんな講義がうちの学校に存在することが恥ずかしい。きっと他にもあるんだろうなあ、こんな講義。

シラバスに書かれている目的と違う目的を持って平然とそれを学生に押し付ける。そして説明の下手さ。さらに実習中の態度の悪さ(みんなわかんないと思うけど、これって凄い簡単なんだよ?という上から目線的雰囲気を常にかもしだしている)



事実影響しているのかどうかは不明だが、その月曜の講義後の火曜日は常に体調を壊し活動できていない状態である。そのストレスが原因かと思われる。




大学には自分にとって有意義と思える講義もあれば、まったくトンチンカンなものもあって、それを見分けてうまく知識を蓄えつつ所要単位をうまくとって卒業する力が、今の大学生には求められている。



P.S. 今の自分にとって有意義と思える講義だけでは、卒業所要単位まで全く届かないので、つまらないとしか思えない単位も取らなければならない。ここには個人差があるのだろうが、私にとってこの大学が適切であったかどうかというのには疑問が残るといえる。