Discrete Mathematics and Functional Programming

Discrete Mathematics and Functional Programming is a textbook on discrete mathematics and functional programming in ML by Thomas VanDrunen. Independent Study students commonly refer to the textbook as simply "VanDrunen." From the Class of 2014, the first class to use the book:

Chapters
Over the course of the year, some sections proved to be more beneficial than others and/or more difficult than others. We have detailed our findings so that future classes may focus on the most relevant sections and spend less time on fruitless endeavors. An additional list or sections we felt merited review and those sections which were found to be interrelated   are detailed after the discussion of each section.

Chapter Summaries
Core material can be found in chapters 1-7 and additional concepts are found in chapters 8-11. We found that more time should be spent on chapters 4-8 and skipped the last half of chapter 9 and all of chapter 10 after deeming them to be interesting but not necessarily constructive. Overall difficulties and suggestions are discussed for all chapters we worked through.

Chapter 1
Many of the concepts discussed in earlier chapters is review of Gersting with additional introduction of ML. Chapter 1 did not encounter many problems and was covered relatively quickly. References for this chapter:

http://homepages.inf.ed.ac.uk/stg/NOTES/node13.html

http://www.smlnj.org/doc/interact.html

http://academic.udayton.edu/saverioperugini/courses/cps343/lecture_notes/ML.html

Chapter 2
Tuples are a foundational part of ML and before moving on it is imperative that everyone has a solid understanding of this concept. The most difficult aspect of chapter 2 was the lab, language processor, and additional information can be found on the Lab Page. DO NOT OVERTHINK THIS LAB. It isn't worth it.

Chapter 11
Review and Interrelated Sections

About halfway through the year we found that there were many points we did not fully understand and that this lack of understanding was only further retarding our progress. We agreed that several sections had been worked through too quickly. Therefore, several weeks were set aside to review the material as to understand it more fully before moving on to finish the book. During this review, class members were encouraged to read through the sections and find any particular questions they had then bring those to class discussion. The class then worked through example problems together or worked through newly assigned exercises that class members were encouraged to attempt. An example assignment for an entire week follows:

"Review sections 1.8, 1.9, 2.4, 3.11, 3.12, 3.14, 4.9, 7.9, 7.10. I'm thinking that as we do review we will add the subjects into the peggy plus plus wiki. So try to think of ways to explain things as you would want them to be explained to you.

1.8: 1, 2 1.9: 1, 5 2.4: 1, 4, 13 3.11: 1 - 6 -> it's a lot but these can be kind of confusing 3.12: 1, 2 3.14:1, 4a, 4b, 4c 4.9: 1, 2 7.9: 1 7.10: 1

It's a lot. Do what you can. This is review, so if you don't understand it, it's okay. Just get what you can out of it."

The following discussion is in the order we reviewed the topics.

Chapter 3 sections 11, 12, and 14 focus on quantification, a foundational concept that is pertinent to the majority of the proofs in later sections. We found that by spending extra time on these sections we were able to tie up some holes in our collective understanding of proofs and how to execute algorithms relying on quantification.

Chapter 1 sections 8 and 9 were precursors to chapter 7 sections 9 and 10 and therefore were reviewed together. Both centered on cardinality, disjointness, and partitions. To better understand the proofs we first made sure that there was a solid knowledge of definitions. In review of these sections, working exercises together on the whiteboard was especially helpful.

Similarly, 2.4 and 4.9 were also related.

Links and Additional Reading

 * 1) Buy it on Amazon: http://www.amazon.com/Discrete-Mathematics-Functional-Programming-VanDrunen/dp/1590282604/ref=sr_1_1?ie=UTF8&qid=1414084348&sr=8-1&keywords=discrete+mathematics+and+functional+programming