Correctness of Concurrent Programming: creation and joining of threads, synchronization, etc. Object Programming: use of inheritance, interfaces, classes, etc. Formal documentation: definitions of classes, methods, and variables, use of UML, use of correct Object Oriented terminology, etc. Clarity and conciseness of presentation.