I have been interviewing quite a few recent comp sci grads for hire at my development firm, and I'm continually puzzled regarding exactly what they should know before when graduating, since different schools emphasize different topics. What are some of the "must-haves" for new graduating comp sci students? I'll start with a firm understanding of recursion, including its proper uses and dangers. I use that example not because it's used all that much, but b/c every comp sci program emphasizes it, and if they haven't "got it" by graduation they probably won't last very long doing this for a living.
Per recommendation, making this a community wiki. Addressing some of the criticism around this question, I've seen a lot of discussion around "what should I know before graduating?" This question revolves around "how do I know if a recent grad will make a great engineer?"