CS1322 Grading Policy
*********************

Assignment Grading
==================

Your grade in this course will be based on the following breakdown:

       Programming Homeworks                     15%
       Tests (conducted during recitation)       60%
       Final Exam                                25%

There will be no curve.


Programming Homeworks
---------------------

  During the course of the semester, you will be assigned 7 programming 
  homeworks (P0 through P6).  P0 will count for 50 points, and all 
  others will count for 100 points.  Each program will be divided into 
  sections, called "phases".  Each phase will have a suggested amount of 
  time for completion.  This amount of time is by no means a guarantee 
  that you will be able to finish in that amount of time, as you may not 
  understand the material, or may encounter some unexpected bug in your 
  program-so do not wait until that much time before a deadline to 
  start! Instead, these time guidelines are intended to help you know 
  when you need to get help.  If you are stuck on a portion of the 
  program for longer than the recommended time, you should definitely 
  see your TA to get a stronger understanding of the concepts involved 
  prior to putting continued effort into the assignment.  On each 
  program, certain phases will be marked as "instant feedback" phases. 
  On these phases, you will be able to submit to WebWork to get feedback 
  about your code.  This feedback is there for your benefit but does not 
  result in a direct grade. However, you should be aware of three 
  important aspects of this feedback:
           
            o Each instant feedback phase has a deadline, after which
              WebWork will NOT provide any feedback for that phase.
              If you do not have the phase completed by that deadline,
              you are on your own. Therefore, START EARLY!

            o While the instant feedback does not directly result in a 
              grade, the grade that your TA assigns you for that section 
              of your program will be strongly correlated to the results 
              of the instant feedback.  If the instant feedback system 
              told you that your code was not correct, you can expect to 
              receive no credit for it. Furthermore, since the instant 
              feedback phases will correspond to the "building blocks" 
              that you will build the rest of your code from, if these 
              underlying pieces do not work, your program as a whole 
              will not function correctly.

            o We will not entertain complaints after the grading is done 
              about any aspects which you would have been able to 
              determine did not function correctly from the instant 
              feedback system. This includes any problems that may be 
              caused in other parts of your code due to faulty "building 
              blocks" from the instant feedback phases.
 
 Your program will be graded by your TA after it is due.

 The grading will be divided into three categories:

   o Implementation  - how well your program works
   o Style           - how well your program is 
                       commented/formatted/designed

   o TA discretion   - any other points not directly covered above

 Only source code (plain text .java files) will be accepted for 
 programming homeworks.  Any other submissions (i.e. .class files) will 
 be ignored. The ONLY exception to this is if your program needs some 
 specific file to run, it should be submitted in addition to the source 
 files (i.e. If you write a GUI (Graphical Unser Interface program) that 
 needs a gif image, submit that along with your source files).

Implementation
~~~~~~~~~~~~~~
 The implementation section will constitute a majority of the program's 
 grade. IF YOUR CODE DOES NOT COMPILE WITH JDK1.3 YOU WILL RECEIVE A 0 
 FOR THE ENTIRE IMPLEMENTATION PORTION.  It does not matter how small 
 the error is, or what type of error it is, if your code does not 
 compile with jdk1.3, you will get no credit on implementation.  It is 
 STRONGLY recommended that after you submit your program to WebWork, you 
 retrieve your submission from WebWork, unzip it in an empty directory, 
 add any files we gave you with the assignment that your program needs, 
 and compile it with

    javac *.java
 
 If your program compiles correctly under jdk1.3 after being downloaded 
 into an empty directory and having only those files that we provided 
 for the current assignment added, you know that you turned in all the 
 files that you needed to, and that your code compiles.
 
    One important thing to be aware of: 
    
    Some students choose to use JCreator (or other similar programs) for 
    this class. While emacs is the recommended editor, we do not enforce 
    this. If you use JCreator, be ESPECIALLY CAREFUL that your code 
    actually compiles correctly (use jdk1.3 from the command prompt) 
    before turning it in.  In the past, we have had problems with 
    students turning in non-compiling which compiles in JCreator. It 
    does not matter if your code compiles in JCreator, IF IT DOES NOT 
    COMPILE WITH javac *.java USING JDK1.3, YOU WILL GET NO CREDIT FOR 
    IMPLEMENTATION.

Style
~~~~~
 The style portion of your grade will be smaller than the implementation 
 portion, but still significant.  In order to receive full credit for 
 style, be sure to

     o Properly javadoc all methods, constructors, and variables
       at the class scope (static and instance variables-those
       local to a method do not need to be javadoced).
     o Place an "ident box" at the top of all java files.
       (see ident.txt [distributed with P0] for more details)
        - Your ident box MUST include the following:
           * the class name
           * a description of what the class does
           * an @author tag with your name and 
             your prism email address (gtXXXX@prism.gatech.edu),
             THIS EMAIL MUST BE your officail Georgia Tech email 
             address (@prism.gatech.edu or @mail.gatech.edu)
             No hotmail, yahoo, etc.
           * Your collaboration statement (see collaboration, below)
        - It is suggested (for your benefit), but not required
          that your ident box include the following:
           * an @version tag with the current version number and 
             the date it was made
           * a revision history
     o NO lines longer than 80 columns- if you must write a long line of
       code, you need to wrap it so that it fits within 80 columns.
     o Proper indentation.  Your code should be indented in a manner
       that is easy to read.  Emacs will do this for you by default
       if you use the installation provided by CS1322.
     o Good (descriptive, appropriate length, etc) names must be 
       used for all variables and methods.
     o Demonstrates good design (no repetition of code when loops can
       be used, good abstraction, etc)
     o Demonstrates proper debugging techniques
         - each class has a main method that tests the methods found
           in that class
         - debug statements are used appropriately throughout the program

