Grading criteria

The relative value of the various course components is approximately as follows:

25% programming assignments
20% homeworks (written assignments)
10% in-class exercises
10% labs
20% quizzes
15% final exam

There are no opportunities for extra credit in this course.

Late work will not be accepted. If you need an extension for an assignment, contact me a reasonable amount of time — generally, at least 24 hours — before the assignment is due.

I will retain all graded materials for this course until the end of next semester (Fall 2017). If you wish to review them, please come to see me during office hours (or make an appointment).

You are responsible for monitoring your grades. Grades will be available through Moodle (though note that some will be available in Gradescope first) and you should check them regularly and review any provided feedback. If you encounter any issues with your grades, you will have one week past the first posting of a particular assignment’s grade to Moodle to contact the course staff so that we can investigate. Please contact us via a private message on Piazza. We will not generally accept questions about an individual assignment’s grade beyond this one week, so you must be prompt.

Programming assignments

I will post programming assignments about once a week, and you will typically have about one week to complete them. They will be posted to the course web site’s assignment page and must be submitted through Gradescope.

You are responsible for submitting code that compiles and runs on the autograder; if you submit code that does not compile or that gets stuck in an infinite loop, you will receive no credit.

Attempts to manipulate, game, or otherwise incorrectly use the autograder will be treated as academic dishonesty.


There will usually be a short written assignment (“homework”) due at the start of each lecture. They will be generally posted to the course web site’s assignment page by the end of the day of the preceding lecture.

You may work with your classmates on homeworks.

In-class exercises

You will be assigned exercises in most lectures and discussion meetings. These will generally be pair or small-group exercises, and will either be done using an iClicker, or be handed in on paper at the end of the lecture or discussion. Bring paper and a writing implement to class!


Labs are exercises similar to programming assignments. They differ primarily in three ways:

  • They will usually focus less on programming and more on tools or other infrastructure that supports programming.
  • They will typically be much more guided: you should be able to follow the lab directions start to end without much difficulty.
  • You are allowed to collaborate with your classmates on lab assignments.

There will be around five labs assigned, mostly toward the beginning of the semester.

Quizzes and exams

There will be about seven quizzes over the course of the semester. The quizzes will be given during discussion meetings. Each will consist of a few programming questions that you will answer on paper, and they may include a few other short-answer questions as well. They will be short: designed to be completed in about 25 minutes, though we will give you the entire 50 minute discussion period to complete them.

There will also be a cumulative final exam. It will be in the style of the quizzes, but will be significantly longer. You must achieve a passing grade on the final exam to pass the class.

You may not bring supplemental material to the quizzes or final exam, that is, they are closed-book, and the use of notes, calculators, computers, phones, etc., is forbidden.

Quizzes and exams must be completed on your own: they are not collaborative!


Incompletes will be granted only in exceptional cases, and only if you have completed at least half the course with a passing grade. Prior to that, withdrawal is the recommended course of action.


I expect you to attend lectures and discussions.

  • If you will be absent (either from class, or from an exam) due to religious reasons, you must provide me with a written list of such dates within one week of your enrollment in the course.
  • If you will be absent for a University-related event, such as an athletic event, field trip, or performance, you must notify me as soon as possible.
  • If you are absent for health reasons, I expect you to notify me as soon as possible and provide written documentation.
  • If you are absent for other extenuating non-academic reasons, such as a military obligation, family illness, jury duty, automobile collision, etc., I expect you to notify me as soon as possible and provide written documentation.

If you must miss a quiz or exam for an excusable reason, I will work with you to find an acceptable time for you to take a makeup. If you miss a quiz or exam without prior notice, I will require an explanation and clear written documentation in order to judge whether the absence is excusable. Quizzes must be made up within a week unless there are documented exceptional circumstances (such as a hospitalization or extended jury duty).

Similarly, if you miss a class without prior notice, I will require an explanation and
written documentation in order to judge whether the absence is excusable.

Technology in the classroom

At the start of the semester, I will permit laptops and the like in the classroom. If it becomes clear that they are being used for purposes not directly related to the class, I will ban them. It is unfair to distract other students with Facebook feeds, animated ads, and the like.

