プログラミング応用

科目基礎情報

学校 茨城工業高等専門学校 開講年度 令和03年度 (2021年度)
授業科目 プログラミング応用
科目番号 0089 科目区分 専門 / 選択
授業形態 講義 単位の種別と単位数 学修単位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週 記号処理のためのデータ構造(3) 高階関数の基礎と無名関数を用いた応用
5週 記号処理のためのデータ構造(4) 汎用的な関数型処理の実装と応用
6週 ラムダ計算の基礎(1) ラムダ抽象,関数適用,束縛変数,α変換,β簡約
7週 ラムダ計算の基礎(2) カリー化によるプログラミング応用,不動点コンビネータ
8週 (中間試験)
2ndQ
9週 記号処理評価器(1) 記号処理記述の評価の仕組みと位置付け,評価器の構造
10週 記号処理評価器(2) 構文評価のアルゴリズムと実装
11週 記号処理評価器(3) データ構造評価のアルゴリズムと実装
12週 記号処理評価器(4) レキシカルスコープとダイナミックスコープ
13週 メタプログラミング(1) 他の言語のマクロとの違い,抽象構文木
14週 メタプログラミング(2) メタプログラミングによる応用例
15週 (期末試験)
16週 総復習

評価割合

試験発表相互評価態度ポートフォリオその他合計
総合評価割合10000000100
基礎的能力0000000
専門的能力10000000100
分野横断的能力0000000