15-150: Functional Programming, Spring 2017

Academic Integrity

All students are expected to read, be familiar with, and comply with, the CMU Policy on Academic Integrity.

In addition you must read, be familiar with, and comply with the following 15-150 policy rules:

Any work submitted as a homework assignment or an examination must be entirely your own, developed this semester, and must not be derived in part or whole from work of others. You may not consult another student, except as outlined in the paragraph about cooperative learning below. You may consult a current teaching assistant for this course or a tutor provided by Academic Development, but you should not ask these individuals for detailed help in writing homework solutions. You must not search the internet (or library or other external source) for homework solutions, and you must not use solutions developed in prior semesters of this course or in related courses. Even if you took this course in a prior semester you are not allowed to re-use solutions from before; if you have any question about what is appropriate, please ask the course staff. You must not copy, use as a guide, or cut-and-paste, any work of another student. You must not look at or alter any part of anyone else's homework solution or exam paper.

You should take appropriate care to prevent other students from cheating, by safeguarding your own work with proper protection to ensure privacy, and by not allowing other students to have access to your files or computer.

To facilitate cooperative learning, it is permissible to discuss lecture notes and conceptual topics. It is also permissible to discuss a homework assignment with other students, provided that the following whiteboard policy is respected: A discussion may take place at the whiteboard (or using scrap paper), but (a) no one is allowed to take notes or record the discussion or what is written on the board (or scrap paper) and (b) you must allow four hours to lapse after any discussion before working on the assignment and (c) you must mention in your writeup or code with whom you collaborated and (d) the discussion may not be electronic in any way - the conversation must happen in person unless you have received instructor approval and (e) you must enter the andrew ids of all students you collaborated with into the collab.txt file provided in your homework handout. (The fact that you can recreate the solution from memory after four hours is taken as proof that you actually understood it. Giving credit to others for collaborative ideas is good practice and reduces misunderstandings regarding plagiarism.)

We may run automatic code comparison software (such as MOSS) on homework submissions to compare solutions from this semester and solutions from earlier semesters. This software is very good at detecting similarities that suggest collaboration or other cheating during code design, even after an attempt to obfuscate. The signal-to-noise ratio in MOSS reports is usually very distinctive, so we can tell if any part of a student's handed in work is derived from some other source.

Violations of this policy will be investigated, and may result in zero scores on any assignments brought under suspicion and a report to the university authorities. This may also lead to a disciplinary hearing followed by suspension or expulsion from the university. In short: don't cheat! It isn't worth the risk.

Homework Assignments


Each student has 3 late days available to them during the course of the semester. You may use a maximum of one late day on any assignment, and they are applied automatically. All you have to do is submit your homework by Tuesday at midnight and you're good to go. Autolab may show this as a penalty late day, but don't worry about that since we'll count how many late days you've used separately. If you submit past Tuesday at midnight, or attempt to use a late day when you have none remaining you will get a 0 on the assignment.

In general there will be no extensions on assignments. If you think you really really need an extension on a particular assignment (e.g., due to severe illness or major personal/family emergencies), contact the instructors as soon as possible before the deadline. Please be aware that extensions are entirely discretionary and may not be granted. The instructors will most likely require confirmation from University Health Services or your academic advisor, as appropriate.


Any source code that you submit must compile cleanly with an unmodified version of the starter code for that assignment. If you submit source code that does not compile cleanly, you will lose a significant amount of credit for that assignment. In particular, the TAs will not grade any of your code.


Each homework assignment will come with a check script. We will not grade assignments that do not pass all of the checks. You should not consider your assignment submitted until you have run the check script and passed all the tests.

The script verifies some very basic properties about your submission: that none of the files have zero size; that all the files are named correctly; that your code compiles with clean copies of any starter code; that any PDFs seem to be valid; etc. In particular, it is not a grading script. Passing the check script means that your assignment will be graded; it does not mean anything about the score you will receive on it.

You should submit written answers as typeset PDFs. The PDFs that you submit containing your written answers must be valid and complete. Invalid PDFs will not receive credit for anything that might have been in them. Be careful to submit your solution PDF for an assignment, not the assignment writeup or some other PDF; those are invalid submissions.

After submitting an assignment, verify that you submitted everything properly, by examining the submission on Autolab. It is your responsibility to ensure that the assignment was submitted properly. Leave plenty of time for this visual verification; last minute submissions are very very risky.


There will be two midterms and one final examination in this course. The midterms will be given during class periods, the final as scheduled by the registrar.

You may bring one double-sided 8.5" x 11" page of notes to each examination. You may not refer to any other person or source, besides the course staff, during the examination.

Please bring a pen to both midterms, as we will ask you to write your answers in blue or black ink.
(You may write in pencil on the final exam, if you wish. We will keep the final exams.)

Missed examinations count as zero credit. Showing up late for an examination does not extend the end time of the exam. Except in the case of dire medical or family emergencies, no make-up examinations will be administered.

You must take the midterm and final exams to pass the class. Failure to take an examination will result in a failing grade for the course.


Lab attendance is mandatory and is worth 10% of your grade. If for an official reason (i.e., interview, conference, special academic event, etc.) you cannot attend lab, you can still receive credit by (1) informing your instructors before the lab you are going to miss and (2) completing the lab writeup and showing your solutions to a TA up to a week after the lab.

Taking Notes

Please take notes by writing or typing. Do not record or tape lectures electronically, whether by audio or video.

Specifically: No student may record or tape any classroom activity without the express written consent of the instructor. If a student believes that he/she is disabled and needs to record or tape classroom activities, he/she should contact the Office of Disability Resources to request an appropriate accommodation.

Grading Policy

last modified 01:49, 19 Jan 2017
Valid CSS! Valid XHTML 1.0 Strict