Live data from Hacker News

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

jacobsschool.ucsd.edu

21–30 of 74 posts

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

#21
There's a lot to complain about with Java, but one part that IS great is that applications generally port pretty easily between environments (everywhere interesting for consumer software except iOS). Also this depends on Unity3d... guess what else is multi-platform! (including Win/OSX/Linux/web/iOS/Android)

I trust, then, that there's a good reason why this claims to be dependant on OSX. Seems to have something to do with this June (Java in Unity) thing.

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

#22
post #8

Earlier quoted context omitted.

Java is a great choice for CS. It's similarity to C/C++ is handy for those who need to transition high performance computing or move to work on low level systems (kernels, drivers, embedded systems, etc). The JVM is also a great target for learning about virtual machines, since the JVM itself is quite an amazing virtual machine by it's own regard. The JVM can also be used to study a 'real life' implementation of stac…

This is aimed at elementary and high school students, not at CS students. Java may be an acceptable choice for introduction to programming in CS programs, but that is not the purpose of that software which aims to introduce programming , not computer science.

CS _is_ programming. Just more in-depth.

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

#23
post #4

This used to be called Robocode back in the day.

I came here to mention Robocode. I played the hell out of that back in the day. I am currently working on an indie game (RTS) that includes AI in singleplayer mode, and also allows you to program your own AIs by making a class that inherits from my abstract AI class which gives you access to an AI API. With Robocode there is a pretty high barrier to entry, but my goal is to have the game be entirely playable and a fun game, which then entices the user to go mess with the AI code.

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

#24
This is outstanding!! Man, I would've loved to have this when I was in grade school. I remember being very excited about my one hour per week in front of the LOGO turtle. This goes way beyond. I'm not a big fan of java, but learning how to program in the same language your parents may be using at grown up work is pretty damn awesome.

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

#26

Earlier quoted context omitted.

This is aimed at elementary and high school students, not at CS students. Java may be an acceptable choice for introduction to programming in CS programs, but that is not the purpose of that software which aims to introduce programming , not computer science.

CS _is_ programming. Just more in-depth.

> CS _is_ programming. Just more in-depth.

CS to Software Engineering to Programming is as Physics to Aerospace Engineering to Aircraft Maintenance

Related, but not the same thing.

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

#27
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?

There are a few big reasons schools still teach Java primarily - adoption, scalability, and maturity. According to almost every Tiobe language survey, Java has been and is still either #1 or #2. It is pervasive in just about every enterprise IT environment throughout the entire world (whether you realize it or not), running on a ~billion devices and, now, Android phones as well. Furthermore, it has very mature suppor…

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?).

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

#28

Earlier quoted context omitted.

CS _is_ programming. Just more in-depth.

> CS _is_ programming. Just more in-depth. CS to Software Engineering to Programming is as Physics to Aerospace Engineering to Aircraft Maintenance Related, but not the same thing.

CS teaches the fundamental theories that form the mathematical basis of programming. It is true, to be a mediocre programmer you only need a few intro lessons or just a couple weekend hackathons, but to master it you need that theoretical CS background which covers it much more in depth.

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

#29
So, I just tried this out. I think it would be a lot more user friendly if you could see what "spells" are available when making a new spell (i.e. have auto completion in the text editor). It's a pain to have to look at the spell book, and limits experimentation.

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

#30
post #8
post #5

Earlier quoted context omitted.

Perhaps their next project will be a game that teaches kids how to smoke.

Java is a great choice for CS. It's similarity to C/C++ is handy for those who need to transition high performance computing or move to work on low level systems (kernels, drivers, embedded systems, etc). The JVM is also a great target for learning about virtual machines, since the JVM itself is quite an amazing virtual machine by it's own regard. The JVM can also be used to study a 'real life' implementation of stac…

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 LinkedList();
            this.pets.add("cat");
            this.pets.add("dog");
            this.pets.add("bird");
        }
    }
or whatever may be great for transitioning people to C++ later on (not exactly where all the jobs are...), but

    pets = ["cat", "dog", "bird"]
is probably a gentler introduction for elementary school students.
Post reply on HN