i217 Functional Programming 

Lecturer: OGATA, Kazuhiro (email: ogata at jaist dot ac dot jp)
Term: 1-2 (June 8 - July 27, 2017)
Place: Room i1

How to tackle:
Class schedule (lecture notes)
A programming language Minila (used at 8th, 9th & 10th classes)


- June 6, Tuesday The lecturer will explain how students are supposed tacke i217 on June 8, Thursday. Therefore, those who will take i217 should attend the class on the date.
- June 6, Tuesday NO PLAGIARISM. Plagiarism is strongly prohibited. Do not plagiarize any pieces of programs and/or reports written by others, and do no let others plagiarize any pieces of programs and/or reports written by you. If the lecturer finds any pieces of plagiarism in submitted programs and/or reports, he will formally process the plagiarism. The students who have been involved in the plagiarism will never succeed in taking the credits of the course and moreover may be seriously punished.
- June 6, Tuesday The latest version of CafeOBJ is used in this course. Please donwload it from here and instal it on your laptop. Please consult here on how to install CafeOBJ. Please bring your laptop with you at each class.
- June 6, Tuesday This website was open.

Ho to tackle

For each class, learn the lecture note in advance, solve the exercises found in the lecture note, clarify what you have not understood and attend the class. At the class, ask the lecturer about what you have not understood to get better understandings of them. After the class, solve the exercises you have not solved to confirm your understandings. Solving the exercises is part of the assignments, and then you are supposed to do so if you want to get the credits of the course. Programs used in the course are not to be given intentionally but required to be typed by each participant, which is part of the exercises.


- 13:30-15:10, July 25, Tuesday


The exercises found in the lecture notes are the assignment problems. Participants are supposed to write a report for each class and submit it to the lecturer. The details will be explained at classes.

Class schedule (lecture notes)

0. Explanation on how to tackle this course (how2tackle)

9:00-10:40, June 13, Tuesday
1. Sorts, Operators, Terms and Equations (lecture note 1)

10:50-12:30, June 15, Thursday
2. Modules, Order Sorts and Lists of Natural Numbers (lecture note 2)

9:00-10:40, June 20, Tuesday
3. Tern Rewriting (lecture note 3)

13:30-15:10, June 20, Tuesday
4. Parametrized Modules (lecture note 4)

10:50-12:30, June 22, Thursday
5. Tables (lecture note 5)

9:00-10:40, June 27, Tuesday
6. Infinite Lists (lecture note 6)

13:30-15:10, June 27, Tuesday
7. Multisets (lecture note 7)

10:50-12:30, June 29, Thursday
8. A Programming Language Processor - Interpreter (lecture note 8)

9:00-10:40, July 4, Tuesday
9. A Programming Language Processor - Virtual Machine (lecture note 9)

13:30-15:10, July 4, Tuesday
10. A Programming Language Processor - Compiler (lecture note 10)

10:50-12:30, July 6, Thursday
11. Program Verification - Natural Numbers (lecture note 11)

9:00-10:40, July 11, Tuesday
12. Pregram Verification - Lists (lecture note 12)

13:30-15:10, July 11, Tuesday
13. Verification of Arithmetic Caclulator Compiler (lecture note 13)

10:50-12:30, July 13, Thursday
14. Proof Assistant (lecture note 14)

A Programming Language Minila (used at 8th, 9th & 10th classes)




June 06, 2017 Updated by K. Ogata