Live data from Hacker News

UCSD Computer Scientists Develop Video Game that Teaches How to Program in Java

jacobsschool.ucsd.edu

51–60 of 74 posts

Re: UCSD Computer Scientists Develop Video Game that Teaches How to Program in Java

#51
post #47
post #46

Earlier quoted context omitted.

Universities in the US don't teach languages in general. At my school, you get 1 semester of Java and that's it. The next class people take that uses something else is compilers, and that uses C. You're just expected to know it. The usual justification is "we're not a vocational college" which I think is kind of bullshit.

Wait, is your take on this that their attitude is not good? We got one quarter of C++, then everything else was "you are all grownups, use whatever the hell you want so long as it works on [cs cluster]" . Most people continued to use C++ of course. It was not until an intro to languages course (preceding a few compilers courses, if you elected to take them) that course material again included learning a new language…

It's not so much courses teaching languages, it's the lack of software engineering in general. There's one course here which is a joke and not taught until your second to last semester. And then people turn in absolute barf code in their homework.

Then people graduate and start a job, and they can't code their way out of paper bag, but they sure can write the tuple relational calculus for some given query.

Another example is my OS class. We just spent half a semester going over concurrency problems. Now we're rushing through everything else that goes on in an OS. We spent one day on filesystems and I/O. Not once have we said anything like "well this is how Linux or FreeBSD does it".

Re: UCSD Computer Scientists Develop Video Game that Teaches How to Program in Java

#52

Earlier quoted context omitted.

So yes, while you're startup may choose Python or Ruby or the latest language of the day, Java is a great system to teach a lot of fundamental computer science topics with. Are you implying that Python (1991) and Ruby (1995) are some sort of flavor of the day compared to Java (1995)? :-) import java.util.LinkedList; import java.util.List; public class Pets { private List pets; public Pets() { this.pets = new LinkedLi…

Gentler for a weekend hacker, but not for a student. Java is verbose for a reason - safety and reliability. Things enterprises value. Students need to learn what is most pervasive in the field they plan to enter. That being Java. Starting them out on a "lite" version of a programming language simply because it is easier is just setting them up for failure.

[deleted]

Re: UCSD Computer Scientists Develop Video Game that Teaches How to Program in Java

#53
post #11
post #7

Earlier quoted context omitted.

I'm guessing it's because "CSE 8A. Introduction to Computer Science" at UCSD is taught in Java. A lot of universities start their CS students off with Java these days.

I've seen this in a couple places, but I'm not sure I understand why. Does anybody know of a good reason for teaching java first?

I feel it gives a good tradeoff between:

- typed languages that are too low level to start (C/C++)

- scripting languages that are high level, not typed, and therefore do a lot of things under the hood (Python, Ruby, Javascript)

Re: UCSD Computer Scientists Develop Video Game that Teaches How to Program in Java

#54
post #3

A really nice idea ... but why, oh why did they have to choose a language that has a lot of extra scaffolding like Java instead of something simpler like Python, or Ruby?

This whole thread about their use of Java completely misses the point of this project. Maybe people shouldn't be so hung-up about what language is being learnt? I'm sure the students will be learning a whole range of languages.

Re: UCSD Computer Scientists Develop Video Game that Teaches How to Program in Java

#55

Earlier quoted context omitted.

So yes, while you're startup may choose Python or Ruby or the latest language of the day, Java is a great system to teach a lot of fundamental computer science topics with. Are you implying that Python (1991) and Ruby (1995) are some sort of flavor of the day compared to Java (1995)? :-) import java.util.LinkedList; import java.util.List; public class Pets { private List pets; public Pets() { this.pets = new LinkedLi…

Gentler for a weekend hacker, but not for a student. Java is verbose for a reason - safety and reliability. Things enterprises value. Students need to learn what is most pervasive in the field they plan to enter. That being Java. Starting them out on a "lite" version of a programming language simply because it is easier is just setting them up for failure.

Thus, anyone who learns a first language other than Java is setting himself up for failure?

My first language was Basic on an Atari 800. My second was C++. I've made a respectable career from programming since then, in both serious and "lite" languages alike, including Java. I seem to have avoided these dire consequences. :-)

Re: UCSD Computer Scientists Develop Video Game that Teaches How to Program in Java

