Discrete Mathematics and Functional Programming. Author: Thomas VanDrunen Thomas VanDrunen, Functional programming as a discrete mathematics. Discrete Mathematics and Functional Programming is a textbook on discrete mathematics and functional programming in ML by Thomas VanDrunen. Of course discrete math is not exactly a very deep branch, but still it gives you a /Discrete-Mathematics-Functional-Programming-VanDrunen/dp/
|Published (Last):||19 December 2010|
|PDF File Size:||19.35 Mb|
|ePub File Size:||15.4 Mb|
|Price:||Free* [*Free Regsitration Required]|
Companion resources are available at the books’ website. I also recommend and will sometimes refer to Discrete Mathematics: An Open Introduction by Oscar Levin, which is available online. On MathLAN, you can access the interpreter by typing “sml”, although I recommend typing “rlwrap sml” so that the arrow keys behave as expected. Alternatively, you can use a package manager like Homebrew on a Mac. We will mathemaics spend a great deal fknctional time learning to write mathematical proofs.
For additional references on mathematical writing and notation, I recommend the following: Book of Proof by Funxtional Hammack. Writing and Proof by Ted Sundstrom.
How to Prove It by Daniel Velleman. Learn how to interpret mathematical language and symbols properly, and how to communicate mathematical anr effectively. Learn the logic of mathematical arguments, different ways to prove a statement, and how to construct your own proofs. Develop your ability to think recursively, and how to justify recursive procedures using mathematical induction. Develop your functional programming abilities in Standard ML. Understand the relationship between programs and proofs.
Learn new ways to justify the correctness of a program, as well as conceptual techniques to help understand the run time of a program. Vandrunn some fundamental combinatorial concepts: Learn how to abstract away essential ideas and to represent data using sequences, relations, graphs, and other combinatorial models.
Homework assignments will be due every other class period. Homework will be posted to the course webpage, and will include a mixture of computations, explanations, proofs, and programming. Please take the time to write your solutions neatly and carefully! All homework assignments consisting of more than one page must be stapled. In addition to your written work, you should email me the text of the ML programs that you write for each assignment.
Please just copy and paste the text into the body your email.
Discrete Mathematics and Functional Programming
Homework is due at the beginning of class i. Unless you have a serious emergency that you bring to my attention before a homework assignment is due, late homework will not be accepted after the class in which it is due. Solutions to the homework will be posted to the course webpage. Your lowest homework score will be dropped.
Unlike some of your past experiences in mathematics, there will typically be many correct answers to each problem. As a result, clarity of exposition and the proper use of mathematical terminology are as vital to your solutions as having the correct idea. A major goal of this course is to learn how to express your mathematical ideas correctly and to write vandruneb proofs. Do not be alarmed if your homework has many comments about how to improve nobody starts out as an expert.
If you want to keep digital records of your work, I recommend learning how to type your solutions. LaTeX is a wonderful free typesetting system which produces high-quality documents at the cost of only a small amount of additional effort beyond the nontrivial start-up cost of learning to use it.
If you plan to do any kind of mathematical or scientific writing in the future, you will likely use LaTeX, so taking the time now to familiarize yourself with it will greatly pay off in the long run. Section 1 MWF Thursday, May 18 at 2: Section ptogramming MWF Tuesday, May 16 at 2: Consult the general Grinnell College policy on Academic Honesty and the associated booklet for general information.
If you enjoy working in groups, I strongly encourage you to work with others in the class to solve the homework problems.
Discrete Mathematics and Functional Programming
functionql If you do collaborative work or receive help form somebody in the course, you must acknowledge this on the corresponding problem s. Writing “I worked with Sam on this problem” or “Mary helped me programjing this problem” suffices. You may ask students outside the course for help, but you need to make sure they understand the academic honesty policies for the course and you need to cite their assistance as well.
Failing to acknowledge such collaboration or assistance is a violation of academic honesty. If you work with others, your homework must be written up independently in your own words. You can not write a communal solution and all copy it down.
Under no circumstances vanndrunen you look at another student’s completed written work. You may look at other sources, but you must cite other books or online sources if they provide you with vandgunen idea that helps you solve a problem. However, you may not specifically look for solutions to homework problems, and you may not solicit help for homework problems from online forums.
You may neither give nor receive help. Books, written notes, computers, phones, and calculators are not permitted. Very few homework problems can be solved by looking up a similar problem from class and making small adjustments. Relying on pattern matching and mimicry of past solutions will not lead to success.
Spend your time trying to internalize rather than memorize. Work to engage programmin and deeply understand the material. Set aside time to simply think about the material and how it fits together, in addition to the time you give yourself to work on the homework. Much of your learning will happen outside of class. Most students should vandruneh spending about 12 hours a week devoted to the course.
Learning math requires practice, patience, and endurance. If you are stuck on a problem, begin by working on simple examples and special cases. Don’t be afraid to “play” and “experiment”. Although I encourage doing this in all of your math and computer science courses, Discrete Mathematics is a subject where this approach is especially helpful and often leads to key insights.
The process of abstracting from special cases to general patterns is difficult at first, but the only way to improve is not to be afraid to try. I really enjoy interacting with students. Please come to my office fynctional when you want assistance! Fuctional use our time together most effectively, it helps if you have grappled with the ideas and you bring some of your scratch work and attempts.
One of the most difficult parts of your mathematical education is learning how to transition from having no idea, to obtaining vague hunches, to seizing on key ideas, to writing correct proofs. If you bring fknctional ideas and scratch work, we can focus on how to help you manage these transitions.
When graded homework is returned, spend time reading the comments and reflecting on how you can improve your writing. Also, read functionsl posted solutions and compare them to your own.
Examine and learn from how the solutions differ from yours in pdogramming, language, and organization. Grinnell College makes reasonable accommodations for students with documented disabilities. Students need to provide documentation to the Coordinator for Disability Resources, Autumn Wilke, located on the 3rd floor of the Rosenfield Center x Students should then speak with me as early as possible in the semester we can discuss ways to ensure your full participation in the course and coordinate your accommodations.
I encourage students who plan to observe holy days that coincide with class meetings or assignment due dates to consult with me as soon as possible so that we may reach a mutual understanding of how you can meet the terms of your religious observance and also the requirements for this course.