I don't know if there is actually a formal, standard, consistent defintion of what Software Engineering is, but I would like to know what people think a Software Engineer should know. I would think that things like Code Reviews and refactoring would be basic for the SE. And I would think that knowing concepts such as SOLID would be mandatory. Understanding and implementing Design Patterns would be expected, I would think. Though which Design Patterns that a SE should or would know, I don't know.
So is there anything that you would expect a SE to know? Assume that you are hiring and the person is not fresh out of college.
A secondary question but related question: What do you expect someone with a B.Sc. in SE to have learned? Or put a slightly different way: What classes or concepts should be mandatorily taught in a SE curriculum?