Object Oriented Language
- 2012 年度版 (2013年度版準備中)
Instructor
Goal and Theme
オブジェクト指向言語と関数型言語を融合したプログラミング言語である Scala の基本について学びます。Scala は Java をベースに機能拡張されたプログラミング言語です。Java の問題点がどのように解決されたのかを学ぶことができます。
Abstract
授業は、最初の数回を利用して、Scalaインタプリタやコンパイラなどの基本的な使い方と基本構文について演習します。その後は輪講形式になり、参加者は Scala の特徴的な機能について調査し、サンプルコードを書いて、受講生の前でプレゼンテーションを行います。プレゼンテーションでは、単に Scala の機能を説明することにとどまらず、オブジェクト指向や関数型としての位置づけ、効用などを明らかにすることが求められます。
Schedule
| 回 | テーマ | 内容 |
|---|---|---|
| 1 | Scala の概要 | Scala 言語のインタープリタの起動方法、スクリプトの実行方法、コンパイル方法などを学びます。 |
| 2 | 基本型と演算子 | scala の基本型、リテラルについて学びます。 |
| 3 | Scala の基本文法 | var と val の違い、foreach, while, if, def, tuple などの基本構文について学びます。 |
| 4 | 型推論 | scala の型推論について学びます。静的型づけと動的型付けの違いについて理解します。 |
| 5 | クラスとオブジェクト | class 定義に加え、シングルトンオブジェクトを扱う object 定義を学びます。 |
| 6 | 関数とクロージャ | 関数の考え方と、関数リテラルやクロージャについて学びます。 |
| 7 | コレクション | List, Array, Map, Set の使い方と、mutable と imutable の違いなどについて学びます。 |
| 8 | for式、if式, map | for式、if式 や map の概念と利用方法について学びます。 |
| 9 | 継承と trait | trait の仕組み、ミックスイン合成のメカニズムを学びます。 |
| 10 | ケースクラス | ケースクラスの概念と利用方法について学びます。 |
| 11 | パターンマッチ | match 文、正規表現などについて学びます。 |
| 12 | 入出力とXML | scala における入出力の方法、XMLの扱いについて学びます。 |
| 13 | 型パラメータと抽象メンバー | 型のパラメータ化と抽象メンバーについて学びます。 |
| 14 | 並行プログラミング | アクターをはじめとする scala で記述する並行プログラミングの手法を学びます。 |
| 15 | まとめ | Scala プログラミング言語の特徴について総括します。 |
授業外に行うべき学習活動
プレゼンテーションの準備のために、Scala の機能について事前調査します。また、講義ででてきた機能を使ったサンプルコードの作成を行います。講義の終了要件として、Scala の特徴的機能を利用したコードと、その説明を書いたレポートを求めます。これを完成するための自主学習を必要とします。
Materials
オンラインテキストを利用
References
タイトル: Scalaスケーラブルプログラミング第2版, 著者: Martin Odersky (著), Lex Spoon (著), Bill Venners (著), 羽生田 栄一 (監修), 水島 宏太 (その他), 長尾 高弘 (翻訳) 出版年: 2011年 出版社: インプレスジャパン
Evaluation Method
授業への積極的参加態度(10%) プレゼンテーション(40%) レポート提出(50%)
情報機器使用
ネットワークを利用 演習にはノートPCを用いる
前年度の授業改善アンケートからの気づき
学生のプログラミングスキルを高められるよう、授業内に議論をする機会を増やす。