Regardless, I recommend taking notes by hand. Research suggests that students who take written notes in class significantly outperform students who use electronic devices to take notes. Any code I write in lecture will be made available in the lecture notes.


Piazza is a online discussion management system. It will be used as the main hub for questions and answers in this course.

Piazza is a great tool but it can be abused. Please follow these guidelines in your use of Piazza:

  • You should use Piazza to ask questions and get advice on assignments. But you may not use Piazza to step through each problem you encounter in an assignment.
  • You may not post assignment solutions to Piazza, either in questions or answers to others’ questions.
  • If you must post code you are working on, you should do so only through private posts to the course instructors.
  • You should not post code without a thoughtful and articulate question. Do not post code and ask only, “what is wrong with my code?” See, for example, http://stackoverflow.com/help/how-to-ask or https://jvns.ca/blog/good-questions/ for constructive advice on asking questions, or http://catb.org/~esr/faqs/smart-questions.html for a jerkwad grumpier person’s advice.
  • You are encouraged to help other students by answering questions.

The course staff will monitor Piazza and answer your questions in a timely manner (generally within a day or less). But do not expect us to provide real-time answers on Piazza, especially in the last few hours before an assignment is due!

If a question has already been answered in a previous post we may not respond to you. If a question does not follow the guidelines above we may not answer it. If we find that a private question is relevant to a larger audience, we may make mark it public to help others in the course.

Academic honesty

General academic honesty statement

Since the integrity of the academic enterprise of any institution of higher education requires honesty in scholarship and research, academic honesty is required of all students at the University of Massachusetts Amherst. Academic dishonesty is prohibited in all programs of the University. Academic dishonesty includes but is not limited to: cheating, fabrication, plagiarism, and facilitating dishonesty. Appropriate sanctions may be imposed on any student who has committed an act of academic dishonesty. Instructors should take reasonable steps to address academic misconduct. Any person who has reason to believe that a student has committed academic dishonesty should bring such information to the attention of the appropriate course instructor as soon as possible. Instances of academic dishonesty not related to a specific course should be brought to the attention of the appropriate department Head or Chair. Since students are expected to be familiar with this policy and the commonly accepted standards of academic integrity, ignorance of such standards is not normally sufficient evidence of lack of intent.

Please read the UMass Academic Honesty Policy.

Course-specific academic honesty information

Academic dishonesty is usually the result of other problems in school. Please come see me or the TA if you are unable to keep up with the work for any reason and we will do our best to work something out. I want to see you succeed, but I will not tolerate academic dishonesty.

If you engage in academic dishonesty, you will almost certainly receive an F for the course. Further, if there are formal disciplinary proceedings, I will lobby for the maximum possible penalty. Investigating academic dishonesty is an unpleasant experience for both the instructor and the student. Please help me by avoiding any questionable behavior.

What is permitted and what is not? You may discuss material with others, but when collaboration is forbidden, your writing (code and prose) must be your own. The surest ways to avoid problems are as follows: When discussing problems with others, do not show any of your solution (code or otherwise) to others. When asking others for help, do not take notes about the solution other than to jot down publicly available references. When using Piazza, don’t copy/paste large chunks of code into your question. Instead, do the same thing you should do if asking a classmate for help: ask your question by describing the problem you’re having, or use a small synthetic example that illustrates your difficulty. If you must include a large chunk of your code to ask your question on Piazza, mark it as a “private” question, and only the course staff will be able to see it.

Copying and pasting another student’s code is a violation of academic honesty, and we will endeavor to detect this by any means available to us, including automated similarity analysis of submitted assignments. Be aware that if something looks like academic dishonesty to us, we will treat it as such, unless you can provide strong evidence to the contrary. When in doubt, it is your responsibility to contact the course staff about whether a potential action would be considered academic dishonesty.

Other academic regulations

The Office of the Registrar publishes Academic Regulations yearly. You should be familiar with them. Particularly relevant are the policies on attendance, absences due to religious observance, and examinations.

Accommodation statement

The University of Massachusetts Amherst is committed to providing an equal educational opportunity for all students. If you have a documented physical, psychological, or learning disability on file with Disability Services (DS), you may be eligible for reasonable academic accommodations to help you succeed in this course. If you have a documented disability that requires an accommodation, please notify me within the first two weeks of the semester so that we may make appropriate arrangements.