Course Syllabus
Grades
Your grades in this class will be based on the following:
- The scores you receive on Assignments
- Most assignments will be worth 100 points, and there will be an assignment almost every week
- The scores you receive on in-class Quizzes
- Most quizzes will be worth 20 points, and there will be a quiz at the beginning of most lectures
- Performance Review
- If I believe that you deserve a better grade than your quantitative assignment and quiz scores would indicate then I may choose to give you one
- This is subjective. You should not expect a better grade than your assignment scores, and if you get one it is because I have decided "this is a person that I would like to work with" or I think "if this person were working for me I would give him/her a raise". As industry instructors we have been asked to assign grades with these criteria in mind, to try and help prepare you for the industry.
- These reviews will never hurt your grade (if I decide, for example, that I would not like to work with you). My personal feelings can only potentially help your grade.
Homework
- There will be a new assignment almost every week, and almost every assignment will be due the following week
- There are a few exceptions for holidays and busy times in your projects class
- In general you should expect to spend about 6-10 hours outside of class for a week-long assignment
- Be aware that the above should be the standard expectation. You should not be surprised if some assignments don't take you that long, and you should not be surprised if some assignments take you longer!
- I will do my best to make the assignments take the right amount of work to complete, but this is a hard task and you should expect that I will make mistakes and that some assignments will require more time than I had intended
- Each homework assignment will build off of the previous assignment. This means that you should expect that there will be some assignments where you will have extra work to do based on previous design decisions that you have made, and that you end up spending a significant amount of time changing your existing code in a way that has little to do with the current assignment.
- Each assignment is due:
- At 6:00 PM on Tuesday if you attend the class the night before
- At 6:00 PM on Monday if you do not attend class that night
- This is intended to prevent you from skipping class to work on homework. Please come to class!
- You must turn in your assignment on time!
- Every day your assignment is late you will lose half of the possible score. (In other words, after one day you will get 1/2 the grade you otherwise would have, after two days you will get 1/4 the grade, etc.)
- For example, if an assignment is due on September 6th at 6:00 PM and you submit it at 7:00 PM instead the most points you could receive would be 50/100 (assuming that the assignment is perfect). If you submitted by 6:00 PM on September 7th you could still get 50/100, but if you turned it in after that the most you could get would be 25/100.
- 6:00 PM means 6:00 PM! If you submit an assignment at 6:10 PM it is late.
- In general, it is better to turn in an unfinished assignment on time. If you almost got things working, but not quite, you will still get a good grade on an assignment. However:
- You must write a high quality write-up
- Do not spend all of your time trying to get your code working and then have a one sentence write-up. If you do this you will not get a good score!
- If the assignment is due in an hour and things aren't working you should seriously consider stopping further work, cleaning up the code, and then spending the rest of the time doing the write-up
- You must make it clear in your write-up what requirements don't work
- If your write-up describes what you tried and any theories you have about what might be going wrong you are likely to still get a good score
- If you don't mention any missing requirements, however, I will tend to assume that you were hoping that I wouldn't notice and not be as lenient with grading. This is especially true if I waste time trying to figure out what I am doing wrong when using your program.
- Please do everything possible to make sure your assignment compiles and runs. If your assignment does not compile or run then it becomes much harder for me to grade, and really the only way to do so fairly would be for me to debug your code myself and get it working. Doing this becomes prohibitive for me because of the number of students in the class. I will decide on a case-by-case basis what to do in situations like this, but there is a good chance you will receive a poor grade for the assignment because I will have to assume the worst (If the assignment doesn't run then as far as I know nothing works).
- If you have a special circumstance and think that you need extra time to complete an assignment on time then email me (and Saurabh) and ask
- I tend to be pretty lenient and understanding, and there's a good chance I will grant an extension. However:
- Sending an email is no guarantee that an extension will be given. Don't count on it without talking to me first, and don't wait until the last minute to send something. (If you don't send me something until 5:55 on Monday I probably won't grant an extension even if I see the email in time.)
- Please tell me as soon as you know that there is an issue! Also, realize that if you get behind it will be hard to catch up. The sooner that you let me know about individual circumstances the more willing I will be to work out something on a case-by-case basis.
- If I agree to give you more time, I will explicitly email the new time and date when your assignment is due
- For example, I might say "Ok, your Assignment 01 is now due on September 6th at 10:00 PM."
- If I have not sent this confirmation then I have not agreed to give you an extension! Until and unless you get a confirmation your assignment is still due at the expected time!
- If you get an extension, the same rules about being late apply to that new time: You will lose 50% of your assignment's score for every day you are late based on the new time that I confirm.
- Every homework assignment will consist of a programming part and a write-up
- Information about submitting homework assignments is here
- After Saurabh grades an assignment he will send an email to you and John-Paul with his report, including the score that he thinks the assignment deserves. If you disagree with anything he says or thinks that he missed something you should reply to this email and everyone can talk through it. John-Paul will make the final decision and assign the actual score.
- Every homework assignment will build off of the previous one. That means that if you don't get one assignment working, you will already be behind for the subsequent assignment (especially early in the class). Please keep up, and let me know sooner rather than later if you fear that you are falling behind so that we can get you back on track.
Point penalties for every assignment
The following are the points you will lose for things that must work on every assignment (John-Paul reserves the right to update these if necessary):
- If a configuration doesn't build without errors:
- -5 points
- (This means you will automatically lose 20 points on an assignment if no configurations build)
- If a configuration doesn't build on the first attempt, but does on the second with no other changes it is only:
- -2 points
- If a configuration builds, but crashes when run (even if assets aren't built):
- -4 points
- If a configuration builds, but exits with no message displayed to the user when run (regardless of whether assets are built or not):
- -3 points
- If a configuration builds, but exits when run and shows a message to the user saying that something went wrong and it is exiting:
- -2 points
- If a write-up doesn't have a link to an executable game:
- -5 points
- If a write-up has a link to an executable game, but it requires more than one click to download:
- -4 points
Please note that all of these are automatic penalties that will always be applied, but additional penalties may still be assigned based on John-Paul or Saurabh's judgement. If an assignment doesn't run the amount of points that you lose will heavily depend on your write-up and whether we believe that you really understood it and tried hard but ran into unexpected problems. If we don't believe that then you will likely lose many more points.
Quizzes
- Quizzes will be given at the start of almost every class
- The time for taking the quiz will start immediately at 6:00 pm, and you will only have 5 minutes to complete it
- If you are late to class you will not be given any time extensions to complete the quiz
- I will pass out papers with the quiz. You may not use laptops or phones while taking the quiz.
- It is your responsibility to have something to write with (e.g. pen or pencil). If you don't have a way of completing the quiz you will lose points for that day.
Final Projects
- Final Projects must be presented on the evening of Monday, December 12th (which is when the university has scheduled our final period). You must be here to present; don't schedule any travel until after this date!
Cheating
- You are free to discuss homework assignments with your fellow students, and you are welcome to get help from fellow students. You are even free to show fellow students how you have solved a problem or fixed a bug in order to help them. You may not, however, copy code. You may never copy someone else's code, under any circumstances.
- One of the primary goals of this class is to improve your software architecture and design skills. You should always re-write any code "in your own words" to learn how it works and to make it your own.
- If you ever copy and paste a fellow student's code into your own assignment, that is cheating!
- Even if you change the variable names of code that you have copied and pasted, that is still cheating!
- Even if you change the values of certain variables to see what happens, that is still cheating!
- In this class you should never use your computer's copy/paste functionality to get code written by someone else and put it in your own assignments. If you do, and I catch you, I will consider it cheating and you will fail the class (see below).
- The one exception to this rule is any example code that I give out. You are free to copy/paste any code that comes from this class website or that I email out.
- The one other potential exception to this rule would be if you find example code from Microsoft's documentation about Windows or DirectX (or, later in the class, example code from Autodesk's documentation about Maya). In those cases, though, please don't just copy/paste directly: At least try to understand the code and re-write it "in your own words".
- Besides those cases mentioned above, copying and pasting code from any other source is considered cheating.
- If you get caught copying code you will receive an automatic failing grade for the class and will be invited to stop attending lectures.
Course Summary:
| Date | Details | Due |
|---|---|---|