Hello - When I was looking at CS grad school programs in the 1970s, the chief difference among departments was a tendency to be stronger in either hardware or software. Now my son is looking at CS grad school programs and I find I need some help in order to be able to discuss his academic future with him intelligently. What I'd like to know is what the broad areas of CS are in academia today (obviously things are much more specialized than just HW and SW.) I'm also interested in learning which school have particular strength in which areas. Google tends to show me rankings for CS programs generally, not filtered by the strengths of various programs, so I'd appreciate being pointed in the right direction. - Thank you.