講習会
for 塾生
✔︎募集中
12/15(月)、12/17(水)、12/19(金)18:15-20:15
回数:全6コマ(1日2コマx3日間)
形式:対面
主催:AIC
締切:12/12(金)12:00
安全で高速なプログラミング言語「Rust」のコード設計思考の基礎を身につけよう!
本講習会では、安全で高速なプログラミング言語Rustの基礎を、Python学習者に分かりやすく体系的にレクチャーします。プログラムの書き方や実行方法から始まり、変数・関数・制御構文から、所有権や借用などRust特有の概念、エラーハンドリング、モジュール化、外部クレートの活用までを実践的に学びます。最終的にはプロジェクトを自力で構築するための、基本的な機能利用の方法と注意点、安全で効率的なコード設計思考の基礎を身につけることを目指します。
塾生(学部・学年不問)および教職員
対面(日吉協生館2階 AICラウンジ)
※12/19(金)は生成AIラボ(ラウンジの隣)で行います。
※録画およびオンライン配信の予定はありません。
必須:ノートPC(Windows, MacOS, Linuxを問わず)
推奨:Rustの実行環境(rustup, rustc, cargo コマンドが実行できる環境)
補足:講義内で実行環境を構築するための時間を取る予定ですが、担当者の実行環境がMacOS上であるため、それ以外の環境構築に関しては対応できない可能性があります。不安のある方は自身であらかじめ構築しておくことを推奨いたします。
参考:Rustをインストール
30名
※応募者多数の場合、早期申込締切または抽選となる場合があります。あらかじめご了承ください。
有井 知真(理工学研究科研究科 開放環境科学専攻 博士1年)
| 第1回 | 18:15-19:15 | Rust言語の基本的な書き方、実行方法、エラーの読み方を習得します。 Rustのインストールに始まり、rustcを用いたプログラムのバイナリファイルへのコンパイル、cargoを用いたプロジェクトの作成と実行方法を学び、printlnマクロを用いた標準出力、不変変数の宣言、演算の基本を学びます。またPythonのみを学習してきた方がいる場合はその違いについても軽く触れて解説していきます。学習の中で出てくるエラーを読みながらRustの基本を学びます。 |
| 第2回 | 19:15-20:15 | Rust言語の基本文法と制御構造を習得します。 まずif構文による条件分岐の書き方を学んだのち、列挙子Enumとmatch構文を用いた条件分岐について学びます。次にloop, while, for構文による繰り返し処理を学びます。最後に関数の定義について所有権の概念に軽く触れながら学び、演習として簡単なプログラムを関数として実装します。 |
第3回 | 18:15-19:15 | Rust言語の特徴である所有権、借用の概念と、それに伴うスコープの関係について習得します。 Rustの所有権の概念はRust言語の重要な機能の一つであり、これによりガーベジコレクタなしで安全性を担保することが可能となります。この機能を十分に理解し活用するために、不変参照と可変参照のルールについて学んだのち、文字列操作を通じてその具体的な挙動について学びます。 |
| 第4回 | 19:15-20:15 | データ構造とパターンマッチについて学びます。 配列、ベクタ、タプル、スライスなどの構造体について学び、自分で構造体(struct)や列挙子(enum)を定義します。パターンマッチなどを利用してメソッドの定義をし、構造体の基本を押さえます。演習としては列挙子を用いたトランプの実装や、構造体を用いたサイコロの実装などを行い、構造体を使う基礎を身につけます。 同時にグローバル変数を用いない再帰関数の安全な実装も構造体を通じて実装します。 |
| 第5回 | 18:15-19:15 | Result型とOption型によるエラーハンドリングと、トレート、ジェネリクスを用いた抽象化について学びます。 異なる型に対して共通する振る舞いを定義する機能の一つがジェネリクスです。またRustにはObject指向言語によくある継承の機能が存在しておらず、代わりにトレートという機能が存在しています。この機能を組み合わせることで、特定の振る舞いをする型のみにジェネリクスを適用することができます。また例外処理を一手に引き受けるResult型とその特殊型であるOption型を用いたエラーハンドリングについて学習します。 |
| 第6回 | 19:15-20:15 | モジュールとクレートについて学びます。 Rustには肥大化するプロジェクトをライブラリと実行ファイルに分割する方法、外部のモジュール(クレート)を利用する方法があります。RustではプロジェクトをCargoという形で作成することができ、適切にファイルを分割することで機能を利用しやすく、理解しやすい形でプログラムを整理することができます。また作成したパッケージを共有する方法として、Rustにはcrate.ioいうサイトが用意されており、ここから様々な機能をクレートとして利用することが可能です。実際に機能の分割と外部モジュールの利用を体感し、今後自分で利用するための基礎を身につけます。 |
