Generic Submission Instructions
You may form groups of up to 3
people.
Each homework will be split into
two parts: Part 1 will be written problems, and Part 2 will be one or more programming
problems. You will be using Blackboard for submissions to Part 1 and the
website HackerRank for submissions to Part 2.
To submit
the assignment, your group must create a single BlackBoard
submission with your type set solutions to the homework. It must contain the
following:
·
The names
and school email addresses of the members of your group
·
Your type
set solutions to Part 1 of the assignment
·
The HackerRank username you submitted Part 2 under, exactly as
it appears on the HackerRank website. We will not be
inferring usernames from your names, email addresses, or misspelled usernames.
Note that you do not need to submit
any code on Blackboard. As long as you made a submission on the HackerRank site, and properly conveyed the username you
used, we will be able to view your code and how it ran on the test cases. We
will ignore any code submitted through BlackBoard.
Programming Problem Instructions
For the
programming assignments this semester, we will be using the website HackerRank for managing the assignments. The advantages of
this for you, the students, are that you can get immediate feedback on your
submissions, and work in whatever language / environment is most comfortable to
you.
For each
assignment, we will post a link to the HackerRank
competition page where we have set up the problem. To submit to the
competition, you must do the following:
·
Create a single
HackerRank username for your group. If you already
have an existing account, you may use this. However, keep in mind that the
scoreboard for the assignment will show the usernames of the participants. If
you wish to remain anonymous, you should have a username which does not reflect
your identity. Please only use appropriate words and phrases when creating your
username.
·
Follow the
provided link to the assignment page, and choose the relevant problem from the
competition challenges. From here, you may use their built in editor to submit
your code in whichever language you are using.
Note that on HackerRank,
test case input comes into stdin, and output must be
written to stdout. The run time of your submission
must also be within the acceptable time limit bounds, with stronger limits
enforced for the faster languages. For example, C/C++ submissions must run
within 1 second, while Python submissions are allowed 10 seconds. We will
ensure that the standard solutions for the given assignments can run well
within these bounds.
The
grading will be almost entirely based on the behavior of your code on the test
cases, with 10% of the points based on code style and readability. We expect
that the code will be reasonably commented, with variable and function names
that make sense. The easier your code is to understand, the less time we the
graders have to spend reviewing it, and the more likely you will be to receive
full credit.
Note that
it is possible to resubmit the assignment, either because you did not pass all
the test cases on the previous try, or because you want to try a new solution.
When grading, we will always grade the most recent submission from your group.
If you wish to try new submissions, that is fine. However, keep an eye on the
submission clock, and make sure that the last thing you submit is the working
code you want us to grade.
The
deadline for the assignment will also appear on the competition page, as a
clock counting down. When the timer reaches 0, all submissions will be locked,
and you will not be able to submit again. Start the assignment early, and avoid
the pain of having working code but being too late to submit it to the server.
We will not accept late assignments.
In
addition to passing all of the test cases, we will also be checking each
group's submission to see that instructions regarding the assignment were
followed. It is possible to pass all the test cases while disregarding the
instructions: THESE SUBMISSIONS WILL BE GIVEN A GRADE OF 0. If you have any
questions about the problem statement and what we are asking you to implement,
please ask them early on. If you have any doubts that what you did is correct,
feel free to show me your code during office hours and I will give feedback. We
want to give you the freedom to complete the assignments in the way you feel
works best, but for some assignments we will ask you to implement specific
algorithms. For these assignments, you must do as asked.
Finally,
a word on cheating. We will take suspected cases of cheating very seriously,
and will investigate them fully. We consider the following acts evidence of
cheating:
·
Identical
code or comments beyond coincidence from different groups' submissions
·
Identical
code or comments from code available on the internet
·
Purposefully
obfuscated code, to hide code copied from others.
·
Code which
was not written by any of your group members
·
Copying code
from other groups, and modifying it to make it appear original
·
Claiming
another group's HackerRank username as your own.
You are allowed to discuss the problem with
others outside of your group, so long as any discussion does not involve
discussing or sharing code. The HackerRank website
automatically runs plagiarism checks on submissions, and we the graders will be
inspecting submissions to check for plagiarism. If we suspect a group of
cheating, we may ask them to come in to office hours and answer some questions
so that we have a better perspective. If we feel that the evidence of cheating
is strong enough, we may skip this step and report the offenders directly to
OSCCR, as well as giving the involved parties a 0 for the assignment. Do not
"borrow" code from others, do not "borrow" code from the internet,
and do not let other groups look at your code. There will be a zero tolerance
policy for confirmed cases of cheating.