ZACKY's Laboratory 山崎 進 研究室 Page Topへ

ザキ研紹介2023

2023年度の学部研究室配属に先立ち,研究室紹介2023を公開します.

山崎進研究室の学科・専攻での位置付け

山崎進は,情報システム工学科・情報工学専攻において,ソフトウェアを専門分野として扱うと認識・期待されています.山崎進研究室についても,「ソフトウェア」の中の「ある部分」を扱うというように位置付けられます.どの部分を扱うのか,研究テーマの詳細については,個別面談に来てくれれば,説明します.本記事ではあえて説明しません.

本記事の対象者

前述のように山崎進研究室は,ソフトウェアの研究室として位置付けられています.したがって,進路選択において,ソフトウェアに関する強みを打ち出すという方向性での進学と就職を検討している学生に向けて,説明します.

なお,卒業研究や進路について方向性が決まらない人のために,参考書籍を後で紹介します.ソフトウェアに関心がない場合でも,それは参考になろうかと思います.

山崎進研究室で身に付くスキルセット・マインドセット

山崎進研究室に入門すると次のスキルセット・マインドセットが身につくことができると期待されます.

  1. プログラミング能力
  2. 英語の技術文書を読む能力
  3. 「自ら考える」マインド

順番に説明していきます.

1. プログラミング能力

山崎進研究室に入門すると身につくのは,まず第1にプログラミング能力です.

ここでいうプログラミングには,問題の発見・解決,設計,開発環境構築,テスト,運用,保守も含みます.またソフトウェアだけでなく,論理回路もプログラミングの対象とします.就職先となる企業が情報分野の学科出身の学生に,まず期待するのは,そうしたプログラミング能力・問題解決能力であるというのは,当分は変わらないものと思います.

キャッチーなフレーズで言うと,「AIに負けないプログラミング能力」を磨く方法を伝授します.最近はAIでプログラミングすることができるようになりましたが,その時代でも通用するようなプログラミング能力を磨くようにしたいと思います.

特筆するところでは,国内外のオープンソースソフトウェア(OSS)に,たとえ使用言語が英語でも臆さずに,問題をレポートして解決を図る方法を伝授します.

2. 英語の技術文書を読む能力

山崎進研究室に入門すると身につくのは,第2に英語の技術文書を読む能力です.

ここでいう技術文書は,論文や技術書,リファレンス・マニュアルなどを指します.

昨今はDeepLやGoogle翻訳などが著しい発達を遂げていますが,その時代における,英語の技術文書を正しく読む方法,効率よく読む方法について,伝授します.また,読むことの応用で,英語の技術文書を書く方法についても伝授していきます

学生のみなさんは日本国内のことにしか関心がないかもしれませんが,日本国内で働く場合でも,生活レベルを維持するためには,海外から情報を得たり仕事を得たりする必要があることを認識してください.

3. 「自ら考える」マインド

山崎進研究室に入門すると身につくこととして,第3に「自ら考える」というマインドが身につくことが期待されます.

たとえばプログラミングを習得する場合でも,単にやり方を教わるという方法ではなく,ある程度の基礎を教わった後,試行錯誤をする過程を経て,そこから得た経験知をふりかえって,知識を体系化していくというようなやり方で学んでいきます.また,書籍も豊富で,関心を持ったことを自ら学んで深めていくことができます.

このようなことは,就職活動において大きなアピールポイントになります.

山崎進研究室学生に求めること

山崎進研究室に入門しようという学生には,次のことを求めます.

  • スキルセット・マインドセットの習得に積極的であること意欲的であること
  • 研究室にできるだけ長く滞在して,密な指導を受けながら,自ら手を動かし,研究活動を精力的に行うこと
  • スキルセット・マインドセットの習得のプロセスで手を抜かないこと
  • 原理・原則を深く追求すること
  • 週2回のゼミにて,研究進捗を報告すること
  • 状況を速やかに指導教員にメールやチャットツール等で連絡・報告すること
  • 心身の健康を保とうと努力すること

スキルセット・マインドセットの習得に積極的であること意欲的であること

前述のスキルセット・マインドセットを身につけるには,「身に付けたい!」という積極的な意欲を必要とします.どんなに優れた指導者であっても,意欲が全くない学習者に教えて,成果を上げることは極めて困難です.したがって,研究室学生には,スキルセット・マインドセットの習得に積極的であること意欲的であることを求めます.

研究室にできるだけ長く滞在して,密な指導を受けながら,自ら手を動かし,研究活動を精力的に行うこと

