CS (actually to be exact CSE or CE) is a tough job and while there are outsourcing, there are even more hiring still going on if you are good. You have to stay above 3.0GPA minimum, but for top paying ones you have to stay above 3.5. The math isn't too bad unless you are into signal processing (that's EE related field like RF) but you have to know LOGICS inside out. Think of playing chess and crime investigation under time limit, that's what it's like at work.
In the valley if you came from a good school and have good internship experience, and know what you are doing well, a starting salary is in the 70k a year range. My opinion is the closer things are to R&D and hardware side of business, the harder it is to outsource. The closer it is to IT, high level software, and testing, the easier it is to outsource.
If you love it, there isn't a reason not to do it, but if you are doing it for the money, after factoring in all the hard work and over time it is probably not going to make you that much more than other field.
College is NOT a waste of time if you know what field you are going into and what you want to do afterward. It is if you just want to party for 4 years and expect a lifetime employment of being overpaid.