## Peer Reviews

You can optionally participate in peer reviews, both as a reviewer
and as a review recipient. Reviewers get points for their effort,
the recipients do not, but instead get (hopefully) useful
information.

### Requesting Reviews

If you would like to have your code reviewed, you can issue the
following command:

    $ pb152 review --request 01

Substitute other assignments for ‹01› as appropriate. You can
request a review on an assignment which you did not pass yet.  You
may get up to 4 reviews for any given submission. The reviewer will
work with the submission for which you have requested the review
(i.e. the one which was newest at the time of the request). Make
sure you submit the code you want reviewed before requesting the
review. By default, ‹review --request› will create 3 requests for
peer review for the same submission (you can change this by passing
‹--count N› to the above command).

The ‹pb152 update› command will indicate whether someone reviewed
your code, by printing a line like ‹A reviews/01.from.xlogin›. To
read the review, look at the files in
‹~/pb152/reviews/01.from.xlogin› -- you will find a copy of your
submitted sources along with comments provided by the reviewer.
After you read your review, you should write a few sentences for the
reviewer into ‹note.txt› in the review directory (please wrap lines
to 80 columns) and then run:

    $ pb152 review --accept 100

Instead of 100, you can use a smaller number, indicating what
percentage of the points the reviewer deserves for their job. Please
make sure that you grade the review honestly -- the reviews will be
screened for abuse and depending on the type of misconduct, one or
both parties will be punished.

### Writing Reviews

To participate as a reviewer, start with the following command:

    $ pb152 review --list

You will get a list of review requests for which you are an eligible
reviewer.  In particular, only assignments that you have already
successfully solved will show up. If you like one of the entries,
note its number (e.g. 7) and type:

    $ pb152 review --checkout 7
    $ cd ~/pb152/reviews/
    $ ls

There will be a directory for each of the reviews you agreed to
write. Each directory contains the source code submitted for review,
along with further instructions (the file ‹readme.txt›).

In shell scripts, please use ‹##› (double hash symbol) in the first
column for your reviewer comments, like this:

    ## You are incorrectly using uniq without using sort first, this
    ## will leave duplicate lines if they are not next to each other.
    cat file.txt | grep pat | uniq

In C files, use double ‹**› in comments, like this:

    /** A short, one-line remark. **/

or for longer comments:

    /** A longer comment, which should be wrapped to 80 columns or
     ** less, and where each line should start with the ** marker.
     ** It is okay to end the comment on the last line of text like
     ** this. **/
