Poetry of Programming - Puzzle Based Introduction to Functional Programming

This is a Clojure programming course designed for non-programmers, in particular for Liberal Arts students with some college/high school algebra background. The course discusses the functional core of the language. It is offered at Akita International University in Japan (MAT245 2017-2020, MAT340 2021-), also at UCU Open University as AS-009. It is designed for

  1. experiencing the joy of computer programming,
  2. seeing mathematical ideas in use,
  3. getting fundamental and powerful programming skills, that could kickstart a serious IT career.


Try the language online: maria(cljs) repl.it(clj)


Conference presentations

This work is licensed under CC BY-NC-SA 4.0. Attila Egri-Nagy @EgriNagy

2022 Spring

back to classroom + online in Ukraine

2021 Spring

still online

2020 Spring


2019 Spring


2018 Spring


Course Introduction 2017/18 Winter


The purpose of the course is to experience the joy of computer programming. Serious fun that can easily be turned into an important skill in career planning.

Course Introduction 2017 Spring

This course aims to share the empowering and fun experience of writing computer programs. It is a gentle introduction to functional programming in Clojure, which is based on very simple mathematical ideas and it is currently gaining widespread adoption in software industry. According to stackoverflow, it also appears to be well-paid.

Is this course for you? First of all, you do NOT need any previous programming experience. So if you are interested, then YES.

In particular, Poetry of Programming is for you if you agree with AT LEAST ONE of the following statements.

  1. You like puzzles but you do not find solving equations too exciting (or you do).
  2. You don’t like math but you are happy to give it one more chance.
  3. You like math.
  4. You would like to understand how computers work.
  5. You like the idea of an intellectual adventure.
  6. You are planning a career in information technology.
  7. You are concerned about the society in the information age, so you would like to understand computing as one of its driving forces.
  8. You know some other programming language, but want to learn Clojure as well.

Unfortunately, the gender ratio in computing is currently out of balance. There are efforts to get more diversity (see for example girlswhocode.com), so there could be good career opportunities for women in the IT sector. Therefore, female students are particularly recommended to consider this course.

Original blog entry on how this project started