15-122 Principles of Imperative Computation
Assignments

The written and programming assignments are the heart of this course and account for 45% of your grade. Much of what you learn in this course will be through completing these assignments. They must be done individually.

Programming assignments will be submitted through Autolab. Please authenticate with your Andrew ID and password and make sure you can access the site.

Assignment Schedule

The schedule is subject to change throughout the semester

    Out Points Assignment Due

Asst 0 5 Getting Started     Thu Sep 6
   

Asst 1 50 Theory Writeup (TEX)   Theory   Thu Sep 13 at start of lecture
Programming Writeup
(Starter code)
(Corrected carnegie-reflect.png)
(Corrected g5-invert100.png)
(Corrected g5-invert255.png)
  Programming   Thu Sep 13 11:59pm

Asst 2 55 Programming Writeup
(Starter Code)
  Programming   Mon Sep 24 11:59pm
Theory Writeup (TeX)   Written   Tue Sep 25 at start of lecture

Asst 3 50 Theory Writeup (TeX) (Selected Solutions)   Written   Thu Oct 4 at start of lecture
Programming Writeup
(Starter Code)
  Programming   Thu Oct 4 11:59pm

Asst 4 50 Theory Writeup (TeX) (Selected Solutions)   Written   Thu Oct 18 at start of lecture
Programming Writeup
(Starter Code)
  Programming   Fri Oct 19 11:59pm

Asst 5 50 Programming Writeup
(Starter Code)
  Programming   Mon Oct 29 11:59pm
Theory Writeup (TeX) (minheap.png) (Selected Solutions)   Written   Tue Oct 30 at start of lecture

Asst 6 50 Theory Writeup (TeX) (treap1.png) (Selected Solutions)   Written   Thu Nov 8 at start of lecture
Programming Writeup
(Starter Code)
  Programming   Thu Nov 8 11:59pm

Asst 7 50 Programming Writeup
(Starter Code)
  Programming   Mon Nov 19 11:59pm
Theory Writeup (TeX) (tst1.png) (tst3.png) (Selected Solutions)   Written   Tue Nov 20 at start of lecture

Asst 8 100 Programming Writeup (Starter Code)
(Updated testvm script)
  Programming   Thu Dec 6 at 11:59pm
(No Theory Writeup)   Written   none

Collaboration and Academic Integrity

The university policies and procedures on academic integrity will be applied rigorously; all students are required to fill out this form indicating that they understand and accept this policy.

The value of your degree depends on the academic integrity of yourself and your peers in each of your classes. It is expected that, unless otherwise instructed, the work you submit as your own will be your own work and not someone else's work or a collaboration between yourself and other(s).

Please read the University Policy on Cheating and Plagiarism carefully to understand the penalties associated with academic dishonesty at CMU. In this class, cheating/copying/plagiarism means copying all or part of a program or homework solution from another student or unauthorized source such as the Internet, knowingly giving such information to another student, or giving or receiving unauthorized information during an examination. In general, each solution you submit (quiz, written assignment, programming assignment, midterm or final exam) must be your own work. In the event that you use information written by another person in your solution, you must cite the source of this information (and receive prior permission if unsure whether this is permitted). It is considered cheating to compare complete or partial answers, discuss details of solutions, or sit near another person who is taking the same course and try to complete the assignment together.

Your course instructor reserves the right to determine an appropriate penalty based on the violation of academic dishonesty that occurs. Violations of the university policy can result in severe penalties including failing this course and possible expulsion from Carnegie Mellon University. If you have any questions about this policy and any work you are doing in the course, please feel free to contact your instructor for help.

We will be using the Moss system to detect software plagiarism.

It is not considered cheating to clarify vague points in the assignments, lectures, lecture notes, or to give help or receive help in using the computer systems, compilers, debuggers, profilers, or other facilities.

Due Dates and Late Days

All handins of written assignments are on paper at the beginning of lecture (9:00am) on the due date. Assignments handed in after this time will receive no credit. There are no late days or partial credit for late written assignments.

All handins of programming assignments are electronic via hand-in scripts on the university's linux systems. You may submit programs multiple times until they are due without penalty, but only your final hand-in will be graded.

All programming assignments are due at 11:59pm on the specified due date. Every student has up to 3 late days to use for any programming assignment throughout the semester. On any given assignment, you may use at most one late day, so if the assignment is due on 11:59pm on Thursday the last possible time to hand in an assignment is 11:59pm on the next day (Friday). Late submissions from students who have exhausted their late days will receive no credit.

Exceptions to the policies above will be granted only in exceptional circumstances and must be discussed with and approved by the course instructor in advance.

Grading

Grading criteria are stated separately with each assignment.

Grading for written assignments is based on the correctness of the answer and the presentation of your reasoning. Strive for clarity and conciseness, but show how you arrived at the answer. If you cannot solve a problem, explaining your approach and why you failed is encouraged. Such answers will be given partial credit.

The most important criterion for programming assignments is always correctness. Buggy code is useless, and is likely to get a low score. It is important that your code be readable and well-organized. This includes proper use of contracts, invariants, and clear comments.

Grades are based primarily on the total score for the class out of 1000 points. There are no predetermined cut-offs, but 900 and above is guaranteed to be an A, 800 and above a B, etc. The teaching staff will decide on grade boundaries at the end of the year. We will use intangibles, such as participation in class and recitation for those close to grade boundaries.


[ Home | Schedule | Assignments | Resources ]
[ Piazza | Blackboard ]

fp@cs
Frank Pfenning