Package edu.pdx.cs399J.grader

This package contains classes that are used to keep track of students, grade projects, and submit assignments in CS399J.

See:
          Description

Interface Summary
Notable Classes that implement this interface have notes associated with them.
 

Class Summary
AdjustProjectGrade This program subtracts some number of points off of each student's grade for a given project.
APIDocumentationDoclet This doclet extracts the API documentation (Javadocs) from a student's project submission and produces a text summary of them.
Assignment This class represents an assignment give to students in CS399J.
AssignmentPanel This panel is used to display and edit Assignments.
ClassPanel This panel displays and edits information about a class stored in a GradeBook.
CloseStream Can we still write to a stream after we close it?
DumpScores This program sorts the scores for a given assignment and dumps them to standard out.
FixMidterm This is a little program that combines the grades for the midterm quiz, the dream job, and the resume into one grade.
GenerateMailrc This program generates a .mailrc file containing a mail alias for every student in a given grade book.
Grade This class represent the grade a student got on an assignment.
GradeBook This class represents a grade book that contains information about a CS399J class: the assignments, the students and their grades.
GradeBookGUI This class is a main GUI for manipulate the grade book for CS399J.
GradeBookPanel This panel displays the contents of a grade book.
GradePanel This panel is used to display and edit a Student's Grades.
ImportStudents This program imports a bunch of students into a grade book.
InvokeStatic This program uses Java reflection to invoke a static method of a given class.
NewAssignmentDialog This dialog is used to create a new Assignment
NotableImpl The abstract superclass of several notable classes.
NotesPanel This panel displays and edits notes.
ParseTextFile Quicky program that parses a text file containing student's grades.
PrintEmailSubjects This program reads your INBOX and prints out the subjects of each of the emails.
Report This class represents a report that is generated as a result of running a student's program.
Student This class represents a student who is taking CS399J.
StudentPanel This panel displays a Student
StudentsList A StudentsList is a JList that lists all of the students in a GradeBook sorted alphabetically by their last name.
Submit This class is used to submit assignments in CS399J.
SubmitTask An Ant task for submitting projects.
SubmitTask.Comment A little class that holds a comment.
SummaryReport Class that creates a pretty report that summarizes a student's grades.
Survey This program presents a survey that all students in CS399J should answer.
Tester This class contains a number of helper methods for testing projects in CS399J.
TesterSecurityManager This class allows us to call a main method multiple times without the JVM exiting.
XmlDumper This class dumps the contents of a GradeBook to an XML file.
XmlGradeBookParser This class creates a GradeBook from the contents of an XML file.
 

Exception Summary
TesterExitException This exception is thrown when the TesterSecurityManager attempts to exit the JVM.
 

Package edu.pdx.cs399J.grader Description

This package contains classes that are used to keep track of students, grade projects, and submit assignments in CS399J.

When we test student code, we run a security manager to ensure that their code does not do anything malicious and to allow us to run multiple invocation of a main without the JVM exiting. We also employ a policy file that looks like this:

// Privileges for Dave's code and student's code

// Dave's code
grant
  codeBase "file:/u/whitlock/jars/cs399J.jar",
  codeBase "file:/u/whitlock/jars/grader.jar",
  codeBase "file:/u/whitlock/jars/xerces.jar",
  codeBase "file:/u/sjavata/classes-dave"
{
  // Let my code do anything
  permission java.security.AllPermission;

};

// Student's code
grant
  codeBase "file:/u/sjavata/classes"
{
  permission java.file.FilePermission
    "${user.home}/proj2/-", "read, write";
  permission java.net.SocketPermission
    "localhost:12345", "accept,connect,listen";
};

A command line would look like:

$ java -Djava.security.policy=/u/sjavata/grader.policy \
  -cp ~/classes-dave:/u/whitlock/jars/examples.jar \
  edu.pdx.cs399J.grader.TestProject0b \
  -studentClasses ~/classes whitlock



Copyright © 2000-2009 Portland State University. All Rights Reserved.