前述のスキルセット・マインドセットを身につけるには,時間をかける必要があります 一人前になるには1万時間かける必要があるという俗説があります.1万時間は1日8時間,週5日間として,250週,すなわち約5年かかる計算になります.1万時間が真でないとしても,多くの時間を要することは間違いないと思います.

また特にプログラミングの初学者を指導する上では,リモートでは困難で対面での指導を必要とします.

したがって.研究室にできるだけ長く滞在して,密な指導を受けながら,自ら手を動かし,研究活動を精力的に行うことを求めます.

ただし経済的な事情がある学生もいると思うので,研究活動と両立できるアルバイトを提供していきたいと思います.たとえば授業のTAのように「先輩が後輩に教える仕事」は,収入が得られるだけでなく自らの知識を定着させる意味でも有効です.

スキルセット・マインドセットの習得のプロセスで手を抜かないこと,原理・原則を深く追求すること

スキルセット・マインドセットを身につけることを重要しているので,面倒でも手を動かさないと習得できないことは自明です.

たとえばプログラミングの目的の1つは,コンピュータで自動で処理できることにより人間が楽をできるようになることですが,プログラミング能力の習得を目指すのであれば,プログラミングそのものについて,人やAIに丸投げして楽をしてしまうのでは一向に身につきません.

また,たとえばコンパイラが出力するエラーや警告について,単にそれを検索するだけではなく,コンパイラやプログラミング言語の原理・原則を踏まえて,そこに書かれているメッセージの意味を理解した方が,より本質的な問題解決に至ることも多々あります.

したがって,スキルセット・マインドセットの習得のプロセスで手を抜かないこと,原理・原則を深く追求することを求めます.

週2回のゼミにて,研究進捗を報告すること,状況を速やかに指導教員にメールやチャットツール等で連絡・報告すること

前述したように「密な指導」を行うことが必要になります.ここで言う「密な指導」というのは,指導教員と学生の間で取るコミュニケーションについて,頻度が多いことと,適切なタイミングで行うことを指します.

  • 頻度という点では,週2回のゼミにて,全員に研究進捗の報告を求めます
  • 適切なタイミングという点では,研究の作業が完了したり,逆に滞ってしまったりした時に,速やかに指導教員にメールやチャットツール等で連絡・報告することを求めます

黙ったままでは全く状況がわからないので,適切な指導をすることができません.

心身の健康を保とうと努力すること

以上の前提は,心身の健康を保つ必要があります.熱心に研究を進めるあまり,心身を壊してしまうのでは,元も子もありません.適切な睡眠,適切な食事,適切な運動,適切な休息を取ることを意識してください.

もちろん元から心身の健康に支障がある人には,事前の配慮申請にしたがって適切に配慮します.

卒業研究や進路の方向性を考えるためのヒントが欲しい時

下記書籍を新品で購入して診断し,卒業研究や進路の方向性の考察の参考にしてください

  • さあ、才能(じぶん)に目覚めよう 新版 ストレングス・ファインダー2.0

けっして自分の卒業研究や進路に無関心でいないでください!

個別面談と研究室配属の選考について

山崎進研究室への入門を検討している学生は,必ず個別面談をすることとします.

研究室配属の選考で最も重視するのは,学生1人1人の希望と当方の研究の方向性とのマッチングであると考えています.

したがって,学生1人1人に向き合う必要があるので,個別面談を行います.友達と一緒に面談することはできません.

個別面談にあたっては,自分の卒業研究や進路について,あらかじめ考察しておいてください.また,面談内容を踏まえた時に,他の研究室を薦めることは大いにあります.

注意点として,マッチングが機能しなくなるので,個別面談では誠実かつ正直であってください.

用いるプログラミング言語について

山崎進研究室で書くプログラミング言語としては次のものが挙げられます.

  • C, Elixir, アセンブリ言語(RISC-V, ARM)

下記のプログラミング言語が加わる可能性もあります.

  • (SystemVerilog, Rust, Javascript, Objective-C, SQL, アセンブリ言語(x86_64), Swift, Erlang)

読む可能性があるプログラミング言語として次のものが挙げられます(主に上記言語への移植が目的).

  • Python, MATLAB, R, Perl, Julia, C#, GraphQL, VHDL, Chisel, PHP, Ruby, Java, Scala, …

自分で勉強する分には,どんなプログラミング言語でも勉強して構いません(ただし研究とは別になります) .

<< 2023年の研究目標 最近の山崎進の研究スタイル>>