Office hours for week of May 13: Monday 11:15-12:15, 3-4. Tuesday: 1-2:30, Wed: 9-11:30.
Many of the questions and answers we pose in computer science can be stated most simply and clearly using the language of mathematics. In this course, we will learn about mathematical objects, ideas, and techniques that are useful for computer science. This knowledge will allow you to communicate clearly with other computer scientists and programmers, and will be helpful in understanding many of the more complex concepts in computer science.
Learning Goals are broad and somewhat immeasurable goals that I want you to achieve by the end of the course. Learning Objectives are concrete, measurable learning outcomes that will help you to reach the Learning Goals.
After completing this course, students should be able to
Time and location: Monday, Wednesday, Friday in MBH 403
What do I call you? Professor Kimmel or Professor. I use she/her/hers pronouns.
Professor Office Hours: in MBH 635. Please come to office hours with specific questions, comments, or concerns.
Tutor Office Hours: See the CS Tutoring Site
Canvas Site: Here
Super Useful Department Wiki: Here!
Communication: I will use e-mail to communicate with you about urgent matters. Please check your Middlebury e-mail at least once a day. I will post less urgent messages (e.g. a change in office hours) to the announcements section of this site. Please check the Calendar section of this site regularly for an up-to-date record of assignments, due dates, and lecture notes.
E-mail Policy: I will not answer coding questions or problem set questions via e-mail, except for logistical questions.
Texts:
There are no required texts. I will post lecture notes after each lecture. See the Resources section for a list of open access texts that you can use for additional perspective and practice problems. I will post optional supplemental readings from these texts.
Technology in the Classroom
You may NOT use any type of cell phone, tablet, or computer during class, unless you have a compelling reason. Please come talk to me if you have a compelling reason for wanting to use technology. Taking notes on a laptop has been shown to be less effective and lower quiz scores not only for the student using the device, but for nearby students as well (because it distracts those around you).
Class Participation
Problem Sets
The primary purpose of problem sets is to help you to learn the course material. The problem sets provide you with opportunities to practice, and importantly, to figure out where you need additional practice. The problems will not necessarily be cookie-cutter versions of the problems we do in class. Instead, you will have to apply the concepts we learn in class in new and creative ways. Part of what I want to you be able to do is to develop the ability to transfer knowledge from a problem you've seen before to something new. The only way to develop this skill is to practice. The problem set problems may not be sufficient for you to learn the material, and you are responsible for finding further practice problems as needed (using resources I will provide.)
You will be graded on effort and thoughtfulness, not correctness. Each problem set will have four graded parts, and all parts are submitted through Canvas.
Your problem sets will not be graded by TAs. Since you are learning, it will sometimes be difficult for you to determine if your answer is correct, but just different from mine. In these cases, please post your solution to the Discussion section of the Canvas site under the relevant problem set posting. You should attach a picture or include a description of your solution, along with the problem number, and then graders will respond with feedback. Your solution and the feedback will be viewable by all members of the class, in order to provide a broader range of correct and incorrect solutions. You can comment on or "like" others' postings as long as you are respectful - it can be difficult to post your potential mistakes in a public place, but try to take a growth mindset perspective, and know that mistakes are extremely helpful for learning!
If you are the first to find a typo in the problem set or solutions, I will give you a small bonus.
Quizzes
There will be a weekly quiz to assess your understanding of concepts from the previous week's problem set. Additionally, many studies have shown that giving tests improves learning through the "testing effect." Quizzes will usually consist of two problems, one from topics on the problem set due earlier that week, and one from earlier topics. Some quizzes will be held in class, and some will be taken at home through Canvas. All quizzes are completely closed book and must be completed individually.
Time Management
It is typical for students to spend 2-6 hours on problem sets, 1 hour on self-grade and reflection, and an additional 1-3 hours practicing for the quiz using problems from the problem set, course texts, or online. However, every student is different and if your past experiences have prepared you particularly well or particularly poorly for the type of learning we do in this class, you may spend less or more time than this.
Tests
The midterms will be self-scheduled. You should plan to set aside 3 hours during the exam window to take the test. The dates of the midterms are:
You can take the final in the time slot for either section:
Programming Assignments
Programming assignments serve to connect some of the abstract mathematical concepts we learn in class to more concrete problems. However the focus of this class is on mathematical concepts, so if you do not do the programming assignments, they will not lower your final grade. However, for each assignment that you complete with a score of 28 or higher, you will get a small boost to your final grade, with the total effect of both assignments capped at a grade increase (i.e. from B+ to A-, or from B to B+). The exception is that to earn an A in the course, you must complete both assignments with a grade of 28 or higher. You may turn in the programming assignments as many times as you would like to Canvas before the last day of class, as long as there are significant changes between the submissions. I will grade programming assignments using this rubric.
Get Out of Jail Free Passes
Evaluation and Grading
Your final grade will be determined as follows:
Excused Absences and Extensions:
If you will miss class because of a religious observance, please notify me within the first two weeks of class. Please look at exam dates and let me know as soon as possible if you have conflicts. Other absences will be dealt with on a case by case basis, but please let me know as early as possible if you will not be able to attend a class. If you miss class, you are still responsible for the missed material. You should carefully read the lecture notes for the class you miss. I will be happy to answer questions related to the lecture, but I will not repeat the lecture for students who missed the original. Quizzes will be rescheduled as necessary for students with an excused absence.
In extenuating circumstances (e.g. personal crisis, serious illness, family problems) extensions for assignments or quizzes may be granted. Please contact me in this case.
Honor Code:
You are expected to maintain the highest level of academic integrity in this course. All work you turn in should be your own. However, collaboration on problem sets and programming assignments is not only allowed, but encouraged. Additionally, you can use course textbooks and online resources to look up approaches and similar examples (but not the exact same problem). To ensure that you are not in violation of the honor code if you collaborate with others, I suggest after discussing code or problem sets, you write up your own solutions or code later on your own.
If you work with another student on a problem set or programming assignment, please acknowledge that person (e.g. "I worked with xxx.") For programming assignments put this acknowledgment in a comment header.
The exams and quizzes must be entirely your own work. You may not share any information about tests or quizzes with any other students, either within or outside of the course.
Academic Accommodation:
Students with documented disabilities who may need accommodations in this class (e.g., extra time on exams) are encouraged to contact me as early as possible to ensure that such accommodations are implemented in a timely fashion. Assistance is available to eligible students through the Student Accessibility Office. Please contact one of the ADA Coordinators. Jodi Litchfield cab be reached at litchfie@middlebury.edu or 802-443-5936 and Courtney Cioffredi can be reached at cioffredi@middlebury.edu or 802-443-2169 for more information. All discussions will remain confidential.
Disclaimer: This syllabus is a guideline, and parts may be subject to changes if current policies not conducive to your learning.
The following resources provide a different perspective and contain lots of additional practice problems and solutions.
When you submit your problem set to Canvas, it should be in pdf form, but you can hand write it (and then scan it, or use an app on your phone to take a pic and convert) or type it.
However, when you submit, please check that is it well-sized and readable. It is much better if the whole document is one file instead of multiple files for each page. You will be using the pdf on Canvas later for the self-grading portion, so your life will be easier if you make sure it is readable. You can resubmit the pset multiple times (before the deadline) if it doesn't look good, so try to submit something early just to test.
To check if it is readable, there is a button on the Problem Set 1 page that says "Submission Details." Click this, and then go to "View Feedback." On the View Feedback window, there is a button to blow the viewer up to the full screen (you might need to scroll up on the window to see it). If this view is easy to read, then you are all set.