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?

 

datastruct

 

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. 

stanfordlogoforknuth

 

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.

stanfordjs

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.

 

Banner


Extend NGINX With The New JavaScript Module
28/10/2024

Inject middleware functionality into NGINX with the expressive power of Javascript. NGINX JavaScript or NJS for short is a dynamic module under which you can use scripting for hooking into the NGINX e [ ... ]



Mojo - Python Superset For Go-Faster Hardware
07/10/2024

Mojo, the new language from Chris Lattner and his AI-focused company Modular, has entered the top 50 of the TIOBE index, even though it it was only launched in 2023.


More News

espbook

 

Comments




or email your comment to: comments@i-programmer.info

Last Updated ( Wednesday, 26 April 2017 )