What exactly is a Computer Science degree?

This topic is 3744 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

Recommended Posts

In less than six months I'll be applying for college in search for a good school. My plan is to graduate as a programmer and after landing a job in a game company, eventually work my way up to becoming a Game Designer. All that aside, I have a few questions on a degree I've seen mentioned on this site and how it's a good course to take when pursuing the game industry... -what does Computer Science focus on and teach you? Does it broaden into many different computer related subjects or something specific? -As a future programmer, how beneficial is it to me? -And, what kind of jobs could I land with it as my major? Thanks!

Share on other sites
Quote:
 As a future programmer, how beneficial is it to me?

It's far easier to switch to other pursuits should you have a university degree than if you had focused on a purely game development oriented post-secondary.

Share on other sites
Quote:
Original post by Gallivan
Quote:
 As a future programmer, how beneficial is it to me?

It's far easier to switch to other pursuits should you have a university degree than if you had focused on a purely game development oriented post-secondary.

Ah ok.

I've seen the requirements companies have for programmers and one of them is a degree in Computer Science.

Share on other sites
Computer Science is the degree that most programmers get. There are other related degrees, and some programmers have degrees in unrelated subjects.

Just to be clear... game programming and game design are completely different fields, but Computer Science is still a good degree for a game designer to have.

Share on other sites
to add a question, what are the exact topics that a CS degree cover?

i know that universities differ, but there are some common topics, right?

Computer Architecture, compiler theory, operating system theory, data structures and algorithms, are there any other topics that are covered that i'm unaware of?

the reason i'm asking is that i'm starting university next fall and in the mean time i'd like to familiarize mysefl with the topics, both to improve myself now rather than start learning in a year, and so i'll go in with a basic understanding of the topics

thanks

Share on other sites
http://www.cs.ualberta.ca/courses/

Share on other sites
Quote:
 Original post by godsenddeathto add a question, what are the exact topics that a CS degree cover?i know that universities differ, but there are some common topics, right?

Maths, a lot of maths. And some physics.

Don't know how it looks in the US, but in EU you'll get some unrelated things like basic economy classes.

CS Degree takes you through majority of main Computer Science tasks, from simple devices, through OS, to artificial inteligence and graphics. At some point students usually choose their more narrow specialisation, depends on particular university though.

Share on other sites
Ok, I can't in good conscience keep quiet on this post. As a professional game programmer, and a computer scientist, please allow me to shine some light on this topic.

First, dont "apply for colleges in search of a good school." Find a good school, then put in an application. Generally you only get into a small handful of schools if any (this is based on your standardized test scores and GPA), so pick the ones you think provide you the best options based on course-work, and put in an application at all of them. Then you've got some choices.

Second, it's completely idiotic to spend 4+ years in school so you can graduate with a B.Sc. in Computer Science, only so you'll know how to program enough to get a job at a game company, only so you can turn around and be a game designer. It was noted earlier, but I'll re-iterate...

Game Programmers are NOT Game Designers. In the industry, these are entirely separate fields. To be a game programmer you generally need a background in Computer Science, though some companies will hire people who've graduated from a game programming trade school such as DigiPen.

However, as a programmer, your job is to implement the game systems, tools, and engines which are used to bring the design and artwork of the game to life. You have little or no say in what the artwork or style of the game is, and you have even less say in the story, game balance, game mechanics, or overall goals of the game. These are things reserved for artists and designers.

As you can see from that alone, spending 4 years training to be a programmer when your real goal is design is a waste of time and money, because as a programmer you'll be doing very little design.

Additionally, the average salary for game programmers of every level is around $80,000 a year, with most game programmers making somewhere between$55,000 and $75,000 a year. In contrast, the average income of game designers of every level is$61,538, with most making between $35,000 and$55,000.

So...in spite of the fact that it's completely idiotic to spend 4 years in college to learn to be a programmer, when what you really want to do is design, programmers are in higher demand than designers and make more money anyways.

With the above aside, let me answer your questions more specifically. Computer Science is the study and practice of solving problems with computers. Whether the problem is eCommerce systems, NASA Flight Management Software, DNA Decryption Systems, Vehicle Navigation Systems, or some other problem. In the end, the ability to conjure up a solution to a complicated problem requiring computer software, generally falls in the domain of Computer Science.

This is why most game companies prefer Computer Scientists for their Programmers. Because like it or not, game development is just one of millions of problem areas which are well suited for people with a background in problem solving using computers. Now, to accomplish the above discipline and problem solving skills, most computer science majors spend 4+ years of school learning some of the following:

Programming Language(s)
Data Structures
Operating Systems
Language and Translators
Analysis of Algorithms
Artificial Intelligence
Databases and/or File Systems
Networking and Network Programming
Graphics Programming and Theory
Linear Algebra, Trig, Geometry
Calculus, Differential Equations
Numerical Methods of Computation
Discrete Mathematics
Physics
Computer Architecture and Design
Statistics
Biology
... etc.

