シラバス情報

科目授業名称(和文) Name of the subject/class (in Japanese)
計算機科学基礎実験
科目授業名称(英文) Name of the subject/class (in English)
Basic Experiments in Computer Sciences
授業コード Class code
9963317
科目番号 Course number
63CSPRL203

教員名
澤田 隼、多賀 祥平、滝本 宗宏
Instructor
Munehiro Takimoto

開講年度学期
2024年度前期
Year/Semester
2024/First Semester
曜日時限
水曜3限、水曜4限、金曜3限、金曜4限
Class hours
Wednesday 3rd. Period
Wednesday 4th. Period
Friday 3rd. Period
Friday 4th. Period

開講学科・専攻 Department
創域理工学部 情報計算科学科

Department of Information Sciences, Faculty of Science and Technology
単位数 Course credit
2.0単位
授業の方法 Teaching method
実験

Experiment
外国語のみの科目(使用言語) Course in only foreign languages (languages)
-
授業の主な実施形態 Main class format
① [対面]対面授業/ [On-site] On-site class

概要 Description
関数型プログラミング言語を用いて,関数的プログラミングを修得する.
目的 Objectives
関数型言語の1つであるOCamlを用いて,強い型付け,高階関数,多相型,抽象データ型等の特徴を実際にプログラミングし,その応用として簡単な言語処理系を作成する。これによって、コンパイラ、画像処理、数値処理等を関数型言語でプログラミングする能力を身に付ける.
本学科のディプロマ・ポリシーにある「情報科学分野に応じた基礎学力」を身に付け,「自然科学・科学技術の分野のみならず社会における多様な情報を論理的に分析し、問題の発見、さらにはその解決に貢献しうる能力」を獲得するための科目である.
到達目標 Outcomes
1. 高階関数を理解し,プログラミングに利用できるようになる.
2. 型付きの強い言語を理解し,誤りの少ないプログラミングができるようになる.
3. 型推論について理解し,多相型とは何か,説明できるようになる.
4. パターンマッチングを用いた,単純なプログラミングができるようになる.
5. モジュールや,ファンクタを理解し,型による情報隠ぺいを表現できるようになる.
6. Prologの処理系の仕組みを理解し,実現できるようになる.
卒業認定・学位授与の方針との関係(学部科目のみ)
リンク先の [評価項目と科目の対応一覧]から確認できます(学部対象)。
履修登録の際に参照ください。
​You can check this from “Correspondence table between grading items and subjects” by following the link(for departments).
https://www.tus.ac.jp/fd/ict_tusrubric/​​​
履修上の注意 Course notes prerequisites
プログラム言語2を同時に履修することが望ましい
アクティブ・ラーニング科目 Teaching type(Active Learning)
-
-

準備学習・復習 Preparation and review
講義のWebページや配布資料を参照し、事前に演習内容を理解しておくこと。
レポートは、結果だけでなく学習目的をよく理解した上で、検討や考察を書くことが必要である。
成績評価方法 Performance grading policy
レポートと実験態度に基づく。
学修成果の評価 Evaluation of academic achievement
・S:到達目標を十分に達成し、極めて優秀な成果を収めている
・A:到達目標を十分に達成している
・B:到達目標を達成している
・C:到達目標を最低限達成している
・D:到達目標を達成していない
・-:学修成果の評価を判断する要件を欠格している

・S:Achieved outcomes, excellent result
・A:Achieved outcomes, good result
・B:Achieved outcomes
・C:Minimally achieved outcomes
・D:Did not achieve outcomes
・-:Failed to meet even the minimal requirements for evaluation

教科書 Textbooks/Readings
教科書の使用有無(有=Y , 無=N) Textbook used(Y for yes, N for no)
N
書誌情報 Bibliographic information
-
MyKiTSのURL(教科書販売サイト) URL for MyKiTS(textbook sales site)
教科書および一部の参考書は、MyKiTS (教科書販売サイト) から検索・購入可能です。
https://mirai.kinokuniya.co.jp/tokyorika/​​​

It is possible to search for and purchase textbooks and certain reference materials at MyKiTS (online textbook store).
​​https://mirai.kinokuniya.co.jp/tokyorika/

参考書・その他資料 Reference and other materials
プログラミングの基礎,浅井健一著,サイエンス社. 
入門OCaml,OCaml-Nagoya著,毎日コミュニケーションズ.
プログラミング言語の基礎概念,五十嵐淳著,サイエンス社.



授業計画 Class plan
1.MLの基礎:MLの関数的プログラミングの基礎である変数・関数の定義を習熟する。

2.MLの基本的データ:MLの基本的なデータの整数・実数・ブール・文字・文字列および組・リストを習熟する。

3.再帰関数:再帰関数の定義・適用を学び,パターンを用いた関数呼出しを習熟する。

4.高階関数:高階関数とカリー化を用いたプログラミングを習熟する。

5.入出力関数:入出力関数を用いたファイル操作を習熟する。

6.データ型:新しいデータ型の定義法を学び,それを用いたプログラミングを習熟する。

7.文字処理:文字および文字列の処理を習熟する。

8.ソーティング:応用的プログラミングとしてソーティング法を習熟する。

9.抽象データ型の基礎:スタックを抽象型で定義する。つぎにストラクチャ,シグニチャ,ファンクタを用いてスタックをプログラミングすることを学ぶ。

10.抽象データ型キュー・2分木:キュー,2分木の抽象データ型を定義し,操作を習熟する。
     

11.抽象データ型2分探索木:2分探索木等の様々な抽象データ型を定義し,操作を習熟する。

12. 言語処理系の作成(字句解析器):以降4回で,言語処理系の作成をとおして,OCamlを用いた実践的なプログラミングを学ぶ.1回目は,字句解析器の理解と作成法を学ぶ。

13. 言語処理系の作成(構文解析器): 構文解析器の理解と作成法を学ぶ。

14. 言語処理系の作成(推論エンジン):機械的に推論する基本的な理論と実現について学ぶ.
15. 言語処理系の作成(論理型言語の実現):既に作成した字句および構文の解析結果と推論エンジンを組み合わせて論理型言語処理系を完成させる。


授業担当者の実務経験 Work experience of the instructor of the class
-
教育用ソフトウェア Educational software
-
プログラミング言語OCaml

備考 Remarks
資料はプリント配布またはWeb公開による

授業でのBYOD PCの利用有無 Whether or not students may use BYOD PCs in class
-
授業での仮想PCの利用有無 Whether or not students may use a virtual PC in class
-