*************************************************** General Assignment Frequently Asked Questions (FAQ) *************************************************** * I don't know how to do *X* * This is typical and sometimes intentional as independent learning is critically important * Go to `google.ca `_ and type in *X* * This is not to dismiss your question --- it's how experienced programmers figure out how to do *X* * How long should this assignment take? * This will depend heavily on experience levels * At this stage, expect the assignments to take multiple hours * In other words, do not get discouraged if you are on hour 4 and you've yet to finish * Remember, you would not expect to write a high quality essay in a single one hour sitting * I think I did everything correctly, but it's still not working * This is typical * Sometimes bugs are simple and easy to find, and others are sneaky * Take your time with debugging and tracking down the problem * I recommend going through the code; what does the code you wrote actually say? * Consider using ``print`` to see what the values of your variables are at different points of your code * If you are still stuck after an hour or so of trying to get the broken part working, come to office hours * What do the provided functions do? * Have a read of the docstrings for the functions * Trying to figure out their functionality is part of the assignment * Learning to look at unfamiliar code is a critically important skill to learn * Some of the code in the provided functions looks like magic * This is normal, even with experienced programmers * It would be unusual if one were to look at a non-trivial block of code and immediately know what it is doing * At this stage, you may need to do a bit of googling to make sense of the code * This is an important skill to develop * Is it OK to solve the problems in a way you did not describe, since I believe my solution is better * It may be the case that you truly found a better way to solve the problem, but follow the provided instructions * Sometimes constraints are provided to you to emphasize a specific skill you are to learn and develop * Additionally, if you do not follow the instructions, it may break the automated testing of your code * How do I know if I have enough comments? * You don't really * Write your docstrings * If you have a block of code that you feel is not self-explanatory, consider adding a comment * Do not get carried away with adding comments * If possible, make the code itself as self-explanatory as possible, that way you don't need the comment * Can I work with a friend? * No * If the deadline is 11:55pm and I submit it shortly after that, will it still get marked? * No * It would be unfair to not be consistent and follow the outline set at the start of the semester * To hedge against a late submission, aim to submit the assignment well before the deadline * I accidentally submitted the wrong code --- will you accept the correct code even though it's late? * No * Unfortunately this is a common cheating strategy students take in order to submit their assignments late * Although you may have truly made this mistake, because cheating is so rampant, I cannot accept these submissions * Will I really get a 0 if the submission is done incorrectly? * Yes * Unfortunately, like submitting the wrong code, this is a common cheating strategy * I had technical difficulties when trying to submit, therefore it was late --- will you accept the submission now? * No * Like the others, this is another common cheating strategy * Because this is commonly used for cheating, we can't accept the submission * To hedge against this, aim to submit your assignment well before the deadline