The required textbook is Discrete Mathematics and Functional Programming by Thomas VanDrunen. All our readings will come from this book. It is available from the College Bookstore and many online bookstores, as well as the publisher.
This is a first-edition textbook. The author's web site provides a list of errata. I encourage you to go through the book and mark these errata before we get too far: the first erratum is on page 50. I will award a modest amount of extra credit, applicable towards homework, for every additional error found and reported to me by email; I will collect these errata and forward them to the author.
The author also provides source code
for textbook examples and exercises.
This class meets three times per week on Monday, Wednesday, and
Friday, 11:00-11:50 a.m., in Olin 124.
This course will have a predictable rhythm. Class time is mainly for working out new kinds of problems together and consolidating what you have learned. There will be daily homework assignments. Tests come when we get to good stopping points.
Before class you are to read the assigned sections from the textbook and, sometimes, watch a video presentation. In class I will review and highlight material, especially definitions, that you have read. I will avoid lecturing as much as possible, preferring to devote most of our meeting time to working through problems together. Some class periods will also include demonstrations of new ML features. At the end of each class, I will assign problems from the textbook, which will also be posted on the course website.
Readings fit into four categories:
Read carefully means I will not cover the material in class at all. It's background for what we really want to work on. You solely are responsible for it.
Read means I will highlight and review the main ideas but not lecture on them. I will assume you have already seen these ideas in the reading. We will work on sample problems from these sections in class.
Skim means this is difficult material that most students will need to see twice to understand. Familiarize yourself with the reading before class, and then we will work through the reading together in class. Note that skim does not mean skip.
Review means we have already discussed this material, but you will benefit from revisiting it.
At times, I will also ask you to watch video
created by the textbook author. These tutorials supplement the
textbook. Watching them will be considered part of your preparation for
class. The goal is to allow more time for active learning in class by
spending less class time on lectures and demonstrations.
To help you prepare for class, most days will have a short pre-class "Readback" form for you to fill out. Readbacks are graded on a binary scale: "done" or "not done." Your average score on Readbacks will comprise 5% of the final grade.
You can find the Readback form on
the class schedule next to the reading
for the day. Remember it's
timestamped and due at least one hour before the start of class, to
help me prepare. No
late Readbacks will be accepted.
to attend and actively participate in class. I am expected to make
class worth attending.
Some advice: Take the right amount of notes. You need to be active in class, working through the problems we are doing together on the board or in small groups. Research suggests that the most important part of taking notes is to process new ideas and decide what to write down. Don't feel like you have to transcribe everything we write on the board; in fact, this may get in the way of your processing.
As noted above, this class will have daily homework assignments.
Assignments will include both written mathematical work and programming
problems. In total, homework will comprise 25% of your final grade.
Written mathematical work
will be submitted on paper during the class period after it is
assigned. Make sure each problem is clearly labeled. For legibility,
please do not write on the backs of pages. If your work spans multiple
pages, please staple them together. If you know LaTeX or want to learn
it, you are welcome to type your work. Handwriting is equally
collect your work at the end of class. (Remind me if I forget.)
However, you are granted an automatic grace period until 5:00 pm that
day. Assignments not complete at class time, or assignments you want to
revise after class, may be submitted to the envelope on my door. If
your work is not complete at the end of the grace period (5:00 pm),
then turn in what you have at that time for partial credit.
Assignments are spot-checked: Depending on the assignment, about
half the problems will be graded, and you won't know ahead of time
which ones. This is because my capacity to grade problems is less than
the amount of practice you will need.
Programming problems will
be turned in using an automated grader.
The same rules about due dates and times apply. The system will run the
submitted code against a series of test cases and then report on the
results. (You will not see the test cases. Testing your code with your
own test cases is part of the assignment.) You may submit as many times
as you want until the deadline. Submissions that do not pass all the
test cases will be assigned partial credit. Feedback will be reported
Grades and comments will be recorded in the gradebook on CLEo.
There will be two midterm exams and a final. We
will discuss the format of
the exams as they approach. In total, exams will comprise 60% of your final grade. Dates appear in
the course schedule.
Per College policy, the final exam will be Friday, December 16, 2 -
4 pm. I will not permit students to take the exam early. Please plan
your travel accordingly.
You are encouraged to discuss concepts, problems, and approaches to solving problems with your classmates. However, your solutions, proofs, and programs must be your own.
If you are having trouble debugging a program (or proof!) you have
written, you may show it to a classmate to receive help; likewise you
may inspect a classmate's incorrect program or proof to provide help.
However, you should not show correct
code to a classmate, nor should you look at another students' correct
code, unless I direct you to do so. Similiarly, you should not share
correct proofs unless directed to do so. Work resulting from
inappropriate collaboration will not be accepted.
Significant insights obtained from other students should be acknowledged in your programs and in your written work. The suggested acknowledgment format is "[Person X] helped me to [do thing Y] by [explaining Z]."
If you are a student with a disability who will need accommodations
in this course, please meet with either Julia Dunn, Associate Dean of
Students (Memorial 325, 509-527-5213, email@example.com) or Rebecca
Frost, Director of Student Success and Disability Support Services
(Memorial 325, 509-527-5213, firstname.lastname@example.org)
for assistance in developing a plan to address your academic needs.
information about disabilities is confidential. If I receive
notification from Ms. Dunn or Ms. Frost that you are eligible to
receive an accommodation, I will provide it in as discreet a manner as
Class is time for learning and practice
which you cannot obtain by reading someone else's notes. Moreover, we
depend on your contributions and partnership.
There is no specific penalty for absence. However, consistent attendance will bolster a borderline grade.
I will excuse your absence if you have a legitimate reason to miss
and you manage your absence responsibly:
If your absence is planned,
as for travel to a conference, email
to make arrangements at least a week in advance. Although we can
talk in person, I will also need a written reminder of your plans,
via email. If you will be missing a scheduled exam due to planned
activities, please request an alternative examination time no later
than one week in advance.
If your absence is unplanned, as for illness or in relation to a documented disability, email me as soon as you are able to do so. If you are ill, don't come to class—stay in your room and rest, or seek medical care as needed. If you are absent unexpectedly, I may call or email to check that you are okay. I will accommodate missed exams due to documented illnesses.
The material in this class builds on itself. If you don't
understand something, don't just shrug it off and move on: Get it right. Even if it doesn't
seem like last week's material is being used this week, it will come
back in the future.
You are welcome to email me with simple questions, but note my response time will be unpredictable. I will try to answer email every day during my office hours when I am not busy meeting students. Mornings are for focused work, while evenings and weekends are for my family. Although it may be convenient for you to send an email, you may get a faster and better response by visiting in person. Of course, complex questions (or simple questions with complex answers) are best discussed in person.
I will use the following scheme as an initial basis for assigning
|Type of work
Letter grades will be assigned according to the following scale.
Plusses and minuses will be awarded at my discretion.
I do not believe in grading on a curve; I would be thrilled to give you all As. However, I reserve the right to make adjustments if this weighting scheme produces grades which are lower than I believe are deserved. Any such adjustments will only raise your grade, never lower it.
Janet Davis (email@example.com). Some assignments and policies are adapted from Thomas VanDrunen's syllabus for CS/MATH 243, Wheaton College.Created August 28, 2016