新カリキュラムで、幅広いコンピュータサイエンスの基礎を確実に修得できる体制をさらに強化!
コンピュータサイエンス学部 竹田 昌弘 教授
2019年度より、コンピュータサイエンス学部のカリキュラムが大きく変わります。その詳細を学部長である竹田先生に伺いました。
■コンピュータサイエンス学部のカリキュラムが2019年度から変わるそうですが、どのように変わるのでしょうか?
まず、大きいところでは、これまでのカリキュラムにあった“コース”の考え方が変わります。今までは、2年次にコースを選ぶと、そのコースごとに設定されたカリキュラムを修了することで卒業が認定されるという形でした。ですからコースごとに、たくさんの履修科目があって、しかも各コースによって学ぶ内容がかなり違っていたのです。それを2019年度からは、4年間でどういうことを学んできたかによって、卒業時点でコースを認定する形にしたいと思っています。言い換えると、これまでの「コース」を選択するという考え方ではなく、ある意味で「コース」を「分野」や「テーマ」と捉えてもらって、4年間でどういう分野やテーマを集中的に勉強してきたかということで、最終的な修了コースを認定することになります。これによって、従来のようにコースのカリキュラムに縛られることなく、学べるようになるわけです。ただし、学生が自分の学びたいことをできるだけ体系的に選んで学べるように、道しるべ的なものとして2年次のコース選択自体は変わらず行い、各コースに沿った履修推奨科目も明示します。
また、この改編に伴い、2年次からの履修科目として「専門教育科目」のなかにコンピュータサイエンス(以下CS)の基盤となる12の講義科目を設けます。これらの講義科目は、アメリカのコンピュータサイエンス分野の国際学会ACM(Association for Computing Machinery)が定めている標準カリキュラムをベースにして構成しました。また、これら12科目は、便宜上、コース(分野)に分かれてはいます。例えばAIコース(分野)の科目としては、「人工知能」「認知科学」「ヒューマンインターフェース」があり、システムエンジニアリングコース(分野)の科目としては「データベース」「ソフトウェアエンジニアリング」「データサイエンス」というように。学生はこの12科目中10科目の単位を取ることが必須になりますから、結果としてコース云々に関係なく、コアとなる部分をしっかり身に付けられる設計になっています。また、これらは座学の講義ではありますが、学生が能動的に参加できるアクティブラーニングのスタイルで進めていく予定です。
その一方で、自由にテーマを選べる演習?実習科目も用意します。これに関しては、先生方の専門領域や先端分野をテーマとし、少人数で取り組む形にする予定です。例えば、講義と演習がセットになった「コンピュータサイエンス専門演習Ⅰ?Ⅱ」(2?3年次)では、AI、セキュリティ、並列処理、量子コンピューティングなどのテーマの中から2年間で複数テーマ、学生に履修してもらいます。同様に、2年次の「プロジェクト演習」、3年次の「プロジェクト実習」に関しても、先生方の専門や先端分野からテーマを設け、学生がその中からテーマを選んで取り組んでいきます。これら演習?実習科目のテーマに関しては、いずれも今後、増えたり入れ替わったりと流動的になる予定です。
ですから新カリキュラムでは、CS分野全般に共通する基盤部分を「専門教育科目」で身に付け、さらに深く学びたいものに関しては、演習?実習科目にある個別のテーマの中から選択して、より深い知識やスキルを身に付けていくという形になります。
■コースの考え方を変え、「専門教育科目」に12のコアとなる科目を設けた背景には、何があるのでしょうか?
これまでのようにコースにかっちりと分かれて学ぶと、それぞれの分野を深く追究できるという利点はあるのですが、各分野に特化している分、CSに共通するベースがプログラミング以外はなかなか身に付かないという面もありました。ですが、やはりCS学部で学んだ学生全員が同じ基盤を持って卒業してほしいということから、今後は「専門教育科目」でCSのコアとなる学びを共通化させていくことにしたのです。とはいえ、これまで本学部が掲げていた「ICTの広範囲にわたる基礎を確実に修得する」というカリキュラムの目的自体は変わりません。むしろその目的により即したカリキュラムにしていくということです。
■他に新しくなる科目はありますか?
「プログラミング」関連の科目が、新しくなります。現在は、1年次でプログラミング言語のJavaを学ぶ「プログラミング基礎Ⅰ?Ⅱ」、その続きを学ぶ2年次の「応用プログラミング」、C言語を学ぶ「プログラミングⅠ?Ⅱ」となっているのですが、これを新カリキュラムでは、1年次の「プログラミング基礎Ⅰ?Ⅱ」でJavaを学んでプログラミングの基礎を身に付けた後、2年次では新たに「プログラミングⅠ~Ⅳ」という科目を履修してもらおうと考えています。これは先生方がそれぞれ教えたいプログラミング言語を半年ずつ教えていくという内容で、プログラミングの基本的な考え方が身に付いていれば、そこから先はどんな言語も同じように使えることを感覚的に知ってもらいたいという狙いで設けました。例えば、最近、AIやデータサイエンスで有名になっているPython(パイソン)なども扱っていきますし、私自身は統計解析のR言語を教えようと思っています。
今まで、プログラミングの基礎は、どうしても文法中心になりがちでした。文法は大事ですが、今後はもっと“使える”ことを重視したプログラミング教育をしていこうと考えています。また、プログラミング言語は、どんどん新しいものが出てきますから、その時に困らないようにという背景もあります。プログラミングの考え方をきちんと理解し、なおかつ色々な道具を知っていれば、多様な課題に対応できるようになりますからね。
■最後に受験生?高校生へのメッセージをお願いします。
どんな分野でもそうですが、“学び続ける態度”というものが重要になると思います。特にコンピュータの世界は、技術が次々と新しくなりますから、学部で勉強することなんて、すぐに古くなっていきます。ですから常に学び続けていく必要があるのですが、そのためには好奇心や探求心が欠かせません。本学部で学びたい方、そして本学で学ぶ学生は、コンピュータへの興味を持ち続けられる人、面白がれる人であってほしいと思います。
■コンピュータサイエンス学部WEB:
/gakubu/cs/index.html
?次回配信は5月を予定してます。