When you deploy your software, you release it to your customer. For CSC 217, that means your work is ready for evaluation by the teaching staff. We will evaluate your work against the Lab 07 rubric. As you compare your submission against the rubric and make your final push to GitHub, you should complete these final checks:
- You have met the requirements and design for the Lab 07
PackSchedulerproject. - You have a green ball on your lab section’s Jenkins (No test failures and no static analysis notifications).
- All student unit tests pass with a green bar (0 errors).
- At least 80% statement coverage on non-UI classes. We now have a check for coverage of > 80% for each class. If you don’t have coverage of > 80% line coverage for every non-UI class, you will have a yellow ball and the teaching staff tests will not run.
- All teaching staff JUnit tests pass with a green bar (0 errors).
- There are no FindBugs notifications.
- There are no PMD notifications.
- There are no CheckStyle notifications.
- All design files are in the appropriate locations and pushed to GitHub.
- All code is commented with meaningful comments.
- AI usage, or lack thereof, is documented in
README.md. - Javadoc webpages are generated with the latest comments.
- That you meet all rubric items for the assignment.
Make sure that you push all code and other required artifacts to GitHub by the assignment deadline. Check your Jenkins results on your lab’s Jenkins server. Lab assignments will not be accepted late!
To generate Javadoc, you need to configure and run the Javadoc tool, fix Javadoc errors and warnings, and check the generated Javadoc pages. Make sure you push your changes to GitHub!
Generate Javadoc
Commenting your code is important! Comments describe what the code is supposed to do. At a minimum, you should comment your classes, fields, and methods. All methods should be Javadoc-ed, including methods that were automatically generated by Eclipse. When working with CSC 216 projects, you should delete any automatically generated non-Javadoc documentation and replace it with Javadoc appropriate for the overridden method.
Java provides the Javadoc tool to generate a set of web pages that display the comments for your code.
Lab Checks
There are several checks that will occur during your build to ensure that you’re following software engineering best practices:
- Library checks: You’ll be working with the
SortedListclass that is part of the CSC 217Collections library. Additionally, you’re creating a customArrayListimplementation. You must remove all of your references tojava.util.ArrayListfrom your project - including the Javadoc. If you receive a red ball and a message in the console output about usingjava.util.ArrayListsearch your project for the string, remove thedoc/folder, and regenerate your Javadoc! - Coverage checks: You must have 80% coverage for each non-GUI and non-test class in
PackScheduler. A tool will check that you have passed the 80% threshold before running any of the teaching tests. A class with less than 95% method coverage will keep you at a yellow ball, but will let the teaching staff tests run.
Collaboration Check-in
Students working on teams must complete the following two forms before the lab deadline:
AI Policy
As per the AI policy in the CSC 217 syllabus, you may use AI as a learning assistant, not a homework assistant.
If you use AI, you MUST cite it in your README.md file. You MUST also document if you did NOT use AI!
Lab Deadlines & Jenkins Servers
All labs are due 10 minutes before the start of the next lab. Additionally, each lab section has their own dedicated lab Jenkins server. The table below provides the deadline and server URL for each lab section for the current semester.
| Section 201 | 3/30/2026 10:30am | https://csc217-201-jenk.csc.ncsu.edu/ |
| Section 202 | 3/30/2026 12:40pm | https://csc217-202-jenk.csc.ncsu.edu/ |
| Section 210 | 3/31/2026 8:00am | https://csc217-210-jenk.csc.ncsu.edu/ |
| Section 211 | 3/31/2026 10:30am | https://csc217-211-jenk.csc.ncsu.edu/ |
| Section 213 | 3/31/2026 2:50pm | https://csc217-213-jenk.csc.ncsu.edu/ |
| Section 221 | 4/1/2026 10:30am | https://csc217-221-jenk.csc.ncsu.edu/ |
| Section 222 | 4/1/2026 12:40pm | https://csc217-222-jenk.csc.ncsu.edu/ |
| Section 731 | 3/31/2026 11:45pm | https://csc217-731-jenk.csc.ncsu.edu/ |
| Section 601 | 3/31/2026 11:45pm | https://csc217-601-jenk.csc.ncsu.edu/ |
Lab Rubric
You will be evaluated out of 70 points in the Technical Rubric. Synchronous students will also be evaluated on their teaming: a combination of In-Lab Participation and Out-Lab Participation. Collaborating Asynchronous students will also be evaluated on their participation in their pair.
Pair/teams are expected to work together on all aspects of the lab activity. Points may be deducted for not contributing or for not providing a partner the opportunity to contribute. The teaching staff strongly encourages working synchronously and requires that these collaborative sessions are documented in GitHub commit messages for the teaching staff to note the team contribution.
Technical Rubric
| Phase | Grade Item | Points | Details |
|---|---|---|---|
|
Teaching Staff Unit Tests | 15 | Pass all of the teaching staff unit tests (no regressions), both provided and hidden. |
|
Student Unit Tests | 15 | Pass all of your unit tests. |
|
Student Test Coverage | 15 | 80% statement/line coverage on every non-UI/non-test class. |
|
Teaching Staff System Tests | 10 | Pass all of the teaching staff system tests (note that they will not be provided). |
|
Javadoc Comments | 5 | All classes, including the tests are commented with meaningful comments. |
|
Javadoc Generation | 5 | Javadoc tool was used to generate the HTML version of the API, which matches the current version of the in-code Javadoc. |
|
Style | 5 | Any PMD, CheckStyle, or SpotBugs Scary or Scariest notifications will result in a one point deduction, up to the available points. |
| Total Points | 70 |
Synchronous Collaboration Rubric
| Grade Item | Points | Details |
|---|---|---|
| In-Lab Collaboration | 10 | PTFs will be looking for collaboration with your partner during lab activities. Did you participate in completing the lab assignment? Did you balance your roles of driver and navigator? There will be deductions for observations of non-participation or hogging of one role or the other so a partner cannot participate. |
| Out-Lab Collaboration | 10 | Did you make at least one meaningful commit to GitHub for completing the lab (e.g., meaningful means that the commit has to contribute to the solution and isn't superficial)? If you pair programmed, is it noted in the commit message? Did you not allow your partner, who wanted to contribute, to commit? |
| Tasks | 5 | Did you add your tasks for the lab to the top of the README file? Did you include owners? Did you include internal deadlines? Are the tasks shown as complete with any other needed updates (e.g., the person who completed or helped with the task changed) |
| Collaboration Check-in | 5 | Did you complete the collaboration check-in on time? |
Asynchronous Collaboration Rubric
| Grade Item | Points | Details |
|---|---|---|
| Collaboration | 10 | Did you make at least one meaningful commit to GitHub for completing the lab (e.g., meaningful means that the commit has to contribute to the solution and isn't superficial)? If you pair programmed, is it noted in the commit message? Did you not allow your partner, who wanted to contribute, to commit? |
| Tasks | 5 | Did you add your tasks for the lab to the top of the README file? Did you include owners? Did you include internal deadlines? Are the tasks shown as complete with any other needed updates (e.g., the person who completed or helped with the task changed) |
| Collaboration Check-in | 5 | Did you complete the collaboration check-in on time? |
Deductions
| Grade Item | Points | Details |
|---|---|---|
| Misnamed file or incorrect project structure | -5 | Incorrect names of files or incorrect project structure. This can include problems when importing the project to Eclipse for acceptance testing, incorrect location of the system test file, incorrect file extension, etc. |
| Committed Properties File | -20 | Starting with Lab 5, there will be a deduction if you commit your secret properties file that has the registrar password. |
| Missing AI Documentation | -10 | Any AI usage, or lack of AI usage, must be documented in the repository's README.md file. An empty README.md file will result in a deduction. |
| Other deductions | -5 | If the project has to be manually graded due, you will receive a 5 point deduction. Make sure that your project builds on Jenkins! |
GitHub Resources:
Push to GitHub
Finalize your submission by pushing all of your code and other project artifacts to GitHub
- Ensure all classes and methods are fully commented and your Javadoc pages are up to date.
- Add the unstaged changes to the index.
- Commit and push changes. Remember to use a meaningful commit message describing how you have changed the code.
Check the following items on Jenkins for your last build and use the results to estimate your grade:
Check Jenkins
Ensure that your Jenkins job is reflecting the results that you expect for the level of completion of your lab assignment.
