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

文字サイズ 

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

講義の概要とねらい

この授業では、プログラムを完成させることに加え、計算機システムの機能を分析した上で、適切なステップを踏みつつ段階的にプログラムを完成させる過程を重視します。システムの分析し、その性質を記述し、技術的な問題点を明らかにしつつ、適切な実装手段を選択する能力を培います。

到達目標

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

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

キーワード

プログラミング、ソフトウェア開発、関数型プログラミング、Scala

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

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

授業の進め方

Zoomを用いた遠隔講義・演習を実施する。講義と演習は相互に連携する。演習では個人的な課題のほか、グループワークに取り組む。

授業計画・課題

  授業計画 課題
第1回 Scala のプログラムと Scala の開発 Scala 言語と開発環境について学ぶ
第2回 Scala の復習 Scala の文法と意味論について再確認する
第3回 状態 状態とその表現について学ぶ
第4回 イベント処理 イベント処理、および付随する副作用と例外処理について学ぶ
第5回 高階関数 高階関数の利用方法を学ぶ
第6回 状態表現の拡張 既存の状態表現を拡張する技術について学ぶ
第7回 グラフ構造の表現 グラフ構造の表現方法を学ぶ
第8回 グラフアルゴリズム グラフを分析するいくつかの代表的なアルゴリズムを学ぶ
第9回 オブジェクトとクラス データ構造を抽象化した概念としてオブジェクトとクラスについて学ぶ
第10回 ゲーム戦略と枝刈り (1) ゲーム戦略と枝刈りについて学ぶ
第11回 ゲーム戦略と枝刈り (2) ゲーム戦略と枝刈りについて学ぶ(続き)
第12回 並行計算と並列実行(データ並列) 並行計算と並列実行の例として構造的なデータ並列の手法を学ぶ
第13回 並行計算と並列実行(タスク並列) 並行計算と並列実行の例として Actor 計算に基づくマルチスレッドプログラミングの手法を学ぶ
第14回 超並列計算 (GPGPU) 並行計算と並列実行の例として汎用 GPU 計算の手法を学ぶ
第15回 最終発表会 (トーナメント) 演習の最終成果発表会を行う

授業時間外学修(予習・復習等)

学修効果を上げるため,教科書や配布資料等の該当箇所を参照し,「毎授業」授業内容に関する予習と復習(課題含む)をそれぞれ本学の学修規程で定められた時間を目安に行う。

教科書

なし

参考書、講義資料等

講義スライド、演習用資料、参考ビデオはT2Scholaを介して提供することを予定している。講義中に紹介するサンプルコードと演習用のプログラムはGitHubを介して提供する。

成績評価の基準及び方法

基本的な開発ツールを利用した開発ができること、小規模なプログラム開発にあたって要求分析、設計、実装する能力を有すること。講義中の小テストの達成度 (約20%)、講義、および演習中のグループワーク活動への貢献 (約20%)、およびプログラミング課題の達成度 (約60%) で評価する。

関連する科目

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

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

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

このページのトップへ