What would you choose ? MIT's 6.00x or Hardvard's CS50x ?
MIT's one looks more mathematical oriented, and probably a bit more difficult but better quality (I've seen some of the Python videos of MIT's OpenCourseWare)
CS50 looks more "fast paced" as it teaches you several paradigms, but I'd rather learn more C than Python.
I can't make up my mind. I've programmed a bit, in Python, C and now a bit of C++ (Also a bit of Haskell) but I never took any kind of classes nor studied things like Algorithms or Data Structures in deep.
CS50 doesn't just do C - it's more of a 'survey' through the CS landscape. Students start off with Scratch before diving into C, and take detours into PHP, JavaScript, as well as HTML.
It's a very popular course, and the majority of students are taking it as an elective. It doesn't go into particular depth with regards to algorithms or data structures, so if you're looking to learn more than just the basics (binary search, trees, etc) it probably isn't for you. It has a good reputation on-campus, and is one of the most popular classes. It's also already got an established distance education component, which is one reason why it's being offered as one of the first edX courses.
I have only taken CS50, so I wouldn't want to comment on MIT's offering, but hopefully that will help you out! If anyone had any questions about the course I can try and answer them - the course hasn't changed substantially since I took it.
At MIT, 6.00 is an introductory course. Most EECS majors do not take it. It's intended for people interested in EECS but who do not have much prior experience. It is in no way an easy course though---it's fast paced and covers a large amount of material. The only thing "introductory" is the minimal background assumed.
If you're hoping to learn how to code in Python then beware MIT's 6.00x (assuming it is similar to its old MIT OpenCourseware class). The prof take Python and writes it like it is Java, using getters and setters in entirely unidiomatic ways instead of using Python's @property decorators, etc. Good course for the CS background, but forget everything you learn about Python from the class.
6.00x looks more theoretical and might teach you more computer science.
CS50x looks less theoretical and more of a survey of different programming languages and patterns. It's a good "get up and running in several different ways" class.
This is slightly misleading, because they are both in reality one semester courses when taught on-campus - I would guess that CS50X will be at a slightly slower pace than 6.00X.
If you have a full time job, and any pre-existing side projects at all, that is not practical advice. Even if that isn't the case, some people would rather just do one for whatever reason. Everyone has that right.
To answer parent's original question: I'm going with Harvard's. I started watching the open courseware lectures from MIT's a while ago, and though Eric Grimson was intelligent and clear, he just couldn't hold my attention.
You might be surprised that the synergy provided by doing both accelerates your learning. The first classes might take longer but you'll end up doing later assignments much more quickly than doing either alone.
CS50 looks more "fast paced" as it teaches you several paradigms, but I'd rather learn more C than Python.
I can't make up my mind. I've programmed a bit, in Python, C and now a bit of C++ (Also a bit of Haskell) but I never took any kind of classes nor studied things like Algorithms or Data Structures in deep.
What would you choose ?