Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

For non-engineering people, Java seems like a slightly odd choice, is it not? So much overhead in learning, plus overhead if they did want to integrate coding into their lives in a light way. Why not Racket or a scripting language? As much as it pains me, even JS might be of better use.

Or is it just the case that these people just wanna take one course from the "real" CS for a non-coding reason?



Because the assignments, section material, grading infrastructure, handouts, teacher training material, and institutional knowledge for this class are all built around Java when the class switched over in the early 2000s. In the past, couple years the process of changing just one assignment out of the six or seven assignments was difficult for everyone involved (teaching staff and students). Changing the entire class would require monumental effort, and it would have to be driven by a majority contingent of the half dozen professors / lecturers involved in the introductory CS community at Stanford.

Given that the class has been successful at teaching programming methodology to tens of thousands of beginner students over the past decade there's no pressing need to restructure the entire course, even though everyone does acknowledge that Python or some other language could be better for new students. It's basically like any other large software project, yeah it could be rewritten from scratch and modernized to make small gains, but if it ain't broke, why fix it, especially when the professors and TAs have other projects that have far more interest in, like this paper.

Also one thing that many people don't know is that CS106A actually changes the language environment as well as providing a modified version of Eclipse to remove some of the less useful overhead in Java (for example removing main, and the beginner confusion surrounding keyword static, arrays and arguments). Also there's a much simpler introductory class called CS105/101 that uses Python.

Source: I taught sections and managed the TAs for the introductory classes over the course of four years while I was a student at Stanford.


I think the best language to teach as an intro to coding for non-engineering, non-compsci folks would be python or maybe ruby.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: