科目の概要
到達目標
ビルドシステム,コンパイラ,デバッガ,テストツールなどを用いた現代的なプログラミング環境を効果的に利用できること,システムの状態という概念を理解し,状態を扱うプログラミングの設計・開発ができる能力を身につけること,ある程度の規模の実用性のあるソフトウェアの開発の能力を身につけることを目標とする.
テーマ
関数型プログラミングの初初歩を学んだ学生を対象として,状態を扱ったプログラミングの基礎を学ぶ.
授業計画
- プログラム,コンパイラ,実行可能形式: スライド,サンプルコード,課題と宿題
- 単体テスト,テスト駆動開発: スライド, 課題と宿題
- デバッグ,デバッガの利用: スライド, プログラム集 (
src/lx03[a-e].scala
) - 数値データ,浮動小数点数の表現,誤差と誤差の蓄積
- Scalaのプログラム(モジュール,パッケージ,trait,多相性,可変変数,代入): 解説
- 変数を用いたプログラムのデザインレシピ: スライド, プログラム集 (`https://github.com/titech-is-cs115/lx06)
- 状態変化を伴うプログラミング
- 複合的な構造を持つデータの扱い
- オブジェクトとクラス
- 例外処理
- 応用実習プロジェクト:システムの雛形
- 応用実習プロジェクト:拡張(データ形式の拡張)
- 応用実習プロジェクト:拡張(機能の拡張)
- 応用実習プロジェクト:入出力,データ交換
- 総括
成績評価の基準及び方法
ビルドシステム,テストシステム,デバッガなどの基本的な開発ツールを利用した開発ができること,小規模なプログラム開発にあたって要求を分析し,プログラムとして構成する能力を有すること,グラフィカルユーザインタフェイスを有する小規模のプロジェクトを設計し実装する能力を身につけることを評価する.小テスト(30%),およびレポート課題(70%)で評価する.