i217 Functional Programming 

Lecturers: OGATA, Kazuhiro (email: ogata at jaist dot ac dot jp) and DO, Canh Minh (email: canhdo at jaist dot ac dot jp)
Term 1-2 (Jun 12 - Jul 31), 2025

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


News

- July 8: One more tutorial hour has been scheduled on July 15 and some submission deadlines have been updated.
- Jan 20: Corrected some more time/date information.
- June 19: Corrected some time/date information.
- June 12: Please write i217 HW1 in the subject when submitting your report and programs to ogata by email for the 1st assignment. Please do the same for the other assignments.
- June 9: 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 lecturers find any pieces of  plagiarism in submitted programs and/or reports, they 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 9: NOTE that CafeOBJ System Version 1.6.2 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.
- June 9
: 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.


Exam

9:00 - 10:40, July 29, Tuesday


Assignment

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)

10:50-12:30, June 12, Thursday
1. Sorts, Operators, Terms and Equations (
lecture note 1)
Submission deadline of HW1: 18:00 of June 16 (JST)

9:00 - 10:40, June 17, Tuesday
2. Modules, Order Sorts and Lists of Natural Numbers (
lecture note 2)
Submission deadline of HW2: 18:00 of June 20 (JST)

10:50-12:30, June 19, Thursday
3. Term Rewriting (
lecture note 3)
Submission deadline of HW3: 18:00 of June 25 (JST)

9:00 - 10:40, June 24, Tuesday
Tutorial Hour (for lecture note 3)

13:30-15:10, June 24, Tuesday
4. Parametrized Modules (
lecture note 4)
Submission deadline of HW4: 18:00 of June 27 (JST)

10:50-12:30, June 26, Thursday
5. Tables (
lecture note 5
Submission deadline of HW5: 18:00 of June 30 (JST)

9:00 - 10:40, July 1, Tuesday
6. Infinite Lists (
lecture note 6)
Submission deadline of HW6: 18:00 of July 4 (JST)

10:50-12:30, July 3, Thursday
7. Multisets (
lecture note 7)
Submission deadline of HW7: 18:00 of July 7 (JST)

9:00 - 10:40, July 8, Tuesday
8. A Programming Language Processor - Interpreter (
lecture note 8)

13:30- 15:10, July 8, Tuesday
9. A Programming Language Processor - Virtual Machine (
lecture note 9)

10:50-12:30, July 10, Thursday
10. A Programming Language Processor - Compiler (
lecture note 10)
Submission deadline of HW8, 9, and 10: 18:00 of July 14 July 18 (JST)

9:00 - 10:40, July 15, Tuesday
11. Program Verification - Natural Numbers (
lecture note 11)
Submission deadline of HW11: 18:00 of July 18 July 22 (JST)

13:30 - 15:10, July 15, Thursday
Tutorial hour (lectures 8, 9 and 10)

10:50-12:30, July 17, Thursday
12. Pregram Verification - Lists (
lecture note 12)
Submission deadline of HW12: 18:00 of July 21July 25 (JST)

9:00 - 10:40, July 22, Tuesday
13. Verification of Arithmetic Caclulator Compiler (
lecture note 13)
Submission deadline of HW13: 18:00 of July 25 July 28 (JST)

13:30- 15:10, July 22, Tuesday
14. Proof Assistant (
lecture note 14)
Submission deadline of HW14: 18:00 of July 28 Aug 01 (JST)

10:50-12:30, July 24, Thursday
Tutorial Hour (for Exam)

9:00 - 10:40, July 29, Tuesday
Exam


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

ast.cafe
misc.cafe
interpreter.cafe
vm.cafe
compiler.cafe


Links

CafeOBJ


Jun 9, 2025 by K. Ogata