Stanford CS Moves To JavaScript
Written by Ian Elliot   
Wednesday, 26 April 2017

The headline tells you all you need to know - Stanford Computer Science department is experimenting with replacing its long running Java-based introduction to programming with one based on JavaScript. Why?




Which language to use to teach programming is a big issue.

  • Do you choose something academically pure that can illustrate the "big ideas"?

  • Do you choose something easy to get started with for the introductory courses?

  • Do you choose something that is the top dog in the real world so that students will have marketable skills?

Surprisingly, if you are teaching computer science students the question is a lot easier - for the simple reason that CS students should learn multiple languages and benefit from comparing their different strengths and weaknesses. So to a great extent it doesn't matter what the first language is - as long as it doesn't put them off the entire project. This suggests that ease of getting started might be the most important factor to consider in adopting an initial teaching language for CS. 

So if you were horrified at the idea of the beautiful but verbose Java being pushed out by the ugly monster that JavaScript is perceived to be, then take time to think it through and keep in mind that these are CS students. 



To give you some idea of the current state of things it is worth reporting the results of a SIGCSE poll which revealed what was actually being taught to CS students:

Java       84
Python     60
C++        54
JavaScript 28

There is also a smattering of Scheme, ML, Prolog, Assembly, Scratch, PHP ... if you can name a language some one will be teaching it somewhere. 

 For the record, Stanford CS has moved from Pascal to C in 1992, to Java in 2002 and now to JavaScript in 2017. According to the Stanford Daily:

Eric Roberts, emeritus professor of computer science and pioneer of the CS106 series, has been working on the transition to JavaScript for the past five years. Roberts has written a new textbook, created assignments of the appropriate scope and trained new teaching assistants (TAs).

The new course CS 106J has the following course description

CS 106J: Programming Methodology in JavaScript

Introduction to the engineering of computer applications emphasizing modern software engineering principles: object-oriented design, decomposition, encapsulation, abstraction, and testing. Emphasis is on good programming style. This course covers the same material as CS 106A but does so using JavaScript, the most common language for implementing interactive web pages, instead of Java. No prior programming experience required. Enrollment limited to 100.
Terms: Spr | Units: 3-5 | Grading: Letter or Credit/No Credit
Instructors: Cain, J. (PI) ; Roberts, E. (PI)


Is this a good idea?

It isn't as bad an idea as many might initially think. JavaScript is one of the few languages in common use that does things differently. It isn't a clone of Java with slightly different syntax and syntactic sugar. It really does approach the programming problem from a different direction. It is its difference that is the source of a lot of the bad press it receives, and indeed the deep hate felt by many a Java/C++/C# programmer forced to use it. It is also the reason so many people have tried to fix it - where "fix it" means taking it in the direction of a class-based Java clone. 

JavaScript is far from perfect but it is easy to get started with and it has enough features to make it possible to illustrate programming ideas without committing the student to the prevailing dogma of class-based, object-oriented programming. If they survive the initial encounter with programming, and I think JavaScript makes this more likely, then they will be ready to learn two or three more languages before they are finished and turned out into the world where the education continues.


More Information

CS department updates introductory courses

CS 106J: Programming Methodology in JavaScript

Related Articles

Stanford Algorithm MOOCs Relaunched 

Top CS MOOCs By the Numbers 

New Coursera Core CS Specialization 

Stanford's Free Computer Science Courses

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.



Quantum Computers Really Are A One Trick Pony

Google is offering $5 million if you can think up a use for a quantum computer. Wait, I thought quantum computers were the next big thing, a revolution! Surely we know what they can do?

Grafana 11 Improves Metrics

Grafana Labs, creators of the Grafana open-source metrics analytics and visualization suite, has announced the preview release of Grafana 11 with improvements to make it easier to view metrics, and ch [ ... ]

More News

raspberry pi books



or email your comment to:

Last Updated ( Wednesday, 26 April 2017 )