2019年度 プログラミング第一   Programming I

文字サイズ 

アップデートお知らせメールへ登録 お気に入り講義リストに追加
開講元
数理・計算科学系
担当教員名
脇田 建  叢 悠悠  森 立平  増原 英彦 
授業形態
講義 / 演習     
メディア利用科目
曜日・時限(講義室)
月7-8(W833)  火5-6(W833)  金5-6(W833)  
クラス
-
科目コード
MCS.T224
単位数
3
開講年度
2019年度
開講クォーター
3Q
シラバス更新日
2019年9月12日
講義資料更新日
-
使用言語
日本語
アクセスランキング
media

講義の概要とねらい

この授業では,プログラムを完成させることに加え,計算機システムの機能を分析した上で,適切なステップを踏みつつ段階的にプログラムを完成させる過程を重視します.システムの分析し,その性質を記述し,技術的な問題点を明らかにしつつ,適切な実装手段を選択する能力を培います.
(1回の授業あたり,講義2時限,演習1時限を行う)

到達目標

【到達目標】 自動ビルドシステム,コンパイラ,テストツール,ソフトウェアリポジトリなどを用いた現代的なプログラミング環境を効果的に利用できること,システムの状態という概念を理解し,状態を扱うプログラミングの設計・開発ができる能力を身につけること,ある程度の規模の実用性のあるソフトウェアの開発の能力を身につけることを目標とする.

【テーマ】 関数型プログラミングの初初歩を学んだ学生を対象として,状態を扱ったプログラミングの基礎を学ぶ.

キーワード

プログラミング, ソフトウェア開発, Scala, テスティング

学生が身につける力(ディグリー・ポリシー)

専門力 教養力 コミュニケーション力 展開力(探究力又は設定力) 展開力(実践力又は解決力)

授業の進め方

演習では,個人的な課題のほか,グループワークに取り組む.

授業計画・課題

  授業計画 課題
第1回 Scala のプログラムと Scala の開発 Scala 言語と開発環境について学ぶ
第2回 構造的再帰 構造的再帰のためのデザインレシピについて学ぶ
第3回 状態 状態とその表現について学ぶ
第4回 イベント処理 イベント処理、および付随する副作用と例外処理について学ぶ
第5回 高階関数 高階関数の利用方法を学ぶ
第6回 状態表現の拡張 既存の状態表現を拡張する技術について学ぶ
第7回 木構造を扱うデザインレシピ 木構造を扱う手法とそのためのデザインレシピを学ぶ(オンライン講義・詳細は講義中に周知予定)
第8回 木構造の構成、検索、探索 木構造の構成、検索、探索について学ぶ
第9回 オブジェクトとクラス データ構造を抽象化した概念としてオブジェクトとクラスについて学ぶ
第10回 ゲーム戦略と枝刈り (1) ゲーム戦略と枝刈りについて学ぶ
第11回 ゲーム戦略と枝刈り (2) ゲーム戦略と枝刈りについて学ぶ(続き)
第12回 並行計算と並列実行(データ並列) 並行計算と並列実行の例として構造的なデータ並列の手法を学ぶ
第13回 並行計算と並列実行(タスク並列) 並行計算と並列実行の例として Actor 計算に基づくマルチスレッドプログラミングの手法を学ぶ
第14回 超並列計算 (GPGPU) 並行計算と並列実行の例として汎用 GPU 計算の手法を学ぶ
第15回 最終発表会 (トーナメント) 演習の最終成果発表会を行う

教科書

未定

参考書、講義資料等

講義資料は GitHub に補間し,GitHubリポジトリの情報は OCW-i を介して通知します.

成績評価の基準及び方法

基本的な開発ツールを利用した開発ができること,小規模なプログラム開発にあたって要求分析、設計、実装する能力を有すること.小テスト(20%),およびレポート課題(80%)で評価する.

関連する科目

  • MCS.T204 : 計算機科学概論

履修の条件(知識・技能・履修済科目等)

MCS.T204 (計算機科学概論)を履修すること.

このページのトップへ