Friday, June 15, 2012

Back to quality education with Udacity and KhanAcademy

A slight deviation from my usual posts and this time I am reflecting on the state of education, when I was a school student and the new digital era being revolutionized by the likes of Udacity, KhanAcademy and Coursera.

Every child goes through this phase, and its the decision that he makes, at that point, that may change the future course of his life.

Every child has a dream and every dream has some limitations, which are constrained by our imaginations and most of which are self created.  As a child I always wanted to study and understand mathematics and its applications, but was never able to.

I never understood what my teacher was teaching, as it was a pure mechanical process.  Put a formula, here and a formula there and you get the solution.  They never made us ponder why things work the way it does.

For me mathematics was one of most dreaded subjects and also one which I loved most, for being one of the subject on my top hate list.  Pretty contradictions, and that's what thoughts are.

I always wanted to master this beautiful subject, but never found a teacher. There were many teachers who used to teach, but none to educate. The most shattering thing for me with my math experience was when I was in my 5th grade, and I scored  of  1 point out of  100 in my preliminary exams, because I never ever studied what was taught, because I never understood anything, and things never interested me.

And that 1 point, I guess could be because my handwriting was good at that point in time. That's what I thought (though that was not the case, because at that time my handwriting was terrible).  So, you could now imagine the state of mind of a 5th grader and his hope with his further math education.  (Hope my kid won't be reading this blog after couple of years).

Teachers are not bad, but their teaching experience faired very badly at that time.  It's not there fault. There weren't simply any  finishing school where teachers could polish their teaching skills based on different students needs. There are some good teachers who go out of the way to explain things, but my math teacher when I was in  5th grade was not one of them.  Though, it may not be teacher's fault  and they were doing a good job, as other students were passing the exams and also the students to teachers ratio was something like 1/65.  May be I didn't had a mathematical bent of mind.

Somehow I passed these school exams, and luckily while I was in my 7th grade we moved to another city Kalyan (remote location in Mumbai).

Parents thought with a change in place, my attitude towards education might change.  And to some extent they were right, though I was not very good at math, until when I was in 10th grade.

