Live data from Hacker News

Stanford dumps java as intro language

neowin.net

21–30 of 50 posts

Re: Stanford dumps java as intro language

#22
post #17
post #14

Earlier quoted context omitted.

Disagree, I think it is the exact opposite. I say that as someone who did their CS education in the early 90s when that was the case. We used C for everything unless the class material implied something else. We got into the down and dirty details quite fast. IMO that's the wrong way to do it. Using myself as an example it took me far longer to learn things like data structures than it should have. Why? Because I sti…

I keep hearing that people have (or had) trouble understanding pointers. As someone who has never had that problem or met such a person, I am struggling to understand why...

It’s possible to use pointers successfully without understanding them fully - (having a sense of) incomplete knowledge can frustrate the learning process. Spending time dropping down to assembler to learn a few variations of MOV or looking at compiler output would make pointers achingly clear.

Re: Stanford dumps java as intro language

#24
I'd say Python would've been the 'safe' and 'sane' choice, but maybe it's just my bias against Java and JavaScript talking.

Just curious, has anyone ever heard off choosing to teach something like bash / PowerShell? It might seem less intimidating than downloading a lot of stuff and students can play around with stuff already in their computer. Hell, maybe even something like VBA (as much we might dislike it) since non-majors will likely encounter it in MS Office anyway.

Re: Stanford dumps java as intro language

#25

I'd say Python would've been the 'safe' and 'sane' choice, but maybe it's just my bias against Java and JavaScript talking. Just curious, has anyone ever heard off choosing to teach something like bash / PowerShell? It might seem less intimidating than downloading a lot of stuff and students can play around with stuff already in their computer. Hell, maybe even something like VBA (as much we might dislike it) since n…

In the department I work, 5 people recently started using Python who never wrote a line of code before (except some limited VBA).

While the coding itself was relatively smooth, we spent a majority of our time consolidation which Python version works with which packages and how to create code that can be executed by computers that use Python 2 vs Python 3. Some people had to use packages that only worked with P2, others only worked with P3.

There's still not really a solution for this. We'll probably just switch to Julia once it gets enough support in areas we need..

So I disagree, Python is actually not a good language for beginners. The language is great but the ecosystem can be extremely frustrating.

Re: Stanford dumps java as intro language

#26
post #15

I've TA'd all of Stanford's intro programming classes, including the first course in programming CS 106A, so a few things: - unlike a lot of other schools, CS 106A is mostly taken by non-majors (90-something percent of undergrads take at least one CS course before graduation, and for non-majors that means 106A) - the follow up course, 106B, is in C++ and focuses on OOP, pointers, memory, data structures, etc. - 106J…

Thanks for the insight. With your experience, what would be a good language for non-majors so that they can make use of their experience later? Python, Go, C?

Re: Stanford dumps java as intro language

#27

Students who start by learning Java will learn solid principals which may be applied to Javascript (or any other language). Students who start by learning Javascript won't learn solid principals.

You assume that the course is for CS majors. For students who'll only have 1-2 CS courses in their life, teaching some practical skills could be the better choice.

Re: Stanford dumps java as intro language

#28
post #11

Javascript, really? Why not Python?

JS is the new lingua franca, what C used to be. And unlike C it is easy to get started programming in it. Thus a good choice for an intro language if you ask me.

Learning to program is hard enough without having to worry about hoisting, truthiness, function vs block scope, prototypes, the many rules of this, "classes" that don't behave like classes, and other quirks unique to JS.

Do you need to know all of the corner cases in order to write a simple script? No. But good luck trying to get someone to debug a JS program without a solid foundation. JS is a pedagogical disaster.

Re: Stanford dumps java as intro language

#29
post #26
post #15

I've TA'd all of Stanford's intro programming classes, including the first course in programming CS 106A, so a few things: - unlike a lot of other schools, CS 106A is mostly taken by non-majors (90-something percent of undergrads take at least one CS course before graduation, and for non-majors that means 106A) - the follow up course, 106B, is in C++ and focuses on OOP, pointers, memory, data structures, etc. - 106J…

Thanks for the insight. With your experience, what would be a good language for non-majors so that they can make use of their experience later? Python, Go, C?

Python would be nice if everybody uses Python 3. Simple dynamic and most of the Open source stuff is scriptable using python. So daily automation is a real possibility. Atleast that's what I am doing.

Re: Stanford dumps java as intro language

#30
post #17
post #14

Earlier quoted context omitted.

Disagree, I think it is the exact opposite. I say that as someone who did their CS education in the early 90s when that was the case. We used C for everything unless the class material implied something else. We got into the down and dirty details quite fast. IMO that's the wrong way to do it. Using myself as an example it took me far longer to learn things like data structures than it should have. Why? Because I sti…

I keep hearing that people have (or had) trouble understanding pointers. As someone who has never had that problem or met such a person, I am struggling to understand why...

It's not so much as trouble with pointers as trouble with visualizing algorithms and data structures. Try implementing some moderately complex one in C. It reads like a monster. A dynamic language like Python would have a simpler implementation but at the cost of performance (Why do beginners need performance).
Post reply on HN