Computer Games and Traditional CS Courses
drroman22 writes "Schools are working to put real-world relevance into computer science education by integrating video game development into traditional CS courses. Quoting: 'Many CS educators recognized and took advantage of younger generations' familiarity and interests for computer video games and integrate related contents into their introductory programming courses. Because these are the first courses students encounter, they build excitement and enthusiasm for our discipline. ... Much of this work reported resounding successes with drastically increased enrollments and student successes. Based on these results, it is well recognized that integrating computer gaming into CS1 and CS2 (CS1/2) courses, the first programming courses students encounter, is a promising strategy for recruiting and retaining potential students."
While a focus on games may help stir interest, it seems as though game development studios are as yet unimpressed by most game-related college courses. To those who have taken such courses or considered hiring those who have: what has your experience been?
I think the lines between video games and reality are becoming more and more blurred. There are a lot of really interesting UI interactions I've seen a lot of "serious" apps riff from the gaming community with great success. It think it's important, as a lot of the younger folks these days are learning their computer chops from games, and the transfer of knowledge is pretty significant.
During grad school, I worked in an HCI lab with a pal that used the Doom engine to do experiments on people's ability to wayfind in a virtual environment. I know it's not game development, but it made for a really interesting experiment. I'm assuming there were lots of hours spent "testing the environment" as well.
"Before God we are all equally wise - and equally foolish"
Albert Einstein
USC is trying. Here's their GamePipe curriculum. It's education for entry-level programmers at EA.
It's kind of like film school courses that prepare people to be production assistants, then assistant directors, which USC also offers. That's not a path to becoming a director. It's more like a career in field logistics.
Game design oriented courses are a waste of time. It's an attempt to turn a difficult creative process into a trade school education.
That said, appliying game principles to CS is completely the opposite. How better to learn about trig than working with 2d graphics/games? Or more advanced concepts like matrix math and quaternions? Instead of learning abstract math, students learn how this math is applicable to real world applications and how to make it do interesting things.
I think we were talking about computer science, not JavaSchool. Sure, there's lots of IUSD or CRUD work, but that's not a university education.
2D / 3D algorithms, AI, DSLs, parsing, sorting and searching, network protocols, and so on. Those are all useful in games. They are also key concepts in a lot of computer science.
I think the point isn't that the courses are teaching useless stuff, but rather they're teaching the things using examples that the students don't find relevant. A lot of CS assignments consist of fairly contrived tasks that test the immediate task and nothing else. They do the job but the student doesn't have a sense of accomplishment since their program hasn't really done anything useful, just completed a contrived task. Games on the other hand have the objective of fun, so the moment the user has written a game they've written a useful application. This gives them a much greater sense of accomplishment.
Say you're teaching them how to use mathematical approximation algorithms to quickly compute line intersections.
You could use a simple graphing package and have them use their algorithm to draw the two vectors and see how close they get.
Or you could turn the vectors into arrows and have them try to shoot down another arrow in mid-flight.
Which would you have more fun writing?
I stole this Sig
Yes, in one course in the local IT Engineering degree, we were tasked to create a "game" over the course of a few weeks in Java. No, don't be fooled.
We were told exactly what had to happen when why, we just had to make the Java classes and translate the directions into code. There was nothing about balancing, nothing about making the game actually fun, very little about user training (my nethack-like interface was accepted without any problem)... simply nothing about the actual "game" part.
They just wanted us to make us interact a bunch of classes. The "game" part was just a cloak to make people go "wow" for those couple nanoseconds.
When ideas fail, words become very handy.
Yet most colleges don't even go over SQL and database. Which still has pleanty of computer science in the topic. DB call can be just as advanced a any other program. As well teach people to think in agragate. However most of the people I interview cannot do a join
SQL + Normalization : Set theory + discrete maths.
Ubuntu is an African word meaning 'I can't configure Debian'