As you can see from the above list, programming is, in general, a very small part of Computer Science. The ability to program a computer to do what you tell it to is of paramount importance to someone who's job is to solve problems with computers, however, little of your time is actually spent learning to program, and much more is/should be spent on learning how to use the tool of programming effectively, as it relates to computers and other subject areas.

If you plan to be a programmer some day, a computer science degree is your best bet at guaranteeing you've got the skills necessary to succeed as a programmer. However, it's not the only path, and if you just want to know enough about programming to be able to hold an intelligent conversation, there are other easier, less committal, and far cheaper routes you can take.

If your eventual goals it to become a game designer, look at the company requirements to become a designer, not a programmer. If your eventual goal is to become a game programmer, well then, evaluate the requirements to become a programmer. But do not make the mistake of pursuing a degree in computer science because you feel it'll make you more qualified as a game designer. It wont. You will still need to attain the same qualifications as every other game designer, if you eventually want to make the transition into design. Then you're left with a Computer Science background you may or may not ever use again.

Anyways, hope this is informative. Good luck!

Share on other sites
wow. I can't thank you enough for taking the time to set everything straight for me :)

Quote:
 Game Programmers are NOT Game Designers. In the industry, these are entirely separate fields. As you can see from that alone, spending 4 years training to be a programmer when your real goal is design is a waste of time and money, because as a programmer you'll be doing very little design.

Yes, I'm well aware. And design is really what I want to pursue above programming. However, through my reading I've been told that good game designers know a good deal about programming to communicate effectively to the programmers through the game design document. With an interest in both programming and design, I guess I was given the impression that it wouldn't be too much of a leap from one to the other. Thanks for giving me a dose of reality check and saving years of my life :)

Quote:
 With the above aside, let me answer your questions more specifically. Computer Science is the study and practice of solving problems with computers. Whether the problem is eCommerce systems, NASA Flight Management Software, DNA Decryption Systems, Vehicle Navigation Systems, or some other problem. In the end, the ability to conjure up a solution to a complicated problem requiring computer software, generally falls in the domain of Computer Science.

Share on other sites
The kind of "intelligent conversation" that a designer typically has with a programmer isn't as a member of a programming team, but is instead often something like "Here is what we can implement, and I am putting this idea forward because my background in computer science tells me that this is possible", or an understanding when the programming team says something along the lines of "We can't do that, and here's why". An educated designer won't just stare blankly at the programmer while this conversation is taking place. An educated designer with a background in computer science likely won't even put forward the ideas in the first place that are ridiculous and unimplementable, because the educated designer understands the restrictions and capacity of the medium that the programmers have to work with, thus saving countless hours of reshaping ideas.

Just like how an educated designer will be able to have an understanding of what is involved in creating the artwork for a game, so that reasonable goals and expectations can be made.

A game 'designer' doesn't have to know how to create an adaptive neural network or how to set up the low-level server code, because the designer won't be doing it.

Now. As a 'future programmer', a computer science degree is very valuable. Computer science degrees focus on technique and problem solving skills, and programming is the medium through which these problems are solved, but does not emphasize the programming or individual languages. You can think of skill in programming like a sword to a soldier. A well honed blade [well honed programming skill] is valuable, but the effectiveness of the blade is decided by the hand that holds it, and the soldiers skill. The study of computer science teaches programmers what a life of training teaches a soldier. The soldier learns that sword fighting requires finesse, a delicate touch, grace and subtlety over power, and that is what makes him a better fighter than a child hacking away at a bush with the same sword. Similarly, such is the difference between somebody who can churn out code, and somebody who has studied computer science [whether through a school, or independently. Though ask any computer scientist, the moment they stop their studies is the moment they fall by the wayside.]

By the way, well said JWalsh.

Share on other sites
Quote:
 Original post by JWalshSecond, it's completely idiotic to spend 4+ years in school so you can graduate with a B.Sc. in Computer Science, only so you'll know how to program enough to get a job at a game company, only so you can turn around and be a game designer....So...in spite of the fact that it's completely idiotic to spend 4 years in college to learn to be a programmer, when what you really want to do is design.

I disagree. There is nothing wrong with getting a degree in Computer Science and then getting a job as a game designer. So what if the programmers get paid more than the designers. That's not the point.

There are no game design degrees (at least not from any reputable schools), so what degree should someone who wants to become a game designer pursue? English? Art History? Business? Hmm, Business is actually not a bad choice in the long run. Now, I think everyone will agree that if you don't like programming or don't have the aptitude, then Computer Science would be a bad choice regardless of you career goals. I think that applies to any degree you are considering.

Share on other sites
Quote:
 There are no game design degrees (at least not from any reputable schools), so what degree should someone who wants to become a game designer pursue? English? Art History? Business? Hmm, Business is actually not a bad choice in the long run.

Yes. Precisely. In general, game design can be broken up into roughly 3 areas (in no particular order) - World Building, Designing, and Writing.

World Building generally involves working with in-house or commercially available tools to develop a game's landscape, items, NPC's, scripts, or other game entities as necessary. Often times the creation of maps in this area is about understanding intelligent tactics, etc...The exact requirements of this area of emphasis depends on the genre of a game, but ultimately amounts to understanding game balance and playability.

