I'll provide my $.02 of recommendations.
If it's classes instead of a class, then take one class in programming, a second in networking/hardware management (whatever the kids call it these days).
For the programming class, it needs to be a formal language with object oriented programming, preferrably a compiled language. The main industry mainstays are C# (Microsoft .NET platform) and Java. The language itself is not important, the fundamental underpinning of programming methodology are. If you learn this correctly, then you can do it in any language.
For the networking class it's important to understand how a network comes together, how to construct it and how all the equipment communicates. It should teach the basics of admin as well as an understanding of how TCP/IP, UDP, etc work. In today's world it's also important to understand the overlying HTTP protocol.
The single best thing any person vcan do when entering the "computer industry" is immediatly get a wide exposure to the many elements involved. The biggest challenge I face on a daily basis is working with programmers with no understanding of networking, database engineers with no understanding of programming OR networking, and network engineers with no idea of the first two items. It will likely be that if your son remains interested in the field he will naturally gravitate to what interests him most, but only if he gets that exposure.
Also, make sure that he understands that alomost every school that offers classes in these fields are horrifyingly out of date. When I made my singular attempt at pursuing a computer science degree in 1997 I was forced to take COBOL (which is 99% useless to most of the world, in my segment of the industry it's actually useful) and I took a "new" course offering in JAVA which was taught by the former FORTAN professor who had no concept of how an object oriented programming language was used.
Finally, the absolute best thing he can do is start self educating on the side. Experience is a far better teacher.