Programming assignments are an integral part of the course. Some students in the past commented that programming assignments should carry a much heavier weight because they devoted a lot of time to them, and I tend to agree with them. The main reason why programming assignments don't weigh as much as they should is that there is no sure way to ensure that students truly and wholly do the programming assignments themselves. Nevertheless, programming assignments still carry a significant weight. Perhaps more importantly, and many past students would attest to this, if you don't do the programming assignments or don't do them yourself, you will most likely not able to do well in the tests. Having said that, following are some advice to help you do well in the programming assignments and learn well by doing them - click here to first read a quotable quote about some psychological aspects of working in computer science. |
■ | Start early |
● | Don't make the common mistake that many students tend to make, which is to underestimate the complexity of the programming assignments and the time required to complete them. |
● | Allow yourself plenty of time and opportunity to seek clarification and/or help. |
● | Don't be one of those who have to wait in long lines that tend to form near the due dates. |
● | Don't be one of those who have to say, "I have finished everything but I cannot turn in my work on time because the print queue is four hours long." |
● | Take the following line to heart: "Cramming simply will not work or will at best not work well." |
● | Quotable quote: |
Programming is not an activity that can be reliably scheduled to take a predetermined amount of time. Even programs that look like they should be doable in 2 hours will often take 4 or 5 hours to complete. The best thing you can do for yourself is to say, "I have no idea how long this will take; I'd better get started right away." |
■ | Don't skip class to gain some extra time for doing assignment |
● | Trust me, "skipping class to gain some extra time for doing assignment" will never be a good idea in my class. |
► | Remember that lecture notes can only assist you in following lectures, not replacing them. |
► | Remember that not all things covered in class are in lecture notes. |
► | Remember that lecture notes may be corrected, updated, expanded, etc. during lectures. |
► | Remember that, where appropriate, assignment due dates may be extended or relaxed. |
● | The best way to not have to deal with the "skipping class to gain some extra time for doing assignment" temptation is to start work early and finish it on time. |
■ | Do according to specifications |
● | Most programming assignments require you to do them in some specific ways because they are meant to be exercises on certain concepts covered in class. Many times they are not the best ways to solve the associated problems. If you don't do them in the specified ways, however, you will defeat the intended purpose in part or in whole and will receive partial or no credits. |
● | Be sure to first carefully and fully read the descriptions and thoroughly understand them. |
● | Be sure to ask me if you are in doubt about a description or requirement; you risk losing points if you resolve it by simply assuming or guessing, by taking a vote with some fellow classmates, by believing in what someone else (besides me) interprets it, etc. (Recall what I said about starting early and allowing plenty of time and opportunity to seek clarification.) |
● | NOTE: You will not be penalized for doing more than what is required (but you will be penalized if you don't do what is required). |
■ | Minimize your chances of losing points |
● | In general, make it as easy as possible for me (or grader) to grade your work. |
► | Nicely organize and present your work. |
► | Maximize the readability and understandability of your work. |
► | Highest grade for a program that doesn't assemble/run is typically 30%. |
► | Highest grade for a program that assembles/runs but contains major "runtime error" (address not aligned, address out of bound, overflow, ...) is typically 60%. |
► | You risk losing up to 100% under one or more of the following circumstances: |
♯ | If your work does not fulfill the requirements (meet the specifications); |
♯ | If you turn in your work late; |
♯ | If you copy somebody else's work, or let somebody else copy your work. |