Course title | |||||
関数プログラミング [Functional Programming] | |||||
Course category | technology speciality courses,ets. | Requirement | Credit | 2 | |
Department | Year | 3~4 | Semester | Fall | |
Course type | Fall | Course code | 023807 | ||
Instructor(s) | |||||
BOSSARD Antoine [BOSSARD Antoine] | |||||
Facility affiliation | Graduate School of Engineering | Office | Email address |
Course description |
Software engineers are usually familiar with imperative programming (C/C++, Java…). In this course, we will introduce another programming model, functional programming, using the Haskell language. While imperative programming is based on the state of a program, functional programming is based on the evaluation of functions. This different computational approach, or paradigm, has many advantages and applications. Also, it has been gaining more and more attention from software engineers as it enables high-level object manipulation and easy program logic description. One could speak of modern programming. The second half of this course will be dedicated to logic programming and the Prolog language. |
Expected Learning |
Being able to understand what functional and logic programming are, and how to use the Haskell functional programming language to produce simple programs. |
Course schedule |
(NB. Some adjustments may be made upon needs.) Functional programming Session #1 ? Introduction to functional programming Session #2 ? GHCi environment, Haskell syntax and evaluation model, variables and types Session #3 ? Functions and currying, types (signatures, contracts), variable scope (local / global bindings) Session #4 ? Lists and tuples, infinite lists and laziness, list comprehension Session #5 ? Control structures (if, guards), recursion 1 Session #6 ? Pattern matching Session #7 ? Recursion 2 Session #8 ? Exercises Logic programming Session #9 ? Introduction to logic programming (evaluation model, etc.) Session #10 ? Syntax, sentences, rules Session #11 ? Recursive rules, variables Session #12 ? Lists Session #13 ? Arithmetic Session #14 ? Cuts and negation Session #15 ? Examination |
Prerequisites |
None |
Required Text(s) and Materials |
Antoine Bossard, A Gentle Introduction to Functional Programming in English ? 関数プログラミング入門, in English! (電子書籍), Ohmsha, Ltd. 2017 https://estore.ohmsha.co.jp/titles/978427499992P |
References |
Assessment/Grading |
Examination: 100% |
Message from instructor(s) |
No programming experience required. |
Course keywords |
programming, Haskell, functional |
Office hours |
Before and after each lecture. |
Remarks 1 |
Remarks 2 |
Related URL |
Lecture Language |
Language Subject |
Last update |
10/3/2017 10:15:01 AM |