CSC216 Lab 01 - Project Creation

CSC216 Lab 01 - Project Creation

CSC216 Lab 01: Project Creation

For Lab 01, you will complete a pair programming activity (synchronous labs only); learn about GitHub, the version control system we use in CSC216; and start work on the PackScheduler project that will be developed throughout the semester as part of the lab activities.

Learning Outcomes

  • Work with an Eclipse project, packages, and classes
  • Implement a plain old java object class
  • Implement file I/O
  • Use composition
  • Run unit tests

Pre-lab Activity:

Go through the Eclipse Install Tutorial. Note down any problems that you run into. Ask questions about install issues on Piazza!

Lab Overview

For students in async lab sections (Sections 231 and 601), watch the Lab 01 Overview Video.

The lab will be completed in the following steps:

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.

Lab Section Deadline Jenkins Server Link
Section 201 1/31/2022 10:30am https://csc217-201-jenk.csc.ncsu.edu/jenkins/
Section 202 1/31/2022 12:40pm https://csc217-202-jenk.csc.ncsu.edu/jenkins/
Section 203 1/31/2022 2:50pm https://csc217-203-jenk.csc.ncsu.edu/jenkins/
Section 204 1/31/2022 5:10pm https://csc217-204-jenk.csc.ncsu.edu/jenkins/
Section 211 2/1/2022 8:20am https://csc217-211-jenk.csc.ncsu.edu/jenkins/
Section 213 2/1/2022 2:50pm https://csc217-213-jenk.csc.ncsu.edu/jenkins/
Section 214 2/1/2022 5:10pm https://csc217-214-jenk.csc.ncsu.edu/jenkins/
Section 222 2/2/2022 12:40pm https://csc217-222-jenk.csc.ncsu.edu/jenkins/
Section 223 2/2/2022 2:50pm https://csc217-223-jenk.csc.ncsu.edu/jenkins/
Section 231 2/1/2022 11:45pm https://csc217-231-jenk.csc.ncsu.edu/jenkins/
Section 601 2/1/2022 11:45pm https://csc217-601-jenk.csc.ncsu.edu/jenkins/

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 25 Pass all of the teaching staff unit tests, both provided and hidden.
Teaching Staff System Tests 20 Pass all of the teaching staff system tests (note that they will not be provided).
Javadoc Comments 10 Student and StudentRecordIO 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 10 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.
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!