This course introduces the theoretical, structural, and algorithmic foundations of computer science. Topics include: sets, relations, functions, recursive data structures, recursive functions, induction, structural induction, probability, logic, and Boolean algebra. The course will emphasize the exploration of these topics through programming exercises, but it will also focus on developing proof techniques in written exercises. A weekly laboratory period provides guided hands-on experience.
CMPU-101 Problem-solving and Abstraction
As the semester progresses, select days may be held fully remotely.
All labs will be done remotely.
The primary textbook is Sets, Logic and Maths for Computing (2nd. edition), written by David Makinson (ISBN 978-1447124993). This is available in electronic form from the Vassar library. A download link will be listed on Moodle. You may alternatively purchase or rent a physical or electronic copy of your choice from the retailer of your choice.
Other articles and readings may be assigned. These will be posted on Moodle.
Programming labs and assignments will be completed in the Racket programming language. Racket and its standard editor DrRacket are available on departmental computers (in-person or through remote access) or can be readily installed on personal machines from the Racket website.
All assessments are distributed on and to be submitted on Moodle.
There will be mostly-weekly homeworks consisting of proofs, other written work, or programming exercises. Homeworks are equally weighted. Some homeworks may include optional resubmissions of portions previous assignments (i.e., fixing errors in the previous homework) which will affect the previous grade. These will be coming out starting next week and will involve significant writing (in some cases). Some problems will be individual, some will be optionally collaborative, and some may be strictly individual (no guidance from coaches). Written portions of homework assignments should be typeset. Homeworks are equally weighted.
These are generally designed to take up to two hours. Some may be longer, but incorporated into homework or spanning two weeks. Work should be approved by a coach in the lab session or at a coach's coaching hours before submission (on Moodle). Some labs may be slightly collaborative (working in small groups). Labs will be graded in three ways. There will be a certain set of problems that can be completed for 33% credit. If the entire lab is completed and checked off by a coach as correct, 80% is awarded. If this complete submission completely passes a set of secondary, unreleased automated tests, the final 20% is awarded. Labs are equally weighted.
All exams will be take-home and open-book / open-note. There may be a time limit on portions of some exams. Exams are equally weighted.
In lieu of a final, we will have a project covering our last main topic (combinatorics and probability). Details are still being hashed out, but there will be a significant programming component, writing component and some form of presentation (likely recorded, given size of the class). Project can be worked on in groups of 1-3, but some final report specifics will be individual.
This schedule is only tentative. Moodle will contain the authoritative schedule as the semester progresses.
These topics align with their corresponding chapters in the textbook.
Vassar College is committed to providing a safe learning environment for all students that is free of all forms of discrimination and sexual harassment, including sexual assault, domestic violence, dating violence, and stalking. If you (or someone you know) has experienced or experiences any of these incidents, know that you are not alone. Vassar College has staff members trained to support you in navigating campus life, accessing health and counseling services, providing academic and housing accommodations, helping with legal protective orders, and more.
Please be aware all Vassar faculty members are "responsible employees," which means that if you tell me about a situation involving sexual harassment, sexual assault, dating violence, domestic violence, or stalking, I must share that information with the Title IX Coordinator. Although I have to make that notification, you will control how your case will be handled, including whether or not you wish to pursue a formal complaint. Our goal is to make sure you are aware of the range of options available to you and have access to the resources you need.
If you wish to speak to someone privately, you can contact any of the following on-campus resources:
For your own education and for fairness to the rest of the students in the class, it is essential that you perform your work yourself and conduct yourself with honesty and integrity. Your written work must be your own, not plagiarized or closely paraphrased from other sources, including the internet. Please consult the handbook, "Going to the Source," to read more about Vassar's policies regarding originality, academic integrity, and attribution. When you use figures or images from other sources, you must properly attribute your sources. It is very easy and tempting to use the internet to assist you in completing assignments, so you must be very careful to ensure that your work for the course is the result of your own thinking and your own efforts.
Further I heartily encourage you to consult the Computer Science department's Student Integrity Policy: link.
Academic accommodations are available for students registered with the Office for Accessibility and Educational Opportunity (AEO). Students in need of disability (ADA/504) accommodations should schedule an appointment with me early in the semester to discuss any accommodations for this course that have been approved by the Office for Accessibility and Educational Opportunity, as indicated in your AEO accommodation letter.