I enrolled in Udacity's CS262 Programming Languages course after reading The Stanford Education Experiment Could Change Higher Learning Forever. It is free. Lectures are delivered through Youtube videos. The instructor is Westley Weimer (he is good).
It will last for six weeks. Right now (April 26th), we are in the second week. My impression so far:
* The programming language is Python. They have an online interpreter. You enter your code in the edit box and hit the run button to see the result. But I encourage you to download Python to your computer so that you can do exercises on your own and save them.
* You also need the PLY library (in week 2). You download it from here. After download, uncompress the file and copy the ply directory under C:\Python27\Lib.
* There are quizzes and homework.
* Very good to learn regular expressions.
* You must know what recursion is (i.e. you must be able to write simple recursive programs) because it is used extensively and not explained much.
* Lectures are 2-5 minutes each, but there are a lot of them. The first week had 40 videos. To be able to follow the course you must set aside about an hour each day because you need time for the information to sink in. For example, the programming practice subset after Unit 3 has a video less than 5 minutes long, but it took me 2 hours to really understand it. I have been lazy thus far (i.e. spent on average 15 minutes per day) and could only complete half of the homework questions.
* In unit 3, Syntactic Structures, in the Instructor Comments box below the video, there is a link to Chomsky's Manufacturing Consent which means that these are cool guys ;)
* It has a forum in the style of Stack Overflow.
* It has a wiki.
* Unit 3 programming practice is about finding all the subsets of a set which I found interesting. This can be done
** Recursively (python code here)
** Iteratively (python code here). I found this method particularly interesting.
Update (May 10th): Unit 4 is out. It is getting difficult for me to follow. As I said, videos are short but they pack a lot of information. I would prefer them to be more like Khan Academy videos because Salman Khan does not talk that fast and he does not cut out the natural pauses. They are more relaxed and those pauses give me an opportunity to process what I just heard. In CS262, all pauses are edited out and you have to stop the video yourself which I need to do almost every 30 seconds. That gets tiring and feels a little unnatural. Since the topic of CS262 is not of urgency to me at the moment, I think I will give up for now. A better subject for me is algorithms which is the topic of Stanford's Programming Abstractions.