The best way for anyone to start learning computer science online is through Udacity. I found a link to Udacity off of Reddit on a thread when someone was discussing Code Academy (can also be a useful site that will be talked about in the future). Udacity just started this year with the first course being added in February 2012. This site has courses for beginners and experts alike, while also delving into math and physics classes. They have 14 courses listed currently and will be adding more in the future. We will be visiting and discussing this site a great deal this year because it is a great resource for learning.
The course I’ve been looking at for the past couple weeks is the Introduction to Computer Science (CS101) course. It is taught in the language Python, which I feel is the best language for a beginner to start learning. The syntax is far less complicated than C or Java, so instead of a beginner worrying about syntax, they can focus on computer science concepts and problem solving. This course delves into teaching the student fundamental concepts of computer science while also giving them practice programming. The overall goal of this course is to teach the student to create a search engine. The format of Udacity is actually very good for online learning. This course is broken up into 8 sections mostly focusing on different topics. Every section is then broken up into around 30 mini lectures of 2-5 minutes with a short quiz at the end of most lectures. The quiz is either a multiple choice question, short answer, or a small programming assignment. After completing the quiz, the instructor goes over the solution. At the end of each section is a set of about 8 homework problems that are generally more involved programming assignments. Finally at the end of the course there is a final exam, which consists of about 10 problems (some multiple choice and some programming). As you can tell, this course can’t be completed in one day and will require some dedication and time. The topics covered in this course consisted of variables, functions, strings (and their methods), lists, hash tables, iteration, and recursion. In one of the sections we go on a “field trip” to Mozilla to “meet” professionals there and hear from them.
It probably took me about two weeks to complete the course and I got a good review of computer science concepts, but also got some valuable programming practice. When you finish a course they actually award you with a certificate of complete that denotes how well you did in the course. How well you did in the course is determined by how well you did on the final exam. I would highly recommend this course for someone who wants to start learning computer science and learn Python.