Poetry of Programming - Puzzle Based Introduction to Functional Programming

The course was presented at the 2017 Clojure/conj! abstract video

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 only discusses the functional core of the language.

Poetry of Programming Book PDF

These notes are being written for the MAT245 course at Akita International University in Japan. The content is not complete and stable yet, but each version is meant to be consistent and thus usable for self-study. Comments are welcome! When reporting errors please specify the version number.

Reading Exercises PDF

Practice problems

How To Code It? - guidelines for solving practise problems PDF

This work is licensed under CC BY-NC-SA 4.0.

Attila Egri-Nagy

Course Introduction

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