Here are the basic grading tools you'll use for this course:
- Assignment Submission - Use
the UNIX
cpcommand to submit prelab, lab and homework assignments. See below for more information. - Assignment Feedback & Scores - Use Knightvision to view your scores and the comments on your assignment submissions. See below for more information.
- Remote Work - If you're comfortable with installing processing/eclipse/java/ssh/sftp on your personal computer and with using UNIX commands, you can do your work and submit it remotely.
- Grading Standards - We will grade all assignments according to a standard set of criteria. See below for more information.
If you have questions on either of these tools, don't hesitate to ask.
Assignment Submission
You will use simple UNIX commands to submit your assignments electronically. See the instructions here:
http://cs.calvin.edu/activities/books/processing/references/unix/submit.html
Note that to help other people (including the grader) understand your code, you should use the following naming conventions:
- JUnit test classes - JUnit test case
classes must end with
Test(e.g.,GridTest). - Prelab Questions - Store the answers to all
your prelab questions in a file named
prelabNN.txt. Submit it before lab begins. - Design - Store all your object-centered
design work in a file named
designNN.txt. Submit it to along with your code files in your newhomeworkNNdirectory. - Spelling/Capitalization/Grammar - Spelling,
capitalization, and spacing matter, so type the names exactly as
shown. If you must rename a package, file, or class, Eclipse
allows you to do the following:
- Select the misnamed item in the Package Explorer.
- Right-click on the item.
- Select Refactor -> Rename.
- Enter in the new name.
- Hit OK. Eclipse might ask if it's okay to update other files, and it most certainly is!
Assignment Feedback & Scores
When we have graded your assignment, we’ll load your score and our comments in your Knightvision entry for that assignment. See Knightvision.
Remote Work
To do your course assignments on your personal computer, you will need to install Processing (and for the second half of the course, Eclipse). See http://www.processing.org/ (and http://www.eclipse.org/) for information on how to download and install these tools. Be sure to use the standard naming schemes and package structure even when you work on your own machine.
To submit your assignments from your personal computer, you will need to install some SSH/SFTP client software. If you have Linux, this software may already be installed. Otherwise, here are some commonly used options:
- SSH secure shell - SSH provides a free version of SSH/SFTP. Here’s the Windows installer: sshsecureshellclient-3.2.9.exe.
- WinSCP - WinSCP is another free SFTP client. You can find information on it here: http://winscp.net.
Use SFTP to copy your files to
cs-ssh.calvin.edu (you should have a
login on this machine with your Unix Lab password), directly into
your assigned submission directory (as described above). You
could also use SSH to login to cs-ssh.calvin.edu and
use UNIX commands to directly manipulate the files you’ve
transferred in.
These instructions require some skill with system administration and UNIX. Ask if you have trouble with them, but otherwise you can always go physically to the lab to do your work.
Grading Standards
All prelab, lab, homework, and project assignments will graded according to standards. Prelab and lab solutions, together worth 10 points, must be clear, correct and complete as specified in the assignment. Homework assignments, worth 30 points, and the final project, worth 100 points, will be graded according to the following categories:
-
Correctness - The program must function correctly, as specified in the assignment.
-
Efficiency - The program must function efficiently; less efficient programs are worth less points.
-
Understandability - The program must be
understandable to other programmers, which includes the
following documenting features:
- Header documentation for all class files, test class
files and public methods specifying:
- the problem and nature of the solution
- a list of the assumptions (aka preconditions) your code makes, if any, about its input
- (for class file documentation only) who wrote the program, what assignment is for, and when/where it was written
- Appropriate use of white space
- Good identifiers
- Header documentation for all class files, test class
files and public methods specifying:
-
Usability - The interface must be clear to the user.
Each of these categories will be weighted equally.