The required textbook is Discovering Computer Science
by Jesse Havill. You can purchase from the Whitman College Bookstore or
any major online bookseller, as well as from the publisher. Note that
the most affordable option is an eBook rental from the publisher. At
will supplement this textbook with readings from other sources.
This class meets three times per week on Monday, Wednesday, and
Friday, 2:30 - 3:50 p.m., in Olin 124.
This course is taught in a collaborative workshop style. Some days we will spend the class period working through problems or concepts together as a class. Most days, you'll spend part of the class working on laboratory exercises at the computer with other students. Participation is key.
Because our time in class is limited, you should come prepared to each class. What does it mean to be prepared? First, attempt any exercises given to you to work on between classes. Next, check the schedule for today's class meeting to find out what we will be working on. If there is a reading listed for today's class meeting, read it before class and answer the readback questions. Finally, come to class on time, with paper and a writing instrument, ready to be an active participant. After class, you should review your notes, the in-class exercises, and possibly the reading as well, to gain their full benefit.
will have the opportunity to exercise your creativity in many
open-ended programming assignments and a final project. You will
demonstrate your learning through ungraded, weekly quizzes and through
three midterm exams. Although there is no final exam, we will use the
final exam timeslot for final project 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 is due at least one hour before the start of class, to help me prepare. No
late Readbacks will be accepted.
Class meetings will involve a mix of discussions, demonstrations,
activities, hands-on exercises, and the occasional lecture. In short: You
to attend and actively participate in class. I am expected to make
class worth attending.
Research suggests that writing notes in longhand is more effective for learning than typing notes on a computer. Therefore, I encourage you to try taking notes by hand. At times, you will also need to draw diagrams. Therefore, coming prepared to class includes bringing paper and pencil or a tablet computer that you can draw on.
If your participation or non-participation causes problems for other students, I will invite you to visit office hours to discuss the issue.
There will be regular programming assignments. These homework assignments are intended to let you gain experience with interdiscplinary applications, practice using important constructs and ideas, and exercise your creativity and problem solving skills. Your overall homework average will comprise 50% of your grade.
Wrappers. To help you
monitor your learning, you will be required to complete a "wrapper" for
most assignments. As part of the readback on the day the assignment is
handed out, you will estimate the amount of time you will need to
complete the assignment and think about how the assignment will
challenge you. After you submit the assignment, the next readback will
help you reflect on
what you learned.
Teamwork. Because students
can often learn and accomplish more in teams, I encourage collaboration
on homework assignments. However, good friends do not always make good
collaborators. Therefore, I will assign teams for many homework
Style. It is not enough to
write code that works. Work
that meets the requirements of the
assignment will earn about 90% of the points.The remaining 10% will
concern style, elegance, and efficiency. My expectations will increase
in sophistication throughout the semester. I will aim to give you
guidance on my current expectations in each assignment. If I do not,
Above & Beyond. I will
give up to 5% extra credit for going "above and beyond" by doing
something extra that is not part of the requirements of the assignment.
Sometimes I will suggest possible extensions; other times you will need
to think of extensions on your own. Occasionally, I will award Above
credit for unusually thoughtful solutions to required problems. Write a
comment explaining which part of your work you consider to be
the Above & Beyond component, so
that I'll know what to look for.
Each student will deliver a 5 minute
presentation on some topic related to computer science. The list of
presentation topics is in this
You will pick a question (first come, first served) or suggest a
question of your own during the first week of class. A presentation
date will be assigned at random and presentations will begin in the
second week. You will be provided with a grading rubric to consult as
you prepare your presentation.
Each week there will be a short, online quiz. The purpose of these
quizzes is diagnostic: to help you understand where you are struggling,
and to help me know when you are struggling. You may retake each quiz
without penalty until you get the answers right; I will see
how many times you take it.
quizzes will comprise 5% of your final grade.
There will be three midterm exams, spaced about every four weeks. We
will discuss the format of
the exams as they approach. The exams will comprise 30% of your final
The computer science faculty have prepared some common guidelines for academic integrity in computer science courses, which you should read. Here are my policies for this course:
Any form of falsification, misrepresentation of another’s work as one’s own (such as cheating on examinations, reports, or quizzes), or plagiarism from the work of others is academic dishonesty and is a serious offense.
Do your own work. The only way to learn how to program is to do it yourself. You may discuss general approaches to homework problems with anyone. If you are having trouble debugging a program, you may show it to a classmate to ask for advice; likewise, you may inspect a classmate's incorrect program to provide advice. You may also seek help as described below.
You should never show correct
code to a classmate, nor should you look at another student's correct
code. You may collaborate only with your assigned partner(s).
Python programs to solve homework exercises can sometimes be found with a simple Google search. Don't do it. All work you submit to me is understood to be your own (unless otherwise attributed). If it is discovered that it is not, you will be prosecuted under the College's plagiarism guidelines. If you are tempted to plagiarize, instead, please talk to me about your concerns.
You are allowed to use online sources to help you debug your program or to learn how to do something not covered in our textbook.
When you work with a partner, you should not divide up the problems to do separately. You will not get the full benefit of the assignment if you divide the work. Instead, you should use a pair programming approach, as discussed in class, to work together on the problems.
I intend quizzes and exams to assess
your individual understanding
of the material, collaboration is not permitted. If you have
questions, bring them directly to me. Of
course, I encourage you to collaborate while studying for exams.
Attribute the contributions of
you work as part of a group, you must name each collaborator. However,
you need not identify work done by each individual. It is assumed
that each of you contributed to all parts of the assignment.
Any intellectual contributions by persons not in your group should
be acknowledged through comments in your programs. The
acknowledgment format is "[Person X] helped me to [do thing Y] by
If you consulted an online source, provide a URL and briefly explain
what you learned.
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. In particular, consistent attendance is required to invoke the Good-faith grade guarantee™.
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 me 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, preferably via email.
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.
Readbacks are due one hour before class, without exception.
Each homework assignment will specify a deadline. Deadlines may be extended for individuals and groups in accordance with the attendance policies described above or, rarely, by negotiation with the entire class.
Because I am concerned about your health and well-being, I will also
accept late homework according to my health
and well-being policy.
You may invoke this policy under the following conditions:
Everyone needs help now and then. I encourage you to come see me as soon as possible if you are having difficulties with the readings, class sessions, or homework. I also welcome discussions about course content and assignments, related current events, and your academic interests or career plans.
I am willing to answer questions by email if I can, but 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.
I prefer that you come to my
official office hours, posted on my home page, but you may knock any
time my door is open. If
your need is known at least 24 hours in advance, you are very welcome
to schedule an appointment
me for a chat in my office, a walk, or lunch.
Lab staff can help with Python syntax and semantics, technology problems, and general approaches to problem solving. In the evenings and on weekends, you can find student lab aides in Olin 124. During work hours, talk with Math & CS Technical Specialist Dustin Palmer next door in Olin 126.
Want additional help with your Significant Bits presentation? The COWS has drop-in tutoring hours with speaking fellows Tuesday, Thursday, and Sunday, 8 - 10 p.m. Or schedule an appointment online.
Finally, class mentors will provide assistance during class and in optional, weekly review sessions (time TBA). Mentors are also available for regular one-on-one or small group tutoring.
Grades on individual assignments will be posted to the CLEo gradebook for this class.
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.
I believe everyone can learn computer science. However, learning
requires significantly more effort for some students than for others.
At the same time, I don't want you to be afraid to give computer
science a try. Therefore, I reward effort as well as outcome.
Every student who makes the effort to learn in this class will pass
with at least a C-. A good-faith effort includes missing no more than
two classes, turning in every assignment,
making a good-faith effort on each quiz and exam, and coming to talk
with me if
I ask you to.
with thanks to Andy Exley, Thomas VanDrunen, Albert Schueller, Jerod Weinman, Henry
Walker, and Samuel A. Rebelsky