どうしてProcessingとかじゃダメでJavaとかCをやらなくちゃいけないのか
プログラミングの授業にメディア演習みたいなのがあって、音声をいじったり画像のピクセルをいじったりするみたいな授業がある。みんな1年の間にはProcessingやってて、画像はっつけたり絵を書いたりインタラクティブなシステム作れたりするんだけど、この授業ではEclipseとかCygwinとかを使ってJavaとかCをやったりする。これについて思ったことがあったけど、吐き出し口が無いのでとりあえず書く。
1年次の演習内容
まず話の前提として、1年次の授業を共有しておく必要がある。1年のうちに触っている言語は、HSP, Processing, Arduinoの三種類。これだけ見て分かると思うけど、相当プログラミング嫌いを出さないことをケアしようとしている。僕は他の大学の事情を知らないためにどうなのかわからないのだけれど、あまり分からないとかで嘆く人は少ない気がする。ちゃんとコードに集中出来る分(すぐにコードを書き始められる)、取っ付き易い気はする。
こうした前提の上で、メディアを扱うメディア演習でわざわざJavaやCを使用しているのはどうなのだろう、という疑問がうかんだ。もしかしたら、これだけプログラミングをやっているからそういったものにチャレンジしても大丈夫だろう、という話かもしれない。ただ、今は何にフォーカスして居るのかを考えると、わざわざそれらを使う利点は無いのではないかと感じるのだ。ツールを勉強する時間をなくして、もっと新しいことが勉強できるんじゃないか。よくわからないIDEのエラーやCUIの操作に悩まずに、新しい概念だとか、そういったことを知っていったほうが有意義なのではないかと。
本当にJavaやCが必要?
例えば画像のピクセルいじったりとか、音声の波形データを読み込んだり、波形を作り出して書き出しましょうみたいな話は、配列の値をどうやっていじりますかとかいう話なので、JavaとかCでやったほうがやりやすいとか、分かりやすいなんて話ではないと思う。むしろ、Processingをそのまま利用したほうがシンプルで簡単なことだってあるかもしれない。
Cやっておけば便利派の人
授業中にCは色々な言語に影響を与えてるしこれをやっておけば便利ですよみたいな話をされた。けれども、今回扱った分のソースコードを見た感じCで書いてもProcessingで書いてもそんなに変わらないし(こういうこと言うと突っ込まれそうだけど)、そもそもCはJavaに影響を与えていて、Java∋Processingみたいな感じの関係だから、そんなにわざわざCを知らないといけない理由はあんまりないと思う。Cっていう言語があるんだ、みたいなのは知っていてもいいと思うけれど。 Processingは書いたらすぐ動かせるし、面倒なCUIの操作とか無いから、やっぱりどうしてJavaとかCを今やらないといけないのか分からない。
授業外のことも考える
復習をしたりといった面から見ても最適ではないと思う。CygwinやEclipseといった開発環境をコンピュータに入れる必要があり、そこで躓くことも多い。Cygwinでgccを使ってコンパイルをして、といったCUIの操作は慣れていないが、それくらいできるでしょう、といった前提で授業が進むために多くの学生が苦労をする。
苦労は当たり前だ、という話かもしれないけれど、必要な苦労と、不必要な苦労があると思う。確かにそういったものが扱える必要もあると思うんだけど、それをやるのが今この授業なんでしょうかという気がするのだ。
それ、一般教養では
ただ一方で、CUIの操作やCygwinを使ったり、EclipseといったIDEを利用することは情報系の大学を出たなら一般教養として知っておく知識な気もする。それならば、情報リテラシー的な感じで他に単位があったほうが良さそうな気がする。他の大学はどうなっているんですか。
こういうのを考えていると、新たな学びの形はいくらでもあると思った。