It was during my study in 10th grade, that I realized that math is a beautiful subject again and special thanks goes to my tuition teacher, Joy Sir (of St. Mary's classes, Kalyan), for beautifully explaining the subjects.  And I did pretty well with math, from thereon.

The only problem and mistake I did was in my 11th and 12th high college , I skipped math and took up a useless secretarial course (as I thought during that time secretarial course for commerce student was more useful that math and all my friends opted for this subject) and that was one of my biggest educational decision mistake that I committed.  From thereon, I lost interest in math, and somehow passed my mandatory first year math college course and was fully involved more than hundred percent devoting my time to computer applications.  But somehow, this lack of mathematical education, always haunted and interested me.

And then came KhanAcademy.org.  After about 15 years from graduating from college, I again fall in love with Math, but this time with a purpose.  I don't want my kids, to go through the same process of lack of understanding and lack of awareness on the purpose of education and the role it can play to shape their future.

I want them to appreciate the subject not only math, but science, economics, history, law and others.  I rather want them to experience the subject rather than learning by rote.  And I am very thankful to these wonderful online academies who are doing a great job.

Now coming back to Udacity, they are special to me.  Two new courses on statistics and discrete math is being shortly offered in the coming weeks.

http://www.udacity.com/overview/Course/st101/CourseRev/1
http://www.udacity.com/overview/Course/cs221/CourseRev/1

What better opportunity will I get to test and brush up my math skill (which is very negligible) from the finest professors in the world.

I have committed myself to complete both the courses in the next 7 weeks after it starts no matter what it takes me to complete and to get permanently rid of this math phobia.  At least I will try.

I have tried many Udacity courses in the past couple of months, but never completed any.  My purpose then was to learn things which I wanted and selectively watch courses that I like.  And I am glad I did that.  Almost all of Udacity's courses are simply great and 100 percent educational.

You want  to learn programming, take CS101 and build a search engine.  You are an intermediate programmer take CS253- Web Application Engineering and build a blog engine and wiki in the process, understand caching and other useful aspects of computer science.  You want some advanced stuff, take CS387 - Applied Cryptography.

I guarantee you will love these courses.  Even though the language of programming used is Python, but that is of least concerned as what matters most is the concept and ideas that you learn during this course.

Also, its always better to know yet another language apart from the language you program for your bread and butter.

Also, there are many more courses that are coming up and I am sure you will find your choice of course.

I will highly encourage other people who are on the same state of mind like me to try these courses out.  Not only for yourself but for others around you, who may require genuine quality guidance from someone who has gone through this phase of life.

Hopefully education will not be the same again. Learnings will be fun and enjoyable.  And that may be the precise reason  why I like teaching and taking up some professional training activity from time to time, because I want people to understand the crux of the matter.

The key thing is to understand the foundation of any subject , polish your basic skills, learn to communicate effectively , write better, and you will grow into a exceptional professional in any field which you may choose to study.

Another thing  that I will do is to blog all my learnings from this courses, as micro books on my upcoming website http://www.ownabook.org/

I hope my mistakes could be a learning points for the kids around me.

Happy learning!

P.S:  This post in no way is trying to undermine the importance of teacher nor is addressed to any specific person.  These are just my thoughts and my perception based on what I have experienced and thought of sharing.  No hard feelings for any one.  I love and respect my teachers and it was because of the support of some great teachers who had given me opportunity to try and work out things going out of their way that enabled me to get confident in my area of study.

Monday, June 11, 2012

Quickly build a jQuery watermark plugin with HTML5 and modenizr support

In this edition of blog post, we will quickly build a jQuery watermark pluigin for input controls.  This is an adapted post from  http://uniquemethod.com/html5-placeholder-text-jquery-fallback-with-modernizr.  I have quickly refactored the code as a jQuery plugin.  The author in the above blog post has done a great job of summarizing the concept.

A watermark or placeholder text is an indicator by input controls as to what data could be enter in the field.  It's kind of a hint to user entering the data.

HTML5 has native support for watermark in the form of "placeholder" attribute.  Any text that you put in the placeholder attribute will show as watermark in modern browsers.

For browsers that doesn't yet support HTML5, jQuery comes to the rescue.  Also, we are using Modernizr for feature detection.

Modernizr is an excellent feature detection library, with which we can detect for support of modern standard by browsers.


You can see a working version here


You can use this plugin, in the following manner.

$(".placeholder").watermark();

The above jQuery code finds all elements with a class of "placeholder" and applies the watermark() function to it.

The sample input element is shown below.

 <label>Namelabel>
 <input class="placeholder" placeholder="Enter your full name." type="text" />

Do note the above input element has a class of  "placeholder" and also a placeholder attribute which is set to "Enter you full name".  This placeholder text will be shown as watermark in the input element.  Also, HTML5 browser directly understands and render this placeholder attribute appropriately.

Rather than bloating this post, I have added appropriate comment in the jsfiddle.  In case anyone needs further clarifications, please drop a comment.

Enjoy~!.

Friday, June 08, 2012

A new startup initiative: Ownabook.org - A community site

Lately there has been a traction from my usual work, and was thinking about starting something very different and helpful to the community.  Various ideas where jumping in my mind, but as usual ideas are ideas and of no use unless it sees the light of the day.   Did tried attempt at various small open source projects, in PHP, rails, MVC, jQuery, but never completed any of them fully.  Something always stopped me at the last moment.

But the good thing is there was tremendous learning in all these activities.  Learned a ton.  But one thing always hounded my mind, my incomplete OSS projects.

So, this time, didn't thought much,  just jumped straight in, took the code editor and begin designing my ideas as code.  One of the outcome is http://ownabook.org, a community initiative were some lucky bookwormers may get cool books, absolutely free.  That's not all, once the site is up, there will be unique features and opportunities to grab.

The idea behind this is to keep the reading habits alive in people, and doing my bit in the way.  It's not about winning a free, book, its about what you do with it.  It's about sharing.  As time goes by, there will be intelligent quizzes, tips, puzzles, which keeps your brain tickle.  Keep it alive, and in the process win a book.  Those things are still in my head, but will soon come out in the form of code.

I will definitely release this as OSS, once I get all basic things done correctly, as I don't want to share bad code.   Believe me there will be some real gems in the code, in terms of design, coding pattern and much more, which definitely I have learned from the ever helping communities in the internet.

Also, planning to setup up a place in the site to offer books to needy students, children, in remote places, but don't have any idea about how go about doing that.

If anyone reads this post, and knows something in this direction, then do leave a comment.

Enough ranting.... regular post will resume soon.  Plan to finish Javascript series and then start with MVC 4.

Enjoy reading!