So to get things started, I'm going to ask you to take my representation of a Tic-Tac-Toe board and give it a thorough going-over.
My code is in my repository, and the project is called tic-tac-toe.
First, you should write a report about what my code does. It should be thorough. Specifically, address what role each field, constructor, method plays in the functionality of the class. Then, you should provide a line-by-line breakdown of each method. In doing this, you should make it clear to your reader what each of the bitwise operations in the code actually does. This will not be a short report: it should be clear, well-written, free of spelling and typographic errors, and clearly communicate your understanding of all of the code in the class TicTacToe.
Second, you should refactor any code that you think could be expressed more clearly. For example, you might create small helper methods that make some operations clearer for you as a reader. Or, you might not make any changes. Any changes you make should be included in a second (smaller) report about your refactoring.
Third, you should use JavaDoc to comment my methods, so that all of my code has sensible, meaningful descriptions in BlueJ's documentation view. You should be able to do this easily after writing your reports.
Fourth, you should comment the code sensibly. This does not mean that you should spew your report into the code. You already have good JavaDoc in place, so the question is whether there are any additional comments that you think will clarify the code that is present.