プログラミング応用

科目基礎情報

学校 茨城工業高等専門学校 開講年度 令和06年度 (2024年度)
授業科目 プログラミング応用
科目番号 0083 科目区分 専門 / 選択
授業形態 講義 単位の種別と単位数 学修単位II: 2
開設学科 国際創造工学科 機械・制御系(機械コース) 対象学年 4
開設期 前期 週時間数 前期:2
教科書/教材 資料配布,参考書:Structure and Interpretation of Computer Programs (MIT Press)
担当教員 滝沢 陽三

到達目標

関数型プログラミングに必要な考え方を理解し,データサイエンス分野における様々な問題を解決するための応用力を身につける.

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
評価項目1ラムダ計算に基づく関数型パラダイムを理解し,様々な問題を解決する方法を身につける.ラムダ計算に基づく関数型パラダイムを理解する.ラムダ計算に基づく関数型パラダイムが理解できない.
評価項目2複数のプログラミング言語における関数型パラダイムについて理解し,実践的な応用方法を身につける.複数のプログラミング言語における関数型パラダイムについて理解する.複数のプログラミング言語における関数型パラダイムについて理解できない.
評価項目3評価器実装を含むメタプログラミングについて理解し,プログラムをデータとして扱う方法を身につける.評価器実装を含むメタプログラミングについて理解する.メタプログラミングについて理解できない.

学科の到達目標項目との関係

学習・教育到達度目標 (A) 説明 閉じる

教育方法等

概要:
データサイエンス分野で必要とされるプログラミング技術には,多くの言語が従来より採用している手続き型やオブジェクト指向型だけでなく,数学における関数の概念を基にした関数型のパラダイムに基づく手法がある.この科目では,近年,多くのプログラミング言語で採用されている関数型パラダイムについて,理論的な基礎となる型無しラムダ計算に基づくプログラミング手法と,メタプログラミングの機能を備えた評価器実装のために必要な事柄を理解する.
授業の進め方・方法:
講義では,資料や板書による概念・手法の解説を,コンピュータを用いた実機デモと併せて行う.講義回ごとに演習課題を提示し,各自が用意するプログラミング環境を用いて演習を進める.
注意点:
講義中においても必要なプログラムの実装および実行確認を行う必要があるため,ノートPCや携帯端末による所定のプログラミング環境の各自所有・利用が必須である.

授業の属性・履修上の区分

アクティブラーニング
ICT 利用
遠隔授業対応
実務経験のある教員による授業

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 関数型プログラミングの位置付けと歴史 関数型パラダイムとコンピュータの関係,プログラミング言語の特徴と歴史について理解する.
2週 関数型プログラミングにおける手続きの表現(1) 関数の表現と式の評価,ラムダ式による関数定義,述語関数と判断分岐,値への名前付けについて理解し,応用できる.
3週 関数型プログラミングにおける手続きの表現(2) ループ式による関数適用,末尾再帰による繰り返しについて理解し,応用できる.
4週 関数型プログラミングにおけるデータ構造(1) 連結リストの構造,連想リストの活用,主要なリスト処理アルゴリズム,記号処理プログラミングについて理解し,応用できる.
5週 関数型プログラミングにおけるデータ構造(2) 高階関数の利用,遅延評価の考え方について理解し,応用できる.
6週 複数のプログラミング言語における関数型パラダイム応用(1) ラムダ式,三項演算子,配列,ハッシュテーブルについて理解し,応用できる.
7週 複数のプログラミング言語における関数型パラダイム応用(2) 関数型パラダイムのためのライブラリについて理解し,応用できる.
8週 (中間試験)
2ndQ
9週 ラムダ計算の基礎(1) ラムダ抽象,関数適用,束縛変数,α変換,β簡約について理解する.
10週 ラムダ計算の基礎(2) カリー化によるプログラミング応用,不動点コンビネータについて理解し,応用できる.
11週 記号処理評価器の実装(1) 関数型記述の評価の仕組みと位置付け,評価器の構造および構文評価のアルゴリズムと実装について理解し,応用できる.
12週 記号処理評価器の実装(2) データ構造評価のアルゴリズムと実装,レキシカルスコープとダイナミックスコープについて理解し,応用できる.
13週 メタプログラミング(1) 他の言語のマクロとの違い,抽象構文木について理解する.
14週 メタプログラミング(2) メタプログラミングによる応用例について理解する.
15週 (期末試験)
16週 総復習

評価割合

試験合計
総合評価割合100100
基礎的能力00
専門的能力100100
分野横断的能力00