Skip to content
How to design programs
Racket
Branch: master
Clone or download

README.md

Learning How to Design Programs

Answers to HtDP exercises. Also includes open sourced metrics of textual reading and exercise solving times.

Conclusion:

The project took around 20 weeks to complete at a rate of around 4 pomodoros per day. This means an output of 200-250 hours of work to complete the whole book. And it's well worth it, if this is one of your first ventures into the land of functional programming.

The toughest section personally was 12 where question 12.2.4 that felt like a bolt out of the blue and made me re-evaluate my understanding of recursion learned thus far. There's so much that single question made me re-assess. Apart from that all the questions marked in each of the sections as interesting ones are worth doing and doing well. My attempts, I feel could have been better and more concise if I had spent more time on them. No claims made that all of the answers are foolproof. You are more than welcome to send a pull request if you spot any error(s).

One of the crucial skills I gained by doing the exercise is to think a bit and sketch some solutions down on paper before I started writing any code. I am sure this saved me considerable on contrast with my previous approach which was to jump on the keyboard as soon as I finished reading the question. A bit of thought on the question and it's implications goes a long way in giving you a head start.

I felt that this book had so much to teach and goes on to demonstrate the strength of immutable data structures and recursion. Recommended from my side towards any one who is willing to spend their next 10 years in programming.

#Metadata

  • Start date : 4 June 2014
  • End date : 17 October 2014
  • Days elapsed: 137

Metric used for time measurement is pomodoro

##Pomodoro Count: 540

  • Preface and Set up: 2
  • Section 1: 0.5
  • Section 2: 5.5
  • Section 3: 5.5
  • Section 4: 8
  • Section 5: 2.5
  • Section 6: 14.5
  • Section 7: 5.5
  • Section 8: 4
  • Section 9: 9
  • Section 10: 11.5
  • Section 11: 15.5
  • Section 12: 23
  • Section 13: 1.5
  • Section 14 : 13
  • Section 15 : 12.5
  • Section 16 : 6.5
  • Section 17 : 29
  • Section 18 : 15.5
  • Section 19 : 6
  • Section 20 : 3
  • Section 21 : 18
  • Section 22 : 12
  • Section 23 : 14.5
  • Section 24 : 1.5
  • Section 25 : 7.5
  • Section 26 : 20.5
  • Section 27 : 30
  • Section 28 : 19
  • Section 29 : 12
  • Section 30 : 3.5
  • Section 31 : 7.5
  • Section 32 : 48
  • Section 33 : 10
  • Section 34 : 0.5
  • Section 35 : 2.5
  • Section 36 : 2
  • Section 37 : 24
  • Section 38 : 4
  • Section 39 : 17
  • Section 40 : 5
  • Section 41 : 23
  • Section 42 : 2
  • Section 43 : 58
  • Epilogue and Clean up: 4

###Partwise Breakdown

  • Set up : 2
  • Part 1 : 46
  • Part 2 : 60.5
  • Part 3 : 76.5
  • Part 4 : 55
  • Part 5 : 89
  • Part 6 : 69
  • Part 7 : 33
  • Part 8 : 105
  • Clean up : 4

###Daily Breakdown (2014)

####Week 1

  • 4 June - 2
  • 5 June - 0
  • 6 June - 6
  • 7 June - 7
  • 8 June - 4
  • 9 June - 7
  • 10 June - 3

####Week 2

  • 11 June - 0
  • 12 June - 1
  • 13 June - 7
  • 14 June - 4
  • 15 June - 4
  • 16 June - 2
  • 17 June - 3

####Week 3

  • 18 June - 1
  • 19 June - 1
  • 20 June - 6
  • 21 June - 6
  • 22 June - 3
  • 23 June - 5
  • 24 June - 0

####Week 4

  • 25 June - 4
  • 26 June - 7
  • 27 June - 5
  • 28 June - 10
  • 29 June - 6
  • 30 June - 5
  • 1 July - 2

####Week 5

  • 2 July - 3
  • 3 July - 6
  • 4 July - 3
  • 5 July - 8
  • 6 July - 5
  • 7 July - 5
  • 8 July - 5

####Week 6

  • 9 July - 2
  • 10 July - 5
  • 11 July - 2
  • 12 July - 2
  • 13 July - 5
  • 14 July - 0
  • 15 July - 3

####Week 7

  • 16 July - 0
  • 17 July - 6
  • 18 July - 3
  • 19 July - 4
  • 20 July - 3
  • 21 July - 3
  • 22 July - 7

####Week 8

  • 23 July - 6
  • 24 July - 2
  • 25 July - 6
  • 26 July - 6
  • 27 July - 6
  • 28 July - 5
  • 29 July - 5

####Week 9

  • 30 July - 2
  • 31 July - 0
  • 1 August - 1
  • 2 August - 6
  • 3 August - 7
  • 4 August - 5
  • 5 August - 9

####Week 10

  • 6 August - 6
  • 7 August - 5
  • 8 August - 5
  • 9 August - 6
  • 10 August - 0
  • 11 August - 4
  • 12 August - 4

####Week 11

  • 13 August - 6
  • 14 August - 3
  • 15 August - 7
  • 16 August - 9
  • 17 August - 6
  • 18 August - 6
  • 19 August - 5

####Week 12

  • 20 August - 4
  • 21 August - 11
  • 22 August - 3
  • 23 August - 6
  • 24 August - 7
  • 25 August - 6
  • 26 August - 7

####Week 13

  • 27 August - 8
  • 28 August - 12
  • 29 August - 5
  • 30 August - 2
  • 31 August - 2
  • 1 September - 2
  • 2 September - 5

####Week 14

  • 3 September - 4
  • 4 September - 4
  • 5 September - 0
  • 6 September - 0
  • 7 September - 0
  • 8 September - 4
  • 9 September - 4

####Week 15

  • 10 September - 3
  • 11 September - 3
  • 12 September - 0
  • 13 September - 7
  • 14 September - 1
  • 15 September - 0
  • 16 September - 5

####Week 16

  • 17 September - 0
  • 18 September - 3
  • 19 September - 3
  • 20 September - 3
  • 21 September - 2
  • 22 September - 4
  • 23 September - 4

####Week 17

  • 24 September - 5
  • 25 September - 0
  • 26 September - 3
  • 27 September - 3
  • 28 September - 2
  • 29 September - 4
  • 30 September - 0

####Week 18

  • 1 October - 0
  • 2 October - 0
  • 3 October - 4
  • 4 October - 4
  • 5 October - 2
  • 6 October - 4
  • 7 October - 3

####Week 19

  • 8 October - 5
  • 9 October - 6
  • 10 October - 7
  • 11 October - 3
  • 12 October - 0
  • 13 October - 1
  • 14 October - 4

####Week 20

  • 15 October - 3
  • 16 October - 9
  • 17 October - 5

###Weekly Breakdown

  • Week 1: 29
  • Week 2: 21
  • Week 3: 22
  • Week 4: 39
  • Week 5: 35
  • Week 6: 19
  • Week 7: 26
  • Week 8: 36
  • Week 9: 30
  • Week 10: 30
  • Week 11: 42
  • Week 12: 44
  • Week 13: 36
  • Week 14: 16
  • Week 15: 19
  • Week 16: 19
  • Week 17: 17
  • Week 18: 17
  • Week 19: 26
  • Week 20: 17
You can’t perform that action at this time.