A good background for a World Builder is experience with common world building tools, 3rd party modeling packages, and scripting languages such as Lua or Python. And while you might gain experience with Lua or Python in a Computer Science Program, I wouldn't advise a designer to take a degree in CS to learn Python or Lua any more than I'd encourage a designer to take a B.A. in Computer Graphics Design or Illustration so they can learn how to use Maya or Photoshop.

The second area I mentioned is "Designing". This involves coming up with a game's mechanics, and generally requires an understanding of what is "fun" and "interesting" in a game. Although what is "fun" or interesting" is highly subjective, people with backgrounds in Economics, History, Psychology, Philosophy, or Literature tend to have backgrounds which inherently provide good pools to draw from. Economics would be great for an RPG or RTS designer, History would be good for RPG designer, Psychology would be great for all, philosophy as well. And literature, well, some of the best designers I've known had a uncanny ability to reference key elements of literature, which might be extrapolated and used in interactive storytelling.

The final element I described is Writing. These are the story tellers, the real creative minds behind games. And as with above, backgrounds in History or Literature provide the greatest pool from which to draw from.

So yes...if you're looking for a degree which might help you be better at your job as a designer, there are certainly more qualified degrees besides Computer Science.

Just my opinion, mind you. Everyone views things differently. For my own company, however, I look for history and literature majors for positions in the design department.

Cheers!

Share on other sites
Let's not forget that communication with other team members kinda tops all the things mentioned there. It doesn't matter how intricate or elegant your designs are if you can't explain them to the people who will actually implement them for you. This is one area in which computer science can help - you learn the language of a computer scientist and can thus communicate well with the programmers - but a full degree in it is excessive, and you still need to communicate with other groups like artists and sound designers too.

So, I'd second the suggestion of Psychology; it helps you understand both players and your fellow team members. Things like history, economics, literature, philosophy etc are all great as well, though they're more for the background info than anything else. A major in psychology with a minor in something like history would produce a formidable foundation; learn some programming, art, level editing tools, etc, in your spare time.

Share on other sites
Having gone though a four year program in Computer Engineering, I agree with JWalsh. The skills that are developed in CS or Engineering are not particularly conducive to designing computer games.

Now to be completely clear, by design I mean nothing deeper than than what the player would see when they play the game, a design that can span any language that a developer might implement the game in. In engineering we have requirement developers. Requirement developers design what the software will do when implemented without going into the details of how it will be implemented (such as what language or as low as use of array vs linked list, this is left to implementation).

Nearly all requirements developers in engineering come out of 4 year degrees in CS, CE or even EE or ME. Most engineers who are dropped straight into requirements after college struggle greatly as our communications skills and understanding of the difference between design and implementation.

Now my experience in the computer game field is as an amateur but making some assumptions from my experience in engineering I would say that a 4 year degree would likely get you into the field but leave you with more to learn once you enter the field. Depending on your ability to get a job you may want to look at a 4 year degree with a lot of electives in the areas JWalsh suggested until you can find a company willing to hire you. If hiring in the computer gaming field is the same as engineering, you will find that potential employers (at least in larger companies) will hire based on your education and, once hired, promote based on your actual skills.

One advantage of the 4 year degree is you can find a college that will teach you good communication skills as superpig noted. This can be very hit or miss, my college was acceptable at this but, since I graduated, they merged the engineering and CS department and are doing many cross discipline and even cross class projects (mechanical engineering 101 is working with Computer Engineer 101 and Computer Science 101 to produce a common project, ok, not really these classes but you get the idea). This could help greatly in learning to communicate your design to the people who will implement it.

Lastly, and IMHO most important, get an internship. I don't care what your major is or if you are even going to get a degree of any kind, an internship will teach you far more than any school ever will. During my college career we had to have a full year (40 hours a week) of internship time. This was a major benefit for me during senior project. Plus my internship turned straight into a full time job.

Anything I say needs to be taken with a grain of salt as I am a simple peon, not a hiring person and I'm only stating what I think helped me get a job (in a slightly different field) and don't know what really got me the job.

Share on other sites
I also don't agree that a CS degree is very important to be a designer. And in fact with the dozen or so producer/designers I've worked with so far in my career, only one of them was trained in programming at all.

When describing a feature, something like this:

"The main character has a grappling hook for an arm. He can aim and shoot this grappling hook at certain 'grappling' points and swing across gaps, or climb walls. The physics when swinging should be realistic."

Is more than enough information to get any programmer into the feature and ready to start asking questions. No programming knowledge is required for that. I've never seen a designer ever write a single line of code. If you're not writing code or working with code in some way then you probably don't need a CS degree.

Lastly, if a designer ever tried to tell me how to program something, I'd probably punch them in the face.

Share on other sites

This topic is 3744 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

Create an account

Register a new account

• Forum Statistics

• Total Topics
628740
• Total Posts
2984467

• 12
• 25
• 11
• 10
• 16