トップページへ

2026年度 (最新) 学院等開講科目 情報理工学院 数理・計算科学系

プログラミング第一

開講元
数理・計算科学系
担当教員
脇田 建 / 七島 幹人
授業形態
講義/演習
メディア利用科目
-
曜日・時限
(講義室)
クラス
-
科目コード
MCS.T224
単位数
210
開講時期
2026年度
開講クォーター
3Q
シラバス更新日
2026年3月5日
使用言語
日本語

シラバス

授業の目的(ねらい)、概要

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

到達目標

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

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

キーワード

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

学生が身につける力

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

授業の進め方

講義と演習は相互に連携する。

授業計画・課題

授業計画 課題
第1回

Scala のプログラムと Scala の開発 (1/2)

プログラムの実行方式について学ぶ

第2回

Scala のプログラムと Scala の開発 (2/2)

Scala 言語と開発環境について学ぶ

第3回

状態

状態とその表現について学ぶ

第4回

例外処理

例外と例外処理機構について学ぶ

第5回

高階関数

高階関数の利用方法を学ぶ

第6回

オブジェクトとクラス (1/2)

データ構造を抽象化した概念としてオブジェクトとクラスについて学ぶ

第7回

オブジェクトとクラス (2/2)

データ構造を抽象化した概念としてオブジェクトとクラスについて学ぶ

第8回

グラフ構造の表現とグラフアルゴリズム

グラフ構造の表現方法を学び、グラフを分析するいくつかの代表的なアルゴリズムを学ぶ

第9回

正規表現とその周辺

プログラミングの場で正規表現を実践的に使う方法について学ぶ

第10回

正規表現受理機械の実装

クラス、トレイトなどを用いたインタフェイスと実装の継承などを学ぶ

第11回

ゲーム戦略と枝刈り

ゲーム戦略と枝刈りについて学ぶ

第12回

並行計算と並列実行(データ並列)

並行計算と並列実行の例として構造的なデータ並列の手法を学ぶ

第13回

並行計算と並列実行(タスク並列)

並行計算と並列実行の例として Actor 計算に基づくマルチスレッドプログラミングの手法を学ぶ

第14回

最終発表会 (トーナメント)

演習の最終成果発表会を行う

準備学修(事前学修・復習)等についての指示

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

教科書

なし

参考書、講義資料等

講義スライド、演習用資料、参考ビデオなどは T2SCHOLA、およびSlack を介して提供する。サンプルコード、演習用のプログラムはGitHubを介して提供する。

成績評価の方法及び基準

基本的な開発ツールを利用した開発ができること、小規模なプログラム開発にあたって要求分析、設計、実装する能力を有すること。講義中の小テストの達成度、およびプログラミング課題の達成度をそれぞれ重み0.3、および0.7の加重幾何平均で算出する。

関連する科目

  • MCS.T204 : 計算機科学概論
  • MCS.T213 : アルゴリズムとデータ構造
  • MCS.T214 : オートマトンと数理言語論

履修の条件・注意事項

MCS.T204 (計算機科学概論)を履修すること。オートマトンと数理言語論 (MCS.T214) とアルゴリズムとデータ構造 (MCS.T213) の履修を強く薦める。

連絡先 (メール、電話番号) ※”[at]”を”@”(半角)に変換してください。

チャットシステム (Slack) を利用して連絡して下さい。

オフィスアワー

チャットシステム (Slack) を利用して常時サポートします。