A style guide is what you need. The Chicago is different from the AP. The AP tends to smash compound words together. They all have their values. MLS is different too. In other words, the answers you will get will depend on the person's or company's personal favorite style guide. Proper nouns are capitalized. Titles are capitalized unless they are used in general. Fiction generes are capitalized I believe unless they are used as general terms. Boy's Room, and Girl's Room are capitalized if they are signs, but not if used in general. Yes, they are possessive, but generally that is not seen on sinage.
Titles: Mayor Hanafan, as opposed to Tom Hanafan, mayor of Council Bluffs, Iowa.
The same rule is true with titles of classes: Biology 101, as opposed to "I took biology this year."
Math 101 as opposed to "math sucks, dontcha think?"
"I think study hall sucks," as opposed to "you will be required to attend one hour of Study Hall 101 every semester."
If you are referring to a class by using it as a title. Math 101. Not, I hate math.
"Science Fiction Author Meg Cumberbun will be giving a lecture at the library." as opposed to; "Wow, did you read Cumberbun's latest sci-fi masterpiece? It sucks, man."
President George W. Bush (title, specific) as opposed to George W. Bush, the suckiest president (genera one of many) America has ever seen.
Jockey John Smedly, (title, specific) as opposed to "Smedly was a pretty good jockey, when he wasn't telling everyone they sucked." (general, one of many)
"Madam Isis, Witch," rather than, "Isis is certainly taking being a witch seriously." This would be different if it was Wicca, "Isis is learning the Wiccan way" which would be capitalized. Religions, deities, philosophies, doctrines and their adherents all but angles, faeries, divas. Consistency is the key.
"The Men's Room will be closed as of Thursday March 27th," as opposed to "While you're in the store, find out if there is a men's room we can use."
See the trend? I don't know everything. What I don't know, I google, and even then I know very little.