I am forwarding you an internal discussion between us i.e. teachers, so that you know the reasoning behind our decisions that we make on your behalf. It is not a question of who is right or wrong, but the process is important. Your input is also welcome.
Zia
The original document on which the discussion is based is available at:
From: Zia Khan
Sent: Friday, January 06, 2012 8:31 PM
Subject: Re: [Important] New Handout please review
Carnegie Mellon University is also moving to "scripting language" to start teaching programming:
"As mentioned, we believe that our new 15-110 course can convey the conceptual basis of computer
science plus provide concrete experience in writing programs that solve practical problems. We
plan to do this by using a so-called scripting language. Compared to languages such as C or Java,
these languages have simplified syntax and type systems, and they have primitives that make it
easier to invoke other programs and to process strings of text or data. Our current plan is to use
Python, but we do not view this choice as a fundamental requirement."
Complete report at:
My Conclusion:
1. Therefore our choice of the king of the scripting language JavaScript is justified given that the two best universities of the world have already moved to scripting languages.
2. Both MIT (http://lambda-the-ultimate.org/node/1840 ) and Carnegie Mellon took this decision about Python a few years back, which is now being implemented. While Node.js took off in 2011, and has much more traction in the industry then Python, etc. I think in a few years they might again make a change ) Moreover, on the client side it has already won.
3. Functional programming is being emphasized as compared to OO programming because of OO's concurrency issues.
4. Therefore I think our decision has very little risk.
On a side note the top dogs in server programming is now a two man race between Java and JavaScript, with .Net being left behind. I think Microsoft might abandon .NET in the future, which Microsoft has already done to some extent.
Zia
From: Zia Khan
Sent: Friday, January 06, 2012 8:05 PM
Subject: Re: [Important] New Handout please review
Additional reference:
"Object-oriented programming is eliminated entirely from the introductory curriculum, because it is both anti-modular and anti-parallel by its very nature, and hence unsuitable for a modern CS curriculum."
Zia
From: Zia Khan
Sent: Friday, January 06, 2012 6:25 PM
Subject: Re: [Important] New Handout please review
Thank you so much for your input.
We are not trying to create general purpose BS is CS, others are charging lot of money and time (4 years) to do that. We want to specialize and make students productive in a short duration (1-2 years on one class per wk) and less then Rs. 10,000.
I think software marketplaces will drive our software developers, therefore we are only focused on that. We are not training people to write MongoDB in C++, etc. Focus is the key. Our focus is on Windows 8, iPhone, iPad, etc. marketplaces. Most of the applications there will be Html5 based and cloud supported. Even if this number is only 50% and add the teaching productivity one language brings, it is still perfect for us.
Suggestion 2 is very good, we will use MongoDB for this, it is easy and can be done in a single class ) Thanks again for a great idea.
Suggestion 1 is a good suggestion and MIT follows this, but the other way around. They were teaching Scheme (functional) and now Python:
They used to teach functional programing (Scheme) and think the developers will learn other languages in the industry. Due to our objectives and time constraints we cannot do that. We have only time to teach one language, and it has to be a language which is most used in the industry. Now and more so in the future, it will be JavaScript, I think no one will dispute this. Therefore, there is no choice but JavaScript. I am not saying everyone will only use JS from now on, just that it is best for us given our objectives and constrains.
Zia
Unbelievable:
By the way Microsoft is pushing Javascript to be used in Hadoop: http://jgoodall.posterous.com/mapreduce-pipelines-javascript-hadoop-and-mic
From: Zafar Hussain Luni
Sent: Friday, January 06, 2012 5:24 PM
To: Zia Khan
Subject: Re: [Important] New Handout please review
I have few suggestion and comments :)
First of all its not going to happen that all of our software world will start using JavaScript. "one solution to rule them all" is not going to happen. Nothing like it happen earlier nothing like it will happen in future. If node is that much successful then Microsoft will write a non blocking server which will support C# and other .net language or may be Apache or some one else will write it for Java. Good thing about node is not JavaScript but it is its non blocking nature. But other companies are also using non blocking servers made in other languages (Tornado written in python is used by Friend Feed which was bought by Facebook). We already saw sudden rise in Ruby and Rails when every body was singing that Rails is going to take over the web but Rails craze flew away in next couple of year. Every one was saying Java is dead, .Net is dead and Ruby will rule the world. But in 2012 we know that Java is still Number 1, C++ , C# are in top 4/5 and ruby has dropped to 12 spot.
None of top site of world use single framework/language. Every one uses hybrid approach. LinkedIn, Facebook, Google, Twitter all use multiple languages and frameworks e.g Hadoop, C++, Java, Scala, Php(on front end), etc are used by them. Even still for today Facebook has worlds largest cluster of MySQL servers even we know that they have written their own NoSql solution. But they use both of them. Map Reduce of Google is still written in C++ and they are even porting it to Java. And no one is going to rewrite Hadoop in Js. No one writes any critical or heavy duty software in any dynamic programming language only. And even MongoDB is written in C++.
With what I agree is Html5 will be king of RIA. It will be most used UI framework. JavaScript usage will increase by multiple times. NoSql share will also increase. But I don't agreed that most of end to end solutions of future will be written only in Js. This is my opinion any one is completely free to disagree with it.
Now some suggestion about Course outline.
1: Basic JavaScript and C# in 251 is OK. But move functional programming section from beginners course and move it to 251. (It will be best if JavaScript consists of only 4-6 lecture and rest of course should be on any Object Oriented Language).
2: Add one or two classes for introduction of Database programming in 101 or 201. So that student can create simple end to end solution. Just basic idea how to connect to DB and save a couple of records.
Regards,
Zafar Hussain Luni
Zafar Hussain Luni
From: Zia Khan <ziaukhan@hotmail.com>
To: Inam-ul-haq Inampaki <inampaki@hotmail.com>; Javed Aleem <javed_aleem@yahoo.com>; Sajid Banday <sajid.banday@gmail.com>; Sir Zafar Hussain Luni <zafarluni@yahoo.com>; Zeeshan Hanif <zee81zee@yahoo.com>
Sent: Thursday, January 5, 2012 3:55 PM
Subject: Re: [Important] New Handout please review
You are right but in an year or two when the corporations have moved to Html5 we will drop C# altogether ( Currently, C# and ASP.NET MVC is only included because the current jobs require it. They will be dropped eventually. To sum up C# not our main focus. The main focus in JavaScript on client, on server and even in the databases. We are moving towards a universal programming language, with all it problems (
Zia
From: Zeeshan Hanif
Sent: Thursday, January 05, 2012 3:09 PM
To: Zia Khan ; Inam-ul-haq Inampaki ; Javed Aleem ; Sajid Banday ; Sir Zafar Hussain Luni ; Zeeshan Hanif
Subject: Re: [Important] New Handout please review
Sounds great. But If we teach C# first to 101 so we can give students knowledge of Frameworks and .Net platform which needs to explain first to students who is completely new to the field. And Student can understand Object Oriented easily with strict rule of .Net platform and single line of focus instead of dynamic language which have too many way for object oriented implementations.
Regards,
Zeeshan Hanif
From: Zia Khan <ziaukhan@hotmail.com>
To: Inam-ul-haq Inampaki <inampaki@hotmail.com>; Javed Aleem <javed_aleem@yahoo.com>; Sajid Banday <sajid.banday@gmail.com>; Sir Zafar Hussain Luni <zafarluni@yahoo.com>; Zeeshan Hanif <zee81zee@yahoo.com>
Sent: Thursday, January 5, 2012 11:43 AM
Subject: [Important] New Handout please review
see attached
_______________________________________________________________________________
Zia Khan: http://www.google.com/profiles/ziakhan
Become my friend on Facebook: http://www.facebook.com/ziakhan
Follow me on Twitter: http://www.twitter.com/ziakhan
Operation Badar Blog: http://operationbadar.wordpress.com/
Operation Badar Website: http://www.operationbadar.org/
Mobile: 92-300-826-3374 (Pakistan)
Projects: Panacloud.com and Unicharts.com
Microsoft's Windows Azure Discussion Group: 3,000+ Members
Google App Engine for Java Discussion Group: 2,400+ Members
Html5 Application Development Discussion Group: 400+ Members
CFA, CPA, and CMA Exam Preparation Discussion Group: 3,700+ Members
_______________________________________________________________________________
__._,_.___
Cloud Computing Education: http://www.OperationBadar.net
MARKETPLACE
.
__,_._,___
0 comments:
Post a Comment