Computers have become such an integral part of our daily lives that most users rarely give a second thought to the immense collective effort that has made them possible.
But for those drawn to understanding the inner workings of the technology, computers are more than just a modern convenience. They’re a canvas for solving complex problems, a toolset for engineering new types of applications and experiences, and a potential gateway to any number of careers and opportunities.
As with any professional field, looking at the world of computer science from the outside in can be both daunting and exciting. We talked with three faculty members about their own early pathways into programming and their approaches to teaching computer science and software development at DigiPen.
Pushpak Karnick
Assistant Professor of Computer Science
At a time when his peers were playing with footballs, dolls, and other toys, Pushpak Karnick was pretending to use computers. As a fourth grader in India, Karnick remembers being fascinated with a 1980s BBC television series called The Computer Programme, which documented the emerging applications of computer technology in science and industry.
“After watching this program I used to make my pencil box into a keyboard. I had a paper drawing of a keyboard taped onto my pencil box,” Karknick says. “My father had a typewriter. So I knew which keys went where.”
Here was something that was practical and as close as I could get to making a Death Star.”
While it would be at least four more years before he would have the chance to use a real computer, Karnick says he knew from then on he wanted to be a programmer.
“As a fourth grader, you really don’t have a concept of what technology is, the depth required to create something, but you know that this is something that interests you,” Karnick says. “I was into all geek stuff — Star Wars, comics. And so here was something that was practical and as close as I could get to making a Death Star.”
Karnick’s first brush with programming came about as part of an eighth-grade workshop in BASIC. Then in high school, Karnick enrolled in a vocational program and began to learn both the C and Pascal languages.
“It was fantastic. I loved it,” Karnick says. “That’s when I wrote my first graphics program, which was just drawing circles, and that’s how it started.”
At DigiPen we make sure that, not only are you well versed in theory, but you do actually put that theory into practice.”
Years later, Karnick journeyed overseas to study at Arizona State University, where he went on to earn his master’s and doctorate degrees in computer science, specializing in computer graphics and procedural modeling. Even while at ASU, Karnick says he and his colleagues were well aware of DigiPen as a premiere game development college.
Now as a professor, Karnick describes his approach to computer science as being grounded in examples.
“Whenever I design a new lecture or design a new class, I always have to find that balance between not losing students too much in theoretical jargon, but rather demonstrating how this theory can be applied in real-world situations — in this case games or simulations,” he says. “If you were to go to another university, it would often be assumed that you would learn the practical aspects of it on your own. Whereas at DigiPen we make sure that, not only are you well versed in theory, but you do actually put that theory into practice.”
Steve Rabin
Adjunct Professor of Computer Science
Long before he became a professional programmer, Steve Rabin’s first forays into the world of computers involved more mystery than mastery. As a middle school student, Rabin learned how to code simple programs in BASIC on his Commodore 64. He also collected early game development books and magazines, which in their back pages contained huge blocks of type-in code for making games.
“You hand entered every line of numbers, and after pages and pages of this you were pretty much putting in the direct assembly machine code. And then you could play the game,” Rabin says. “You didn’t understand what was happening. This is in place of now going on the Internet and hitting download.”
Despite his early interest in computers, Rabin humorously recalls a high school occupational field trip to Boeing that nearly scared him away from the field altogether.
“I spent some time with a guy who ran a windowless room of very high-end computers, and it was so hot in there. It was over 80 degrees, and he seemed to have a very boring job — almost like he was babysitting computers,” Rabin says. “I spent an hour with a programmer, and he looked like the loneliest man on earth.”
With game AI, it’s this mix of psychology, game design, philosophy, and computer science.”
In retrospect, he says, the trip did a poor job of conveying the more fascinating aspects of computer science — something that became much more evident during his studies at the University of Washington, where he earned both his undergraduate and master’s degrees in computer engineering. While there, Rabin’s coursework had him building original software and hardware applications, including an animatronic LEGO robot that used servo motors and ultrasonic sensors to track the movement of people in a room — mimicking a kind of uncanny intelligence.
Rabin’s first post-college job was at a startup Seattle game studio called Surreal Software. His second was at WizBang Software Productions, where he entered into his first role as an artificial intelligence programmer on several sports games. Rabin worked again on AI programming for the first Dungeon Siege game at Gas Powered Games before joining Nintendo of America in 1999, where he continues to work as a principal software engineer.
As instructor for DigiPen’s AI programming classes, Rabin shares from more than 18 years of industry knowledge, grounding his lectures in real-world examples of video games, anecdotes, and — in some cases — audience participation. To demonstrate the topic of emergent behavior, Rabin has students practice variations of the stadium crowd wave, showing how complex group behavior can result from individuals following a simple set of rules. For a three-hour lecture, Rabin says it’s important to keep things entertaining.
“With game AI, it’s this mix of psychology, game design, philosophy, and computer science,” Rabin says. “Because it involves so many interrelated aspects, it’s a really fun and rewarding subject to teach.”
Chris Peters
Lecturer in Game Design and Production
Chris Peters was already a good student in high school, but when the opportunity came to take a computer programming course, he adapted to the subject like a fish in water.
Not only did it offer a similar type of creative fulfillment that he used to get by building with Legos, it did so in a way that was compatible to his preferred method of learning: problem solving.
“It was just exactly what I wanted,” Peters says. “So then you’ve got to choose a career at some point, and I was like, ‘This programming thing seems interesting to me, compared to everything else.’”
The CS departments in most schools, they’re crammed in the back. … It almost creates the culture of a bunch of closeted nerds.”
In searching for colleges, however, Peters came to discover that not all computer science programs are created equal.
“The CS departments in most schools, they’re crammed in the back,” Peters says. “It almost creates the culture of a bunch of closeted nerds.”
Having heard about DigiPen Institute of Technology, Peters checked out the Redmond school and discovered a much different type of academic environment.
“Here [at DigiPen], yeah we’re a bunch of nerds, but it’s like we have workstations everywhere and it’s important,” Peters says. “Making great games is valued, and being a good programmer is valued.”
Peters enrolled in the BS in Computer Science in Real-Time Interactive Simulation program and jumped enthusiastically into each semesters’ projects. When the assignment came to start building an original graphics engine for his sophomore game project, Peters encountered one particular problem that had yet to be solved even at a curriculum level.
Up to that point, Peters says, DigiPen students had been building their engines on what he calls the “monolithic object model,” a traditional programming architecture that quite often resulted in brittle, problematic games. Unsatisfied with the status quo, Peters made it his personal mission to come up with a better solution.
He turned his attention to implementing what was likely the first DigiPen student game using component-based engine architecture. Peters used the new approach to full effect on his senior game project Base Invaders, which became a 2007 IGF Student Showcase winner.
Game programming is really interesting programming — the challenges that are involved, the way that you solve it, the applied math, the applied logic and reasoning. And then you potentially get to make things explode.”
After graduating, Peters went on to work at Microsoft, where in addition to developing first-party games for the Xbox 360 he worked on the research and development team for a camera-based, motion controller that would later become the Kinect.
Today, in addition to developing DigiPen’s Zero Engine for games, Peters co-instructs the school’s yearly game project courses, giving technical lectures on the implementation of game engine architecture (including component-based design), game physics, lighting, and more.
“Game programming is really interesting programming — the challenges that are involved, the way that you solve it, the applied math, the applied logic and reasoning. And then you potentially get to make things explode,” Peters says. “Because you have to build this really complicated piece of software, it gives you this practical, applied computer science knowledge that you don’t get at a lot of other places.”