AIやIoTなどのIT技術が進歩した昨今,「大学に入ってプログラミングを勉強したい!」と思っている人は多いに違いない。
この記事では,そんな向学心のある人が「電気電子情報工学科でプログラミングは勉強できるのか?」ということについて,電気電子情報工学科に所属していた大学院生が書いていく。
プログラミングと大学の学科
そもそも大学で勉強すべき?
【重要なまえがき】
大学院という「研究する場所」にくっついている大学の学科で,プログラミングについて「勉強する」ことが最適なのかどうかは,よく考えるべきだ。このことについては,以下の記事に書いたので,併せて読んで欲しい。
>> 「プログラミング」を大学で勉強したい人が考えるべきこと
【まえがき終わり】
電気電子工学科と情報工学科の違い
プログラミングやそれに関連することを勉強したい学生は,「電気電子情報工学科」に進もうと考えているだろう。おおまかには,それで間違っていない。
ただし,ひとくちに「電気電子情報工学科」といっても,その中身はさまざまある。必ずしもプログラミングそのものをあつかっているわけではないので,注意が必要だ。
*
たとえば自分が通った「電気電子情報工学科」は,ちょうど自分が入学するタイミングで学部/学科改組(学科の内容を組み替えること)が行われた。
それまでは,プログラミングの言語やソフトウェア,コンピュータに関連するような「情報系」の研究室・講義も多かったようだが,
学科改組によって,この「情報系」は情報学研究科と情報学部として,「電気電子情報工学科」から切り離された。
その後の「電気電子情報工学科」には,いくつか情報系の研究室は残っていたけれど,電気・電子系が中心の学科へと変わった。
私の同期には,これを知らずに電気電子情報工学科へ入ってきて,「人工知能がやりたいのに,情報系の講義がない…!しかもそういう研究室もない!」と困惑していた人が多くいた。
おかげで,研究室配属のときは,数個の情報系専攻の研究室の倍率が相当高くなっていた。
*
以上は,自分の通っている大学の話だ。もちろん,大学によっては電気電子工学科と情報工学科がしっかりと含まれる「電気電子情報工学科」もある。
そういうわけで,電気電子情報工学科で「プログラミング」を勉強したい場合,
自分が志望する学科が,やりたいことに近い学問をあつかっているか,入学前に確認しておくべきだ。
大学院の研究分野からイメージする
ある程度以上のレベルの大学であれば,学部より大学院に重点が置かれていることが多い。こういう大学では,「大学院で研究するために必要な知識を学部で学ぶ」というスタンスがとられている。自分が4年間在籍し,進学した大学もこのスタンスだ。
こういう大学では,大学院の研究分野(○○専攻と呼ばれる)をベースとして,学科の講義がつくられている。したがって,学科における講義内容は,大学院の研究分野を調べるとイメージしやすい。
学科の講義内容や,大学院の研究分野は,「○○大学 電気電子情報工学科 シラバス」とか「○○大学 電気電子情報工学科 研究室」と検索すれば,大学のHPにおいて確認できる。入学前のひとでも,シラバスや研究室紹介は見られるので,まずはここを参考にすべきだ。
*
以下では参考として,自分の大学について一通り調べてみた。
プログラミングを勉強したい人がイメージしやすい「プログラミング」について,関連しそうな専攻を取り上げ,それぞれについてのキーワードを挙げ,どういう「プログラミング」を扱っているのかを書いていく。
電気電子・情報工学科におけるプログラミング
まずは,タイトルにもあるような「電気電子情報工学科」だ。大学によってさまざまだが,自分のいる大学では,大学院に進学すると以下の3専攻にわかれる。
- 電気工学専攻
- 電子工学専攻
- 情報通信工学専攻
学部では,この3専攻へと進学する学生が講義を受講するのだが,電気・電子工学専攻が全体の半分以上を占める。そのため,そういう専攻へとすすむ学生用の講義が多いことは知っておかなければいけない。
電気・電子工学専攻
じゃあ,電気工学専攻や電子工学専攻ではどういったことを学ぶのか?
これは,【学部生活ふりかえり】電気電子・情報工学科に入ると学べることにも書いたが,キーワードだけ並べると以下のような具合だ。
- 電気工学専攻:電力,パワーエレクトロニクス,電池,再エネ,核融合,超電導…
- 電子工学専攻:電子デバイス,半導体,プラズマ,量子デバイス,パワーデバイス,ナノデバイス…
いかがだろうか・・・?もちろん,各分野を研究するにあたって,「プログラミング」ができるに越したことはないが,それ自体をメインとして据える専攻ではない。
学部の講義は,こういったキーワードにかかわるものが中心となってくる。プログラミングを学びに来た学生だと,がっかりするような内容かもしれない。
情報・通信工学専攻
一方で,情報・通信(あるいは電子情報)工学専攻では,どういう学問・領域を取り扱うのか?
こちらも同じようにキーワードを並べてみる。
画像情報処理,情報ネットワーク,実世界データセンシング,情報セキュリティ(符号),無線通信,移動体通信(6G),コンピュータ・アーキテクチャ,人工知能・自然言語処理,モータ・ロボット制御,音声言語・音響処理…
いかがだろうか?電気・電子工学専攻と比較すると,プログラミングに近いものもあることがわかっていただけるはずだ。ただし,明確に「人工知能」や「AI」,「IoT」といったキーワードは出てこない。また,モータ制御やコンピュータアーキテクチャなど,いわゆる「ハード」面に着目したものもある。
いいかえればこの専攻は,情報技術そのものではなく,それを駆使した応用技術やその構造を学んだり研究したりする専攻だということだ。
*
電気・電子工学専攻と情報・通信工学専攻,あつかう領域はまったく異なるが,いずれも「電力」や「電子」を駆動源としている応用技術をあつかうという点では共通しているわけだ。
いわば将来扱う分野が全然違う学生が混然一体となっている学科であるわけだ。
情報系の科目というのは,学部3年生の選択科目として用意されていた。ここで電気系や電子系に行きたい学生と,情報系に行きたい学生がじわじわと別れていく雰囲気だった。ただ,情報系の科目といっても,プログラミング言語を学ぶとか,そういうのではなくて,ネットワークの理論とか,情報理論とか,コンピュータの構造とか,アルゴリズムとか,そういう基礎的なものがほとんどだった。
そういう情報系の講義を受ける学生たちは,かなり意欲的で,「プログラミングは独学で勉強して,情報系の研究室でバリバリプログラムを書いて活躍している」という印象だ。
関連記事: 【3年後期】定期試験を終えて思うこと
情報学科(情報学研究科)におけるプログラミング
続いて情報学科(情報学研究科)。ここでは,電気電子情報工学科とは独立して,「情報学部」や「情報学科」としている学科のことを指す。
情報学部・情報学科であれば,まず間違いなくコンピュータでプログラミングを学べる。
調べてみると,たとえばコンピュータ科学科には以下のような講義科目があった。プログラミングの基礎から応用まで,だいたい一通り学べる模様。
基礎:計算機アーキテクチャ(コンピュータの構造),ソフトウェア言語(プログラミング言語の構造とか),コンパイラ,符号理論,オブジェクト指向,オートマトン,OS,ネットワーク etc…
応用:機械学習,画像処理,信号処理,人工知能,ロボット制御
いわゆる「プログラミング」が網羅的に学べそうだ。
電気電子情報工学科における「情報工学専攻」では,上記のような学問を「応用した技術」を扱うのに対して,情報学科・情報学部では基礎から応用までをしっかりと学べるイメージだ。
まとめ:イメージを具体化すべき
「鶏が先か卵が先か」という議論ではないけれど,基礎からしっかり勉強して応用に入るか,応用技術から基礎を拾っていくか,これは個人によってかなり違う。
(自分は後者の方が向いていると,最近分かった:【永遠の疑問】勉強って何のためにするの?に対する答えのようなもの)
なので,自分でイメージを具体化して,何をどうしたいのか,明らかにすると,間違いない学科選びができそうだ。
関連記事: 電気電子工学科を選んだ理由
自分が電気電子系の学科を選んだ理由を書きました。
関連記事: プログラミングができない
電気電子情報工学科へ進学しても,必ずしもプログラミングができるようになるわけではないというソースがこちらです(自分)