i217 Functional Programming @ Tokyo 

Lecturer: OGATA, Kazuhiro (email: ogata at jaist dot ac dot jp)
Term: May 23 - Sep 13, 2020

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


News

- July 18: The submission deadline of A11 has been changed as follows: Midnight of Sep 13
- July 18: The submission deadline of A8-10 has been changed as follows: Midnight of Sep 6
- July 8: I found some mistakes on around p.33 of lecture note 9. Please see the revised version.
- June 25: JAIST has decided that all classes in Tokyo Stellite are supposed to be given online at least by the end of September, 2020. Thus, this course plans to ask each studet to tackle a final assignment insetad of the final written exam. The final assignment will be announced later.
- May 15, Friday (Almost) all classes will be hed ONLINE. It is planned to have the final exam on Sep 13, Sunday, which depends on the situation then.
- May 15, Friday 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.
- May 15, Friday CafeOBJ System Version 1.5.7 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.
- May 15, Friday 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


- 13:50-17:20, Sep 13, Sunday (tentative)


Assignment

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)

9:20-11:00, May 23, Saturday
1. Sorts, Operators, Terms and Equations (lecture note 1)
Submission deadline of assignment: Midnight of Jun 7

11:10-12:50, May 23, Saturday
2. Modules, Order Sorts and Lists of Natural Numbers (lecture note 2)
Submission deadline of assignment: Midnight of Jun 21

9:20-11:00, May 30, Saturday
3. Tern Rewriting (lecture note 3)
Submission deadline of assignment: Midnight of Jul 12

11:10-12:50. May 30, Saturday
Laboratory (Tutorial Hour)

9:20-11:00, Jun 6, Saturday
4. Parametrized Modules (lecture note 4)
Submission deadline of assignment: Midnight of Jul 19

11:10-12:50, Jun 6, Saturday
5. Tables (lecture note 5)
Submission deadline of assignment: Midnight of Jul 26 

9:20-11:00, Jun 27, Saturday
6. Infinite Lists (lecture note 6)
Submission deadline of assignment: Midnight of Aug 2

11:10-12:50, Jun 27, Saturday
7. Multisets (lecture note 7)
Submission deadline of assignment: Midnight of Aug 9

9:20-11:00, Jul 18, Saturday
8. A Programming Language Processor - Interpreter (lecture note 8)
Submission deadline of assignment: Midnight of Aug 30Sep 6

11:10-12:50, Jul 18, Saturday
9. A Programming Language Processor - Virtual Machine (lecture note 9)
Submission deadline of assignment: Midnight of Aug 30Sep 6

9:20-11:00, Aug 29, Saturday
10. A Programming Language Processor - Compiler (lecture note 10)
Submission deadline of assignment: Midnight of Aug 30Sep 6

11:10-12:50, Aug 29, Saturday
11. Program Verification - Natural Numbers (lecture note 11)
Submission deadline of assignment: Midnight of Sep 6Sep 13

9:20-11:00, Sep 5, Saturday
12. Pregram Verification - Lists (lecture note 12)
Submission deadline of assignment: Midnight of Sep 20

11:10-12:50, Sep 5, Saturday
Laboratory (Tutorial Hour)

9:20-11:00, Sep 12, Saturday
13. Verification of Arithmetic Caclulator Compiler (lecture note 13)
Submission deadline of assignment: Midnight of Sep 27

9:20-11:00, Sep 12, Saturday
14. Proof Assistant (lecture note 14)
Submission deadline of assignment: Midnight of Sep 27


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

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


Links

CafeOBJ


May 15, 2020 Updated by K. Ogata