講習会

for 塾生

✔︎募集中

Rust言語入門

12/15(月)、12/17(水)、12/19(金)18:15-20:15

回数:全6コマ(1日2コマx3日間)

形式:対面

主催:AIC

締切:12/12(金)12:00

安全で高速なプログラミング言語「Rust」のコード設計思考の基礎を身につけよう!

講習会の概要

本講習会では、安全で高速なプログラミング言語Rustの基礎を、Python学習者に分かりやすく体系的にレクチャーします。プログラムの書き方や実行方法から始まり、変数・関数・制御構文から、所有権や借用などRust特有の概念、エラーハンドリング、モジュール化、外部クレートの活用までを実践的に学びます。最終的にはプロジェクトを自力で構築するための、基本的な機能利用の方法と注意点、安全で効率的なコード設計思考の基礎を身につけることを目指します。

受講要件

塾生(学部・学年不問)および教職員

  • Rust言語に興味のある方(文理学年不問)。ただし、AICのオンデマンド講習会「初めてのプログラミング ~AIのためのPython~step1」を受講済、もしくは同等レベルの知識を有する方、または初歩的なプログラミングの知識をすでに身につけている方が対象です。
  • Python以外の言語を扱ってみたい、静的型付言語に触れてみたい方。

形式

対面(日吉協生館2階 AICラウンジ
※12/19(金)は生成AIラボ(ラウンジの隣)で行います。
※録画およびオンライン配信の予定はありません。

持ち物・用意する物

必須:ノートPC(Windows, MacOS, Linuxを問わず)
推奨:Rustの実行環境(rustup, rustc, cargo コマンドが実行できる環境)
補足:講義内で実行環境を構築するための時間を取る予定ですが、担当者の実行環境がMacOS上であるため、それ以外の環境構築に関しては対応できない可能性があります。不安のある方は自身であらかじめ構築しておくことを推奨いたします。
参考:Rustをインストール

定員

30名
※応募者多数の場合、早期申込締切または抽選となる場合があります。あらかじめご了承ください。

講師

有井 知真(理工学研究科研究科 開放環境科学専攻 博士1年)

各回の実施内容

12/15(月)

第1回18:15-19:15Rust言語の基本的な書き方、実行方法、エラーの読み方を習得します。
Rustのインストールに始まり、rustcを用いたプログラムのバイナリファイルへのコンパイル、cargoを用いたプロジェクトの作成と実行方法を学び、printlnマクロを用いた標準出力、不変変数の宣言、演算の基本を学びます。またPythonのみを学習してきた方がいる場合はその違いについても軽く触れて解説していきます。学習の中で出てくるエラーを読みながらRustの基本を学びます。
第2回19:15-20:15Rust言語の基本文法と制御構造を習得します。
まずif構文による条件分岐の書き方を学んだのち、列挙子Enumとmatch構文を用いた条件分岐について学びます。次にloop, while, for構文による繰り返し処理を学びます。最後に関数の定義について所有権の概念に軽く触れながら学び、演習として簡単なプログラムを関数として実装します。


12/17(水)


第3回
18:15-19:15Rust言語の特徴である所有権、借用の概念と、それに伴うスコープの関係について習得します。
Rustの所有権の概念はRust言語の重要な機能の一つであり、これによりガーベジコレクタなしで安全性を担保することが可能となります。この機能を十分に理解し活用するために、不変参照と可変参照のルールについて学んだのち、文字列操作を通じてその具体的な挙動について学びます。
第4回19:15-20:15データ構造とパターンマッチについて学びます。
配列、ベクタ、タプル、スライスなどの構造体について学び、自分で構造体(struct)や列挙子(enum)を定義します。パターンマッチなどを利用してメソッドの定義をし、構造体の基本を押さえます。演習としては列挙子を用いたトランプの実装や、構造体を用いたサイコロの実装などを行い、構造体を使う基礎を身につけます。
同時にグローバル変数を用いない再帰関数の安全な実装も構造体を通じて実装します。


12/19(金)

第5回18:15-19:15Result型とOption型によるエラーハンドリングと、トレート、ジェネリクスを用いた抽象化について学びます。
異なる型に対して共通する振る舞いを定義する機能の一つがジェネリクスです。またRustにはObject指向言語によくある継承の機能が存在しておらず、代わりにトレートという機能が存在しています。この機能を組み合わせることで、特定の振る舞いをする型のみにジェネリクスを適用することができます。また例外処理を一手に引き受けるResult型とその特殊型であるOption型を用いたエラーハンドリングについて学習します。
第6回19:15-20:15モジュールとクレートについて学びます。
Rustには肥大化するプロジェクトをライブラリと実行ファイルに分割する方法、外部のモジュール(クレート)を利用する方法があります。RustではプロジェクトをCargoという形で作成することができ、適切にファイルを分割することで機能を利用しやすく、理解しやすい形でプログラムを整理することができます。また作成したパッケージを共有する方法として、Rustにはcrate.ioいうサイトが用意されており、ここから様々な機能をクレートとして利用することが可能です。実際に機能の分割と外部モジュールの利用を体感し、今後自分で利用するための基礎を身につけます。
ページトップ