Monday, June 25, 2012

Initiatives for Online Education (part 2), Coursera vs. Udacity

After finishing CS101 at Coursera, I decided to give Udacity a shot. At first, I was a bit skeptical, particularly that most of the comparisons between Coursera and Udacity that I have met, most of them have praised Udacity's style but none has delved deep into comparing the content.

Let's begin with first things first. What shall I compare here?
- Programming Languages,
- Instructors,
- Content of course,
- Platform,
- Forums, and
- Grading.

* Programming Languages:
 a- Udacity        --> Python 2.x (2.6 or 2.7, not sure)
 b- Coursera     --> Modified version of javascript

In this respect, I am completely biased against Coursera. The modified version of javascript is really easy to grasp and use, but, at the end of the day it is a __modified__ version. The real javascript is much more difficult. Moreover, the course just scratches the surface using javascript.

For me, I think Coursera should have used an unchanged version of a programming language rather than a modified one. Beginners may get upset that real-life coding in that particular language is not as easy as they have expected (as a result of the modified version), and this may become a big put off for them.

On the other side, Udacity have used Python 2.7. One of the most programming languages, if not the only one, that is easy to install on different platforms, easy to read and write for begginners as well as experts (since syntax and indentation makes it as nice as plain English and math), very powerful whether you are coding for web project or writing a small application that doesn't need a network.

Indeed, I need not praise python. If you are not convinced of its great beauty then you should go read the preface to the 2002 version of "python how to think like a computer scientist" (There is a 2012 version of the book that does not contain this preface by the way) then come back here for the rest of the comparison.  

*  Instructors:
 a- Udacity        --> David Evans
 b- Coursera     --> Nick Parlante

In this respect, it is a tie. Both instructors have that magic that makes you understand the topic without feeling you have made any effort!

Add to this, both are well-informed on the subject with great experience and both are from well-known universities.

And to give respect where due, I would like to point out that Nick has his own course for python that he has published earlier on Google's code university. May be that is one reason Coursera has not used Python in CS101. May be Nick did not want to repeat himself.

* Content of Course:
 a- Udacity        --> one whole unit
 b- Coursera     --> a little bit scattered

Of course the content of the course may be the main factor for some when it comes to deciding `Coursera or Udacity?'. (I recommend both. It helps. Trust me).

Indeed, here the comparison is like comparing apples and oranges. Coursera's material where a bit scattered. Earlier weeks covered images and how to manipulate them on pixel level, while later ones covered what is a network and sound wave. It seemed to be a general overview of the digital / computerized life rather than focusing on one field of computer science. This said, I must admit that the course helped me a lot. Indeed, the coding weeks made me no longer fear code. The latest weeks unravelled the magic behind computer audio and video (particularly sounds and audio compression).

On the other hand, Udacity's course feels like a one complete body. Each unit of the course is a piece of the puzzle the can not be removed. This is indeed due to having a clear purpose for the course `Building a search engine'. Don't get scared from the title if you are a beginner, they take you step by step right from the correct point of starting.

If I would recommend something here, I would say: "If you have not worked in any field related to computer science before, then take Coursera's CS101, it is a great introduction, and follow that by jumping into Udacity's CS101. It is a bit advanced than Coursera's, but you will get the hang of programming, eventually."

Of course, you can also read at some additional materials. I figured out that dealing with different resources for covering the same topic will greatly enhance your understanding of that topic.

* Platform:
 a- Udacity        --> 7/10
 b- Coursera     --> 8/10

Here despite Coursera gets a higher score, I should mention that each initiative's platform serves its goal to the maximum.

For example, Coursera's platform allows for more navigation, so that you can download the lectures in PDF or video. Also, Coursera had deadlines for submitting answers to quizzes, if you don't meat the soft deadline, each day that passes by means marks subtracted from you. This can be rectified by the `late days' concept (If you have joined the course days later after it has started or were busy for a while).

On the other hand, Udacity's seamless organization of videos into units and using the tablet serves the purpose of grasping what is programming. At least for me, it eliminated the need for reading notes.

It is worth mentioning also Udacity has a page for tracking your progress, but honestly it didn't feel very useful. The check mark beside each video you complete and the instant feedback on quizzes is good enough to keep you encouraged and on-track.

* Forums:
 a- Udacity        --> N/A to me
 b- Coursera     --> amazing

Here, I can not do a fair comparison since I have not used Udacity's forums yet. But I can say that Coursera's forums are one of the best forums I have seen online. Extremely organized, politely moderated and you get lots of positive answers / feedback on your question or thread. It is vibrant, you can't imagine how large was the `thank you' thread for Nick and Instructors once the course was about to be concluded.

You will have to test Udacity's forums on your own and let us know. Or may be I do the same in future.

* Grading:
 a- Udacity         --> N/A to me
 b- Coursera      --> great

I have not completed Udacity's CS101 yet, so I can not judge grading. I have read that there was an exam and that its deadline was extended. But I have joined Udacity after the deadline of the exam. So, I think I am not graded at all. I am already running the course at my own pace.

On the other side, Coursera's quizzes are graded, and as I mentioned, you can apply `late days' for getting a better mark. You have a total of 50 days that you can apply. But there is no exams at all.

Either way, the sense of commitment resulting from exam grades in Udacity or quiz marks in Coursera helps in building the sense of accomplishment and the joy at completing the course.


If you have came across this post and you you have managed to complete any or both of the courses, please leave me a comment telling what do you think of the rival versions of CS101.
 
That's all folks!