Though computer science, computer engineering and computer training (computer science is for those wanting to be a programmer, there are others aiming more at deployment and sysadmin type things) tend to be a bit light on the computer hacking training at the same time the various hacking courses are not always the best, especially those at undergrad level. It might happen one day but right now we are not seeing much.
Anyway there are two, maybe three strands of computer hacking.
1) Your script kiddy stuff. You can learn this in five minutes which is the whole point. Some would not consider this hacking per se.
2) Someone once said that for the most part good computer security is good administration -- if you do change default passwords, do isolate network segments, do keep things updated, do present a small enough attack face.... and know why you do all that and can consider what is there to attack then this is most of hacking, and most of what "ethical hacking" usually tries to teach and what a lot of undergrad computer admin courses are often a bit light on. Bonus of doing this the normal computer sysadmin route is you can do both where someone with just ethical hacking might have trouble getting things done during the between work times.
3) Computer science. This is the disassembling, trying odd ways of interfacing protocols, considering source code, soldering on things to analyse memory... stuff. Again if you know computer science you can do this, though again schools tend not to teach people to think this way and again if you want a job then general programmer that can prove they are a hacker of this type is a far better position to be in than
Though I mentioned soldering above there might be distinctions between web based stuff*, embedded electronics (indeed you may not even touch a soldering iron in some hacking courses) and the more traditional computer science stuff.
*I will mess around with arm assembly and my oscilloscope all day long, ask me to give you more than a general description of events at points in the following video and I would struggle at some of them
Aspects of 2) and 3) can get blurred -- if you are deploying a website you might not go into full mathematical testing of a password function but you should look at the source code and make sure they are not storing plain text passwords*, and possibly also they are using a good salted hash table, that there are not any comments exposing something that might not be ideal to expose and such like.
*you can do this on many things. Click forget password and if they send you the complete password then they have stored it somewhere which is bad practice.