- Overview: Submit a hello world program and agree not to plagiarize code.
- Deadline: Feb 6
- Grade: 5% of Overall Grade
The Submission System
Let's first get familiar with the submission system. It's located at
http://dubstep.odin.cse.buffalo.edu
Or you can click on the "CSE 562 Submissions" link from the course syllabus. After loading up the website, you will need to create an account.
When creating an account, be sure to use your UB email address. If you don't have a UB email address, contact the teacher or a TA as soon as possible.
After you create an account, you'll receive an email with an activation token. Click on the link in the email, or copy it into your browser's location bar.
Forming Groups
Find up to two other students in the class, and elect one member of your group to be the leader. You'll also need a group name. Be creative. This is how you'll show up on the leaderboards. The group leader should go to the
Manage Group tab and click "Or Start a Group..."
After creating and naming your group, your leader should click "Invite more..." on the
Manage Group tab and add all remaining group members by their email addresses.
All team members should now be able to accept their invitation by logging in and going to their
Manage Group tab.
GIT and Source Code Management
For submissions, and for your group's convenience, this course provides your group with a GIT repository. If you don't know how to use GIT, it's easy, and an important skill to have. Numerous tutorials and reference materials are available, including
If you don't want to dive headfirst into GIT, there's a good GUI available at
http://www.sourcetreeapp.com, and read on below for a quick and dirty intro to GIT for the project.
The upstream URL of your team's GIT repository is available from the
Manage Group tab.
To access the repository, you'll first need to register your GIT public key. An overview of public key management can be found
here. A public key should look something like this (with no line breaks):
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDgX8jMmapRQ7pIJ0JV9zfvkqef/OBV//y3t0ceV5KaZ4DMlcn+xzonR/OR4cTuAyQRyQK3TlamleUATQe9JAieaI3dodnCfrN7C16RiqkB6iQorpCC+LdkdM7n3rVtleIAY93Imoq6tJEf+boeLz7EtB6I7OJSZ+NgRv5Z4vvF2hlgJrXaCr+ofURm/lLOHB1AdcZiXVL8tPOVl/FG170/i1fI+Y1eyQtko10XlHTHx4bGavYMsOKWoVjTBCruH8/VmiaUY7RBTn8Qg+yOQZPIOTrtWxRm0/Q373hKn8Xt+Dh38tHL3Z8X2C4jup/JFRmoT+nH6m9pB79IcnBNYa7V okennedy@sif
Uploading Your Public Key
From the
Manage Account tab, click on "Upload public key..."
Copy the entire public key into the field provided and add a short description (useful if you have multiple computers).
You should now be able to clone your team's GIT repository:
A Quick and Dirty Intro to GIT
Once you have cloned a copy your repository (a directory called teamX, where X is your group ID), you'll need some organization. The grading script will attempt to compile all of the java files in the directory 'src' at the root of your git repository. Create that now.
$> cd teamX
$> mkdir src
$> mkdir src/edu
$> mkdir src/edu/buffalo
$> mkdir src/edu/buffalo/cse562
$> touch src/edu/buffalo/cse562/Main.java
Now you need to make git aware of the file you just added
$> git add src/edu/buffalo/cse562/Main.java
Next, you need to create a commit checkpoint -- a marker indicating that your local copy of the repository is in a stable state.
$> git commit -a
The -a flag commits all files that have changed (but you still need to add files that are new). You will be asked to provide a message that describes the changes that you've just made to the code. Finally, you need to send the changes to the central repository.
$> git push
The files are now in your global repository. Your teammates can now receive your changes by pulling them from the central repository.
$> cd teamX
$> git pull
If this works, you should be all set.
Submitting Code
To have your project graded click "Create new submission" from the
Manage Group tab.
A snapshot of your repository will be taken, and your entire group will receive an email notification once your project has been graded. You may only have one submission pending at any given time, but you may resubmit as many times as you like. Note however, that the more times you submit, the lower a priority your project will receive in the grading queue.
The grading script operates as follows:
- Recursively scan through the directory src/ at the root level of your GIT repository for *.java files.
- Compile all of these files (with all course-provided classes in the classpath). Compilation is performed using the Java 1.8 SDK. Do not use features from later versions of java or your submission will not compile!
- Attempt to run your project as
java -cp {classpath} edu.buffalo.cse562.Main {arguments}
- Validate the output.
If these steps fail for any reason, your submission will receive a 0 and you will need to resubmit. A log of the testing process will be made available on the submission page so that you may correct any errors that occur.
Project: Hello World!
Create a class edu.buffalo.cse562.Main with a main function that that prints out the following (with no newlines) and exits.
We, the members of our team, agree that we will not submit any code that we have not written ourselves, share our code with anyone outside of our group, or use code that we have not written ourselves as a reference.
Make sure your class compiles, push your (committed) repository, and hit Submit.