add program 3.1
add program 3.2
add program 3.3
add program 3.4
add exercise 3.1
add exercise 3.2
add exercise 3.3

Note: this is not designed to compile
add exercise 3.4
add exercise 3.5
add exercise 3.6
add exercise 3.7
Merge branch 'chapter-3'