「なぜ学ぶのか?」――これは、これからZEN大学で学ぶ皆さんにとって、とても大切なテーマです。授業や仲間との対話、さまざまな体験を通して、自分の生き方や思いと向き合うヒントを見つけてみませんか?今回は、この問いを吉村総一郎・講師に投げかけてみました。
学生の学ぶヒントになり得るもので、ご自身の専門に進むきっかけとなった出来事などはありますか?
自身がWebアプリケーション開発の道に進むようになったのは、2000年代に自身がシステム開発を行っていた当時Webが最先端の技術であり、インターネットおよびWeb技術が発展することで社会が大きく変わるという確信があったからです。それから20年経ち、現在ではWeb技術なしでは社会が回らないほど生活のあらゆるところでWeb技術が利用されています。学生の皆さんにもテクノロジーが社会を変えていく現場の最先端で社会との関わりを考えていってもらえればと思っています。
なぜ、私たちは学ぶのでしょうか?
学ぶ理由はそれぞれであっていいと思います。一つは趣味のため、興味のため、自身が食い扶持を見つけるため、また、社会に貢献するためとさまざまな理由があるかと思います。ただ一つ、自身が情熱を燃やせる理由で打ち込んで学んで頂ければ自身の人生を良きものにできると思っています。
大学時代に読んでおきたいオススメの1冊(タイトル)を教えてください。
サイモン・シン『暗号解読 上・下』青木薫(訳)/新潮社
コンピューターサイエンスに関わる本でオススメなのは、サイモン・シンの『暗号解読』です。暗号の血塗られた歴史を学ぶことができ、どう今につながったのかを知ることができます。
吉村総一郎・講師の授業(シラバスと概要)
・「ITリテラシー」シラバス
ITの必要性を理解し、基本知識を身につけ、インターネットやAIの活用について学ぶ。メディアの知識やデジタル市民としての教育法も学び、コンピューターや通信の仕組みを知ることで、社会人としてシステムを適切に活用する力を身につける。さらにシステム開発や経営、関連法律にも触れ、ITに関する幅広い知識を得ることができる。
・「多言語ITコミュニケーション」シラバス
この授業では、最新のITツールを使った多言語コミュニケーションに重点を置いて学ぶ。第一にここでは異なる言語間での意思疎通の要点を学び、国際コミュニケーションの手法を探る。次に実際の海外のソフトウェアツールの利用や開発の現場で使われるコミュニケーション方法、ライセンスや利用規約の理解、海外の情報収集、海外の最新のサイエンス情報の取得方法など、多岐にわたる具体的なスキルや知識を習得する。
・「オブジェクト指向プログラミング」シラバス
この科目では、Scalaというプログラミング言語を使い、オブジェクト指向プログラミングの基本的な概念と活用法を身につける。はじめてのScalaから始めて、基本的な文法や制御構文、デザインパターン、パターンマッチ等について理解を深め、簡単なアプリケーションを作成できるようになる。さらには、高度な開発環境の使い方も学ぶ。
・「関数型プログラミング」シラバス
Scalaというプログラミング言語を用いて、関数型プログラミングの思考と技法を身につける。具体的には、関数や多相関数の設計、エラー処理、リスト操作や遅延ストリームの実装について理解を深める。最終目標として、パーサーコンビネーターのライブラリを実装し、自分だけのプログラミング言語を作れるようになることを目指す。
・「並行処理プログラミング」シラバス
この授業では、マルチスレッドによる並行処理の基本を学ぶ。最初に、スレッドやスレッドセーフという概念、そしてメモリの可視性と逸出という重要なテーマについて深める。その後は、Javaの並行処理の仕組みを学びつつ、他の言語(アセンブリ、C言語、Rust言語)における並行処理の取り組みも探求する。また、Akka Actorを利用したスケーラビリティと耐障害性を兼ね備えたプログラミングも理解し、一覧取得システムの開発に至るまでを学ぶ。
・「Javaプログラミング演習」シラバス
オブジェクト指向言語Javaを利用したプログラミングを学ぶ。Javaが持つ基本的な概念や、Javaの持つ繰り返し、データ構造などの基本的な文法、またJavaが持つ標準APIなどを学ぶだけではなく、最新のJavaの機能のStreamなどの高度な利用方法も学ぶ。オブジェクト指向プログラミングの要素を学んだ後ビルドツールや単体テスト、IDEやバージョン管理法も知り、JavaでのWebアプリケーションとデータベースの連携までを学ぶ。
・「チームプログラミング演習」シラバス
本科目は、チーム開発を行いながら課題として設定されたWebアプリケーションを開発し、リリースすることを目的とする。各回ではチームにおいて、技術調査・企画制作、企画レビュー、設計レビューなどをしていきプロダクト開発に挑む。本科目を修了することで、チーム開発で生じる問題やその解決方法について理解できるようになる。
・「プロジェクト実践」シラバス
実社会で起こっている問題や課題を取り上げ、課題解決のステップを学びながら仮説と検証を繰り返し、学問分野に捉われず学修者自身が多様なデジタル・ツールを駆使し解決策を追求していく授業である。講義と演習を組み合わせ、テーマに関係のある事柄を中心とした学生同士の対話を繰り返し、様々な考えに触れながら検討・分析する。最終的には自ら考えた解決策を発表・フィードバックを行い、学生同士が学びを深めていくアクティブラーニングである。