Sadly, if you can't already program, you can get a master's in CS (because it's focused on depth and theory instead of programming), it's just completely useless. I have no idea what one can do with a MS-CS, if they can't program. It's honestly a little heartbreaking for me, that people to spend 2 years of their lives wasting it on that.
With all that said, I haven't found any degree (at least from any school I've interviewed applicants for) to be a reliable signal for programming. Even if they went to a really good school, there's a good chance that they spent all their time learning network protocols and low-level mechanisms, and will happily write up a sliding-window implementation for me, but will stare at me blankly when I ask for a simple recursive algorithm. It's just tough to find people that spent time studying and practicing general-purpose computer science.
Google style interviews are about being able to solve and code the solution to small, well defined problems quickly and correctly. This is really only tangentially related to being a good software engineer, where problems are not very small or well defined, and you are often working with large, complicated existing code bases. The interview process is not a great measure, it's just the best thing Google has come up with.
On the other hand, the interview process is basically the same exact thing that Topcoder is testing.
I had a high GPA from a probably not quite top 50 university (Rutgers) and got into Google. I saw a friend of mine with a perfect 4.0 GPA get rejected. I am sure you have the aptitude to get hired, you just need better luck or better training.
One of the things that gets passed between interviewers is sheet of paper listing the questions that were asked by the previous interviewers. If I note that the previous interviewers have asked a lot of coding questions, I'll often assume that those interviewers have already covered that, and will ask questions that are more centered around design, and how the candidate goes about thinking about a bigger picture problem.
For the record, there are people coming out of MIT's CS program (or CS/EE or whatever has the most CS emphasis) that don't understand what recursion is.