i217 Functional Programming @ Tokyo 

Lecturer: OGATA, Kazuhiro (email: ogata at jaist dot ac dot jp)
Term: Jun 12 - Sep 18, 2022

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


- Jun 27: The submission deadlines of all HWs have been fixed.
- JunMay 25: Classes will be held in person at Tokyo Satellite. Class videos are to be taken and then you can watch them anywhere you want to do later, but you are strongly recommended to participate in classes in person. Please bring your computer with you when participating in classes because you may have time to tackle exercises that may require you to write programs and run them with your computer in classes; moreover, if the number of participants is over 20, you may want to participate in classes in the designated place of the lounge with Webex due to the limited capacity of the room used.
- JunMay 25: 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.
- JunMay 25: CafeOBJ System Version 1.5.7 is used in this course. Please download it from here and install it on your laptop. Please consult here on how to install CafeOBJ. Please bring your computer with you at each class.
- JunMay 25: This website was open.

How 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. Please read this in advance.


- 15:40-17:20, Sep 18, Sunday


Part of the exercises found in the lecture notes are the assignment problems. The details, such as the submission deadine, will be described at classes.

Class schedule (lecture notes)

13:50-15:30, Jun 12, Sunday
1. Sorts, Operators, Terms and Equations (lecture note 1)
Submission deadline of HW1: Jun 28

15:40-17:20, Jun 12, Sunday
2. Modules, Order Sorts and Lists of Natural Numbers (lecture note 2)
Submission deadline of HW2: Jun 28

13:50-15:30, Jun 19, Sunday
3. Tern Rewriting (lecture note 3)
Submission deadline of HW3: Jul 17

15:40-17:20. Jun 19, Sunday
Tutorial Hour

13:50-15:30, Jul 10, Ssunday
4. Parametrized Modules (lecture note 4)
Submission deadline of HW4: Jul 31

15:40-17:20, Jul 10, Sunday
5. Tables (lecture note 5
Submission deadline of HW5: Jul 31

13:50-15:30, Jul 17, Sunday
6. Infinite Lists (lecture note 6)
Submission deadline of HW6: Aug 7

15:40-17:20, Jul 17, Sunday
7. Multisets (lecture note 7)
Submission deadline of HW7: Aug 7

13:50-15:30, Jul 24, Sunday
8. A Programming Language Processor - Interpreter (lecture note 8)

15:40-17:20, Jul 24, Sunday
9. A Programming Language Processor - Virtual Machine (lecture note 9)

13:50-15:30, Jul 31, Sunday
10. A Programming Language Processor - Compiler (lecture note 10)
Submission deadline of HW8, 9 and 10: Aug 8: Aug 28

15:40-17:20, Jul 31, Sunday
11. Program Verification - Natural Numbers (lecture note 11)
Submission deadline of HW11: Sep 11

13:50-15:30, Sep 4, Sunday
12. Pregram Verification - Lists (lecture note 12)
Submission deadline of HW12: Sep 18

15:40-17:20, Sep 4, Sunday
Tutorial Hour

13:50-15:30, Sep 11, Sunday
13. Verification of Arithmetic Caclulator Compiler (lecture note 13)
Submission deadline of HW13: Sep 25

15:40-17:20, Sep 11, Sunday
14. Proof Assistant (lecture note 14)
Submission deadline of HW14: Sep 25

13:50-15:30, Sep 18, Sunday
Tutorial Hour

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




Jun 27, 2022; May 26 Updated; May 25, 2022 Created by K. Ogata