Computer Science 314 -
Fall 2024 Programming Assignment Schedule and Guidelines |
General assignment requirements.
Programming Assignments: Individual assignments are to be completed on your own. You may not share solution code or experiment code with other students or other programmers. You may not use solutions obtained from the web or large language models (LLM) / generative AIs such as chatGPT. Review the class policy on improper collaboration from the class syllabus and how this applies to individual assignments.
If you are retaking the class you may re-use your assignments from previous semesters unless they were part of an academic integrity case or your worked on the assignment with a partner (Assignments 6, 8, and / or 10). However, if you are retaking the class I urge you, in the strongest possible terms, to NOT simply recycle your past attempt on assignments. You will NOT learn much if you just turn in your work from half a year ago. A huge amount of learning takes place by completing the assignments and so I urge you to redo the assignments if you are retaking the class.
A few of the assignments may be done in pairs using a technique called pair programming (Read the paper on pair programming to understand how the technique works.). Turn in one solution for the pair. (Submit the assignment to one partners Canvas account.) Once you start working with a partner on an assignment you may not switch partners. If you do not wish to work with a partner after starting on an assignment you must both complete it individually. You must inform your TA(s) via email if you start working on an assignment with another person and decide to finish as individuals. You may not re-pair after starting the assignment with someone else. You may NOT start working on on your own and then start working with another person. When working on pair programming assignments you are expected to spend at least 80% of your time on the assignment working with your partner, together at one computer, taking terms typing, and navigating.
If you are retaking CS314 you must start from scratch on assignments unless you worked alone on the assignment in previous semesters and are working alone this semester. You may not reuse code from a partner from previous semesters and you may not use code you created in a previous semester with a partner this semester.
It is your responsibility to turn in the right thing, in the right format, to the right place, on time. Failure to meet your responsibilities will lead to consequences, typically the loss of significant points on the assignment.
Programs must be turned in to the correct Canvas assignment by the due date and time. We do not accept submissions via any other mechanism,
Program Hygiene and Best Practices (The CS314 Style Guide):
"The cleaner and nicer the
program, the faster it's going to run. And if it doesn't, it'll be easy to make
it fast." -
Joshua Bloch
"Code is read more often
than it is written. Code should always be written in a way that promotes
readability." -
Guido van Rossum
"
Programs must be written in Java, using the Java 2 Platform Standard Edition 8.0 or a later version of Java but limiting yourself to the features of Java 8.
Assignments are due by 11pm on the due date.,
You have 8 slip (late) days in 1 day units (1 second to 24 hours = 1 day) for the semester.
Assignments must compile and run in the Gradescope environment set up for each assignment. This is very similar to the environment on the CS department lab machines. We will not use any IDE when grading. Programs are run from the command line. To ensure your programs work you can transfer your source code (.java files) to your CS department account and then compile and run them from the command line. See this page for more help. You can move the program to a CS machine in many ways and log into one of the lab computers to test it. Alternatively, SSHing into a CS department machine requires you to set up SSH keys on your remote system (laptop, desktop) and your CS department account. See this page for help with Windows and this page for help with Linux and Macs.
Assignments must be turned in via Gradescope, accessed via Canvas, and must be turned in to the correct assignment. You must turn in a file with the correct name and in the proper format. You must turn in the assignment via the Gradescope account created and accessed via Canvas. Submission from extra, student created accounts, shall not be graded and shall received a score of 0.
If you do not follow the instructions and specifications for assignments (name, where to turn in, file format) you cause extra work for the graders and myself. As a student and potential software developer you must follow instructions and specifications. When you fail to follow instructions it causes special cases which require precious time to handle.
Realize there are hundreds of students in this course and only a few TAs. We use scripts to streamline some aspects of grading. Failure to follow the assignment instructions and specifications causes these scripts to fail and the graders must spend more time on your submission. The following penalties are in place because there must be consequences for failure to follow instructions. Please read this account of a student who has seen the issue from both sides.
If you fail to follow the instructions for turning in assignments you will likely lose all points. Specific penalties for failure to follow instructions and specifications on assignments:
Assignments grades are not scaled to effort or time spent working on them. You may spend a large amount of time working on an assignment and still lose many points because your program is not correct or your program hygiene does not follow the CS314 standards. The programs are not graded on a strictly linear scale. Points are deducted for failed test cases, poor program hygiene, poor efficiency, lack of necessary comments, convoluted algorithms, lack of student provided test cases, lack of answers to questions regarding the assignment, and other reasons deemed appropriate by the teaching staff.
Assignments will be checked for plagiarism and copying using Moss. You may discuss high level design issues with your fellow students, but sharing algorithms in any form or code, discussing the problems at such a level of detail that your solutions are essentially the same, or obtaining solutions from another source including a LLM / generative AI such as chatGPT constitutes academic dishonesty and will result in an F for the course. Review the class policy on academic dishonesty.
The teaching staff will grade, comment, return, and post the grade for an assignment within 6 days. A grade can only be disputed within the following 5 days. (This isn't a weekend bazaar. If there is an error in your grade you have one week to contact your grader. We won't go back at the end of the term to look at an assignment from earlier in the term.)
Please do not ask for a regrade lightly. Your grade could in fact go down as a result of the regrade. Do not quibble over a few points. Regrades are for serious issues due to the time required. In the past the vast majority of regrades have resulted in no change in the grade or a lower grade.
Please contact your TA if you assignment is not graded in a timely and accurate fashion.
All grade disputes must be made in writing by email to the grader with supporting evidence and will result in the entire assignment being re-graded which may result in a lower grade.
Testing and Correctness:
Assignments shall be checked for correctness with more tests generated by the teaching staff. Your assignment may pass all the provided tests and still be incorrect. Grading test cases shall not be published. If you would like to see the test specific test cases your code failed on you must meet with Mike or your TA during their office hours to see the test cases.