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.
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:
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 JavaScriptIntroduction 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 InformationCS department updates introductory courses CS 106J: Programming Methodology in JavaScript Related Articles Stanford Algorithm MOOCs Relaunched 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.
Comments
or email your comment to: comments@i-programmer.info |
Last Updated ( Wednesday, 26 April 2017 ) |