TA Discretion
~~~~~~~~~~~~~

 Not all possible cases for loss or gain of points can be covered, so 
 +/- 5 points on each program is open to TA discretion.  In general, no 
 points will be given for this, nor none taken away.  It is possible to 
 receive a full 100 percent with no TA discretion points.  Likewise, it 
 would be possible to receive 105 points by receiving all other points 
 for the assignment, plus the full 5 points of TA discretion. These 
 points will be lost when "something bad" is done in the program that is 
 not otherwise covered.  One example of this would be something that 
 clearly demonstrates a lack of understanding of the concepts involved. 
 For example

              LLNode tempNode =  new LLNode();
              tempNode = head;

 demonstrates a lack of understanding of references and objects, so, if 
 this were found in your code, you can lose points in TA discretion. You 
 may also lose points for such things as

   o A variable that is never used
   o A method that is never used
   o Hard coding numbers that should have been made Constants
   o Comments that conflict with what the code is actually doing

 (Note: this list is not meant to be exclusive)
 
 On the other hand, amazingly good code can result in extra points from 
 TA discretion.  These points are not handed out lightly-typically, you 
 would receive these points on a GUI program for making an outstanding 
 GUI, or possibly for solving a problem in an incredibly clever way, or 
 making your code more robust than expected.
 
Tests
-----

 Tests will be conducted during recitation.  The tests will cover 
 concepts, as well as coding; however, you may expect coding to 
 constitute a significant portion of the exam.  It is expected that you 
 will be familiar with the material from any programming homework that 
 is due prior to an exam and able to work any problems that are from 
 those homeworks, or similar to them with relative ease. While we will 
 ask questions that directly relate to the homework, they may be slight 
 variations on what was presented in those assignments- therefore, it is 
 very important to understand the material, not just to memorize things 
 if you wish to do well in this course. Furthermore, we may ask you to 
 code something that you have not seen at all before, but which you 
 should be able to code from your understanding of the concepts 
 involved.

Final
-----

 The final exam will be similar to the tests, but much longer (as there 
 are 3 hours for the final exam).  As with the tests, you will be 
 expected to understand the concepts, and to be able to write code 
 related to those concepts.

Collaboration
=============
The official collaboration policy is as follows:
 +-----------------------------------------------------------------------+
 |We have chosen to move the burden of assessment of students' knowledge |
 |of programming concepts and skills from homework assignments to        |
 |in-class exams.  Homework assignments are now opportunities for        |
 |learning and discovery; they are not instruments of evaluation.  (In   |
 |fact, the only reason homework assignments are considered in the final |
 | grade is to motivate students to work on the assignments.)            |
 |                                                                       |
 |Because homework assignments are now not used for assessment, we can   |
 |now greatly relax the constraints on collaboration with respect to     |
 |these assignments.  Effective this semester, any and all forms of      |
 |collaboration between students in CS 1322 are permitted, including the |
 |sharing of solutions if that is what is needed for a student to learn  |
 |to develop a working solution to a given homework problem.             |
 |                                                                       |
 |As has always been the case, however, plagiarism is not allowed.  If   |
 |you use sources other than those provided for everyone in the course   |
 |(i.e., instructors, teaching assistants, the textbook, the course web  |
 |site, the course newsgroups, the lectures, or the recitations), you    |
 |must give appropriate credit to those sources.  Note that so long as   |
 |you give credit where credit is due, your grade will not be affected   |
 |nor will you be charged with academic misconduct.  On the other hand,  |
 |a failure to give appropriate credit to sources of help (other than    |
 |course materials or personnel as noted above) will be treated as       |
 |plagiarism, a violation of Georgia Tech's Student Conduct Code.        |
 |                                                                       |
 |To ensure that you give credit where credit is due, we now require     |
 |that you place a collaboration statement at the beginning of every set |
 |of homework solutions you submit.  That collaboration statement should |
 |say either:                                                            |
 |                                                                       |
 |   "I worked on the homework assignment alone, using only              |
 |    course materials."                                                 |
 |                                                                       |
 |   or                                                                  |
 |                                                                       |
 |   "I worked on this homework with <give the names of the              |
 |    people you worked with>, used solutions or partial                 |
 |    solutions provided by <name the people or other sources>,          |
 |    and referred to <cite any texts, web sites, or other               |
 |    materials not provided as course materials for CS 1322>."          |
 |                                                                       |
 | From now on, no set of homework solutions will be graded if it does   |
 |not include a collaboration statement.                                 |
 |                                                                       |
 |Furthermore, while the sharing of solutions is now permitted,          |
 |unsolicited sharing of solutions is not acceptable.  Many students do  |
 |not want to see a solution to a problem until they have worked out     |
 |their own solution.  For that reason, we must insist that you do not   |
 |share your solutions with another student unless that student has      |
 |asked you to do so.  In addition, you are not to post solutions to the |
 |course newsgroups or any other public forum for any reason.            |
 |                                                                       |
 |If you have any questions about this new collaboration policy, please  |
 |do not hesitate to ask your instructor, either in person or via email. |
 +-----------------------------------------------------------------------+

