2024年度 学院等開講科目 情報理工学院 数理・計算科学系
プログラミング第一
- 開講元
- 数理・計算科学系
- 担当教員
- 脇田 建 / 七島 幹人
- 授業形態
- 講義/演習 (対面型)
- メディア利用科目
- -
- 曜日・時限
(講義室) - 月7-8 (W8E-307(W833)) / 火5-6 (W8E-307(W833)) / 金5-6 (W8E-307(W833))
- クラス
- -
- 科目コード
- MCS.T224
- 単位数
- 210
- 開講時期
- 2024年度
- 開講クォーター
- 3Q
- シラバス更新日
- 2025年3月17日
- 使用言語
- 日本語
シラバス
授業の目的(ねらい)、概要
この授業では、プログラムを完成させることに加え、計算機システムの機能を分析した上で、適切なステップを踏みつつ段階的にプログラムを完成させる過程を重視します。システムの分析し、その性質を記述し、技術的な問題点を明らかにしつつ、適切な実装手段を選択する能力を培います。
到達目標
【到達目標】 自動ビルドシステム、コンパイラ、テストツール、ソフトウェアリポジトリなどを用いた現代的なプログラミング環境を効果的に利用できること、システムの状態という概念を理解し、状態を扱うプログラミングの設計・開発ができる能力を身につけること、ある程度の規模の実用性のあるソフトウェアの開発の能力を身につけることを目標とする。
【テーマ】 関数型プログラミングの初初歩を学んだ学生を対象として、状態を扱ったプログラミングの基礎を学ぶ。
キーワード
プログラミング、ソフトウェア開発、関数型プログラミング、Scala
学生が身につける力
- 専門力
- 教養力
- コミュニケーション力
- 展開力 (探究力又は設定力)
- 展開力 (実践力又は解決力)
授業の進め方
講義と演習は相互に連携する。演習では個人的な課題のほか、グループワークに取り組む。
授業計画・課題
授業計画 | 課題 | |
---|---|---|
第1回 | Scala プログラミングの復習 | Scala の文法と意味論について再確認する |
第2回 | Scala のプログラムと Scala の開発 | Scala 言語と開発環境について学ぶ |
第3回 | 状態 | 状態とその表現について学ぶ |
第4回 | 例外処理 | 例外と例外処理機構について学ぶ |
第5回 | 高階関数 | 高階関数の利用方法を学ぶ |
第6回 | オブジェクトとクラス (1/2) | データ構造を抽象化した概念としてオブジェクトとクラスについて学ぶ |
第7回 | オブジェクトとクラス (2/2) | データ構造を抽象化した概念としてオブジェクトとクラスについて学ぶ |
第8回 | グラフ構造の表現とグラフアルゴリズム | グラフ構造の表現方法を学び、グラフを分析するいくつかの代表的なアルゴリズムを学ぶ |
第9回 | ゲーム戦略と枝刈り | ゲーム戦略と枝刈りについて学ぶ |
第10回 | 正規表現とその周辺 | プログラミングの場で正規表現を実践的に使う方法について学ぶ |
第11回 | 正規表現受理機械の実装 | クラス、トレイトなどを用いたインタフェイスと実装の継承などを学ぶ |
第12回 | 並行計算と並列実行(データ並列) | 並行計算と並列実行の例として構造的なデータ並列の手法を学ぶ |
第13回 | 並行計算と並列実行(タスク並列) | 並行計算と並列実行の例として Actor 計算に基づくマルチスレッドプログラミングの手法を学ぶ |
第14回 | 最終発表会 (トーナメント) | 演習の最終成果発表会を行う |
準備学修(事前学修・復習)等についての指示
学修効果を上げるため,配布資料等の該当箇所を参照し,「毎授業」授業内容に関する予習と復習(課題含む)をそれぞれ本学の学修規程で定められた時間を目安に行う。
教科書
なし
参考書、講義資料等
講義スライド、演習用資料、参考ビデオなどは T2SCHOLA、およびSlack を介して提供する。サンプルコード、演習用のプログラムはGitHubを介して提供する。
成績評価の方法及び基準
基本的な開発ツールを利用した開発ができること、小規模なプログラム開発にあたって要求分析、設計、実装する能力を有すること。講義中の小テストの達成度 (約30%)、講義、およびプログラミング課題の達成度 (約70%) で評価する。
関連する科目
- MCS.T204 : 計算機科学概論
- MCS.T213 : アルゴリズムとデータ構造
- MCS.T214 : オートマトンと数理言語論
履修の条件・注意事項
MCS.T204 (計算機科学概論)を履修すること。オートマトンと数理言語論 (MCS.T214) とアルゴリズムとデータ構造 (MCS.T213) の履修を強く薦める。