The following is an approximate breakdown of course grades.
  • It is subject to change at any point, including after the final exam.
  • Exams will be curved, homeworks will not.
  • The relative weighting of the midterm to the final will be determined at the end of the semester, at the sole discretion of the instructors.
  • Participation will be based on your responses to in-class polls. We will make allow a reasonable number of absences to cover illness, religious holidays, etc.
  • Extra credit will be factored into your homework grade, but do not assume it will count the same as regular homework points.
  • Homework submissions will be evaluated for coding style. While we have provided a style guide to help you write better code, we reserve the right to deduct points for code that, while not explicitly violating the style guide, is nonetheless inefficient, messy, or unclear.
  • Numerous missed or substantially blank assignments, missed midterm or final exam, violations of course policy, and academic dishonesty are all grounds for additional, severe grade deductions up to an including failure in the course.
  • Final grade determinations are made by instructors at their sole discretion.
  • Incompletes will be granted only in exceptional circumstances, usually because of extended illness.
ComponentPercent
Homeworks60%
Exams35%
Participation5%
Lecture attendance is required. We will be using Poll Everywhere to run polls during class, and your responses will form the basis for your participation grade.
  • We only care that you think about the poll question and give your best answer. It will not have to be correct, because we use polls to start discussions, not to test you.
  • You can register with the CIS 460 poll account on Poll Everywhere's web site. Please use your Penn email when you register so that we can properly track your participation.
  • You may not allow someone else to respond to polls fo you if you are absent. This is a violation of course policy, and will result in a severe grade deduction and/or referral to the OSC for everyone involved.
  • A reasonable blanket allowance will be made for polls missed due to illness, religious holidays, etc. We don't need to hear from you about these, and we won't be noting them.
  • Homework will generally be due at 11:59 PM on the due date. The deadline for each assignment is posted on the Dashboard.
  • Submit your assignments through the Dashboard. We will not accept e-mailed submissions.
  • You may submit a homework assignment up to 24 hours late and expend one "late day". You do not need to ask permission or give a reason for using a late day; they will be handled automatically by the submissions system.
  • You have a total of three late days. Once you have expended them, that's it!
  • Deadlines and late days are enforced automatically by the submissions system. If you can no longer receive credit for an assignment, the submission link will disappear and you will be out of luck.
  • Many assignments build upon the previous assignment. If you don't get a feature working in one assignment, you may still need to fix or add it in order to complete the next assignment.
  • Because homeworks are cumulative, it is extremely difficult to catch up if you fall behind. If you feel you are falling behind, come to instructor office hours PROMPTLY, and we will work with you to help you get back on track. If you wait, the only viable option is likely to be dropping or withdrawing from the class.
The following principles govern what is and is not allowed:
  • All submitted work must be your own. You may not share code. You may not use code or solutions from the web. If you violate these rules, you will be referred to the Office of Student Conduct.
  • You must never publicly post your code or make it available (e.g. via GitHub), even after the course is over. You may share it privately with recruiters or others who will definitely never be taking {{FULL_COURSE}} or a similar class, provided you make clear it must not be redistributed.
  • You must scrupulously cite every person who help you and every resource you use. Make a log of this as you work. This is not only good scientific practice, it will help you learn better and be a value resource for future assignments and exams. Examples of good citations include:
    • 2015-01-14 2:00pm: Benedict helped me understand how determinants work in office hours.
    • 2015-01-14 4:00pm: My fellow classmate Joe Schmo helped solve a memory bug in my program.
    • 2015-01-14 5:00pm: I looked up how matrix multiplication works at http://en.wikipedia.org/wiki/Matrix_multiplication.
  • Don't be clever about the collaboration policy.


The following are allowed and encouraged:
  • When working on a group project, sharing code with assigned partners.
  • Discussing algorithms and how to do assignments. Be sure to include who you discuss with and the topic in your log.
  • Help each other debug code once you already have a version of your own. It is permissible to look at each others' code in this circumstance, but you must log anyone who helps you debug and what you are debugging. Keep track of what the bug was and how you solved it while you're at it: doing so will almost certainly save you hours of work on subsequent assignments.
  • Using the web as a resource to understand algorithms, for C++ and Qt reference, and for sample Qt and OpenGL code. Except as noted under, "You do not need to cite," you should log the URLs of these resources.


You do not need to cite the course web site and materials we provide, C++, Qt, or OpenGL API documentation, or sites that we list in the course syllabus. We expect you will use these, many of them more or less continuously. You should cite sample code you find online and use as the basis for building your UI or your own OpenGL code.