While this means that you may collaborate in any manner that you wish 
with your fellow students, please remember that it is important to 
understand the material for the tests.

Also, please be aware of the following important facts:

  o This collaboration policy applies ONLY to your programming 
    homeworks. Tests and the final exam MUST be an individual effort-any 
    cheating during these exams will result in Academic Misconduct 
    charges, for which you can fail the class and/or be suspended, if 
    found responsible.
  
  o You MUST put a collaboration statement in all homework submissions. 
    As the policy states, "From now on, no set of homework solutions 
    will be graded if it does not include a collaboration statement." It 
    is important that you understand that "not graded" means "You will 
    receive an AUTOMATIC ZERO on the ENTIRE assignment."

Grade Appeals
=============

 If you wish to appeal a grade in CS1322, it is important that you 
 follow the proper procedures.  If you have a problem with a grade, you 
 should first talk to your TA.  If you are unable to resolve that 
 situation, you should then talk to your STA.  If that does not resolve 
 the situation to your satisfaction, you should then talk to the Head 
 TA.  If you are still not happy, you should then consult your lecturer. 
 Note that attempting to "jump to the top" in the hopes of getting an 
 answer you like better more quickly will only slow things down, as your 
 lecturer will ask "What did the Head TA say?" and the Head TA will say 
 "What did your STA say?" and so on. Skipping over the steps in the 
 "chain of command" may be done, but you should only do so under 
 extraordinary circumstances where there is a good reason not to ask 
 your TA/STA/etc first.

                        Your Lecturer    [4th]
                            /|\
                             |
                        The Head TA      [3rd]
                            /|\
                             |
                         Your STA        [2nd]
                            /|\
                             |
                          Your TA         [1st]

Assignment submission
=====================
 
 All programming homeworks will be submitted on WebWork.  Each 
 assignment is due at 23:59:59 (that's 11:59:59 PM) on the day 
 indicated.  After this time, you have an 8 hour "grace period" during 
 which submissions will still be accepted. This means that WebWork will 
 not stop accepting submissions until 8AM the following morning.  This 
 "grace period" is intended to accommodate any problems that may arise 
 for you around the time that the assignment is due.  Note that no 
 assignments will be accepted after 8AM without an excuse that is 
 approved by the Office of the Dean of Students.  To help clarify, let 
 us look at some examples:

      o It is 23:55 Friday night, and you are about to turn in your 
        assignment.  A tree falls on the phone line and you can not get 
        on the internet.  
        This is the sort of situation that the grace period is intended 
        to cover.  You have 8 hours and 5 minutes left to find a way to 
        turn in your assignment.  You could, for example, get a floppy 
        disk, copy your code onto the disk, and go to one of the labs on 
        campus- then turn in from there.

      o It is 7:55 AM Saturday morning.  You are finishing up your 
        assignment, and the power goes out. 
        Well, too bad-the assignment was due over 7 hours ago-why are 
        you just finishing now?   Hopefully, you turned something in, 
        because if its not into WebWork by now, it is not going to be 
        accepted.

      o You get sick and cannot finish your assignment on time, due to 
        the illness.
        This is the type of situation for which you may get an excuse 
        and turn in the assignment late.  Contact the Office of the Dean 
        of Students, and your STA to get an extension. (see "Extensions" 
        below)

Safe Submit
-----------
 
 When you submit your assignment to WebWork, it is important that you do 
 an "Assignment Retrieval" and then verify that the code that you 
 retrieved was in fact what you intended to submit.  Many times, 
 students will accidently submit an old version of their assignment, 
 leave out files, or experience other problems that cause them to 
 receive a bad grade after much hard work.  Be sure to retrieve after 
 every submit so that this doesn't happen to you! We cannot stress this 
 strongly enough!

Extensions
----------

 If some unfortunate circumstances come about that legitimately prohibit 
 you from completing your work on time, you may be eligible to receive 
 an extension on your assignments.  In order to receive this extension, 
 you will need to contact the Office of the Dean of Students (in the 
 Flag building, behind the student center), and your STA. The Dean of 
 Students will verify the legitimacy of your excuse, and your STA will 
 enter an extension into WebWork.  It is expected that you will be 
 completing your assignment while this process is underway- not only 
 will you need to understand the material for any upcoming exams, but 
 also, the extended deadline will be based on the assumption that you 
 have been working on the assignment since recovering from whatever 
 situation has occurred.  Situations that are excusable include such 
 things as personal illness or death of a close family member. 
 Situations that are NOT excusable include such things as vacations, 
 work for other classes, oversleeping, etc.



