Ever since I found out about CS50 I thought of it as the best place to learn about computer science. So when I discovered the course was on edx I was more than thrilled to enroll. Personally, youtube videos were more than enough for me, but what really stands out in the online course is the homework part.
Now you might think, how is the homework the distinguished part? Well, the course videos sort of explain what you need to build the program specified in the problem sets. The actual problem sets, however, are the meaty part of the course, this is where you can put your brain to work and (kind of) solve real world problems. Such problems include, retrieving lost images from a raw data file, ciphering messages and/or passwords, or even implementing your own hash table to make a spell checker. Not even does it stop there, but it continues to teach about python, how to use python for the back-end and some front-end knowledge as well.
One thing that I especially admired about the course Is their insistence that your code should be formatted properly. This is the kind of topic that may not be spoken of or hashed out.
This is the BEST online resource anyone could take to get into computer science. No background needed. It encapsulates most of the aspects of computer science to give the student a general overview of what they're getting themselves into. I've seen many universities that fail at doing this in my region, thus creating a group of students that change their major later on and that only wastes a person's time.