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!

Wednesday, May 16, 2012

Tracking Time, the first step to powerful time management

I am very picky when it comes to adding a piece of software to my favourite apps list. By `my favourite apps list' I mean standalone applications that do not need a browser to run.

 Yet, a very sleek application quickly made it to my fav apps list. The application is called *** Kapow ***. Honestly, I just searched the meaning and it seems to be sort of an impolite word (according to Urban Dictionary) so we will try to ignore meaning of the word, and get to the function of the application.

Kapow 1.3.4 on Fedora 16 (Verne)
    Kapow is so simple that it will soon become indispensable to track your time. No much clutter. Just a left panel to add / remove projects, large (start / stop) and cancel buttons to indicate starting or stopping a task, and a simple view with customized columns to see what you have accomplished.

The clue to having life-reflecting data is to start / stop tasks when you really begin or end (pause) working on them. The relatively large buttons make it easy to do this. Tracking your time per day should never become a task in itself. It should never consume more than (300) of your precious 5,184,000  seconds you have each day ... (This is my own theory, and the 300 seconds should mostly be spent typing a meaningful task and later having a helicopter view of the tasks)

This said, I have to confess that I am the most person who:
- fails to estimate duration for any given task (despite some previous experience doing a similar one);
- fails to track her time;
- fails to arrive on time (even if it is an outing);

To curb this, I am trying Kapow and it seems to be doing me a favour. Hopefully I can keep going on and making progress on time management (الحمد لله، ما شاء الله، لا قوة إلا بالله)  :)

Here is how to get Kapow on Fedora 16 (source code is available as well as packages for other Linux distros. It is GPL 3 licensed):

$ sudo wget -O /etc/yum.repos.d/gottcode.repo

$ sudo yum install kapow

Trust me, it will make a difference in your life if you suffer from time-management issues.

Sunday, May 13, 2012

Initiatives for Online Education

Online education is growing, and I am glad!

Indeed, some initiatives have been there for a few years now and a handful of well-known universities are maximizing the opportunity for netcitizens to learn.

My favourite part about online education is not being free, but rather is comfort and flexibility.

For example, you can always watch the lectures or read course material during the times that best suit you. If you are a working mother or a busy individual, you can do this over weekends. Even better, you have access to the material everywhere you have an internet connection.

This simply throws the course into your `comfort-zone'. Once there, chances are you will grasp things better and accordingly can benefit yourself and the society from what you have learned.

I bet now you would like to have a list of online-education initiatives. Trust me, at least a couple of the below take knowledge seriously but makes it easy and fun for you.

Here are my favourite initiatives / sites:

1) Coursera
    * Has courses from Stanford, Penn, Michigan, California and Princeton Universities.
    * Courses that has no specific pre-requisites are really easy to understand.
    * You can sign up for courses that have already started and have access to their complete material (depends on  the instructor's decision but you will always have access to the videos).

2) MIT Open Courseware
    * A huge number of courses that really can make a difference in your life.
    * You have access to all course material aside of when you are attending the course.

3) Class Central
    * Carefully enlists dates of courses for other initiatives. Doesn't host the material itself.
    * Up to date (keep up the good work guys!)

4) Udemy
    * Not as authentic as Coursera for example, but `trending paid and free courses` are a good point to start.
    * You can create your own course there.
    * A good place to find about other books and initiatives covering the course. (Search for instructors and read discussions)

I hope the initiatives are useful to you, and that Allah (Sobhanoh w Taala) may reward me for letting you know about it :)