#56

Earlier quoted context omitted.

Yes, but teaching java before graduation is different than teaching it first . You can get all the benefits you mentioned of learning Java even if it's the second or third language while using something nicer for the first one (python? Scheme? SML?).

Class is short, you get one shot. Scheme or Java, not both.

In college I was expected to know Scheme and Java, and C and some Assembly besides. I also picked up two other languages on my own time. I can't imagine even the least capable CS student graduating knowing only Java or only Scheme.

Re: UCSD Computer Scientists Develop Video Game that Teaches How to Program in Java

#57
I'm trying to envision the MMO version of this, with special reference to (dungeon) raids.

"Leroy, you'll levitate the troll for 15 iterations. Zelda, you'll comment out the basilisk. Everybody, now's the time to warm up your caches. Ready check ... OK then. 0, 1, 2, 3 ... Go go go!!"

Re: UCSD Computer Scientists Develop Video Game that Teaches How to Program in Java

#58

Earlier quoted context omitted.

Yes, but teaching java before graduation is different than teaching it first . You can get all the benefits you mentioned of learning Java even if it's the second or third language while using something nicer for the first one (python? Scheme? SML?).

Not so. Learning on an interpreted language is akin to learning how to fly a plane by simply riding in one. There is a lot to learn in a CS program, and it really requires a single language from start to finish. Python doesn't have some of the advanced capabilities and adoption of an enterprise-class language like Java. Believe me, I love Python - I've created a ton of apps with it, but I also have a CS degree and ha…

How are you going to teach pointers or recursion in Java, though?

More on that from Joel Spolsky here: http://www.joelonsoftware.com/articles/ThePerilsofJavaSchool...

There is a lot to learn in a CS program, and it really requires a single language from start to finish.

There is really no single language that you can use to teach everything that a CS student needs to learn. A computer science education should teach concepts that transcend languages, and use whichever language is best suited to demonstrate the concept at hand.

Re: UCSD Computer Scientists Develop Video Game that Teaches How to Program in Java

#59
post #53
post #11

Earlier quoted context omitted.

I've seen this in a couple places, but I'm not sure I understand why. Does anybody know of a good reason for teaching java first?

I feel it gives a good tradeoff between: - typed languages that are too low level to start (C/C++) - scripting languages that are high level, not typed, and therefore do a lot of things under the hood (Python, Ruby, Javascript)

This is a reasonable view, but I want to point out that Python and Ruby are strictly typed, just not statically typed. You must still understand primitive types and casting, in contrast to JavaScript or PHP, which are both loosely and dynamically typed (a frequently dangerous combination).

Re: UCSD Computer Scientists Develop Video Game that Teaches How to Program in Java

#60
post #51
post #47

Earlier quoted context omitted.

Wait, is your take on this that their attitude is not good? We got one quarter of C++, then everything else was "you are all grownups, use whatever the hell you want so long as it works on [cs cluster]" . Most people continued to use C++ of course. It was not until an intro to languages course (preceding a few compilers courses, if you elected to take them) that course material again included learning a new language…

It's not so much courses teaching languages, it's the lack of software engineering in general. There's one course here which is a joke and not taught until your second to last semester. And then people turn in absolute barf code in their homework. Then people graduate and start a job, and they can't code their way out of paper bag, but they sure can write the tuple relational calculus for some given query. Another ex…

Hmm, my experiance may have been a bit different since mine was a 5 year program with a solid year and a half of courses before graduation without break. Most of what you are describing got at least two or three quarters of treatment at my school, depending on what tracks you took.

We also had a Software Engineering major which a lot of people in CS took courses from. The only required (non-track) CS courses in our suggested 4th/5th year were software engineering classes though. I think the coverage there was more than adaquate. Honestly it got a bit too "vocational" for my tastes.

On the other hand, most of my peers (70-80%?) took the AI/Games track; they probably got closer to the sort of coverage on the other topics that you're mentioning. IIRC only two arch classes (MIPS), no OS to speak of, and a single 3-month quarter of concurrent programming. I don't think that is satisfactory, but the last I have heard most of them have been doing fine in the real world. That stuff is neat and good fun, but I don't think it will really effect your ability to perform in the industry.

Post reply on HN