The current grading system of my university allows graduate students to either receive a letter grade (A through F) or receive a Pass/Fail grade (where A-C is Pass) in any course offered. Each student must indicate his/her grading preference for each course within the first 2 weeks of the term. Most departments have a strict requirement that all "required" courses must be taken for a letter grade; however, elective courses can either be taken for a letter grade or Pass/Fail. Many of these elective courses are advanced versions of "required" courses, or they might be intermediate to advanced courses in other departments that are still related to one's research area.

When it comes time to apply for postdoc or junior faculty positions, could choosing to take elective courses Pass/Fail negatively impact hiring or funding decisions? For example, suppose a postdoc advertisement states that the position requires knowledge of a technique or area covered in an elective course. Would the fact that an applicant received a "Pass" in the course be considered the same as if the grade was instead an A or B? Alternatively, is it better to risk getting a B (or C) in a hard elective course instead of "playing it safe" by electing to Pass/Fail the course (where A, B, and C all get the same grade)? Are there any situations where the choice between letter grade vs. Pass/Fail can impact anything negatively or positively?

I've often heard that grades don't matter as much in graduate school compared to things like research output and networking, which may make this question a bit irrelevant. Still, I would be curious what others think.


Question: Do delegates defy OOP
Answer: If OOP means each object is responsible for its own interface, then logically delegates could break OOP if it were not used properly.   For example, if I made a FileStream class which, when asked to write, called a delegate to perform the write on behalf of the FileStream class, then it would breach OOP.  This is because the responsibility of the write operation of the FileStream is purely upon FileStream if we're following OOP to the letter.

However, this doesn't mean that using delegates always goes against OOP.  Using the same example, if I used a delegate to handle events before and after writes, this is still following OOP because it is not the responsibility of FileStream to know what should happen before and after writes.  It should merely notify the classes which are responsible.  

If passing delegates to an object were breaching OOP because it knows something outside its world, then also passing variables would breach OOP since you could think of delegates as passing code rather than data to classes.  Acknowledging that there exists code outside of a single OOP class is not breaching anything.