|
They're all crap, but you could say that about any undergraduate degree. It's really what you learn outside the class that will be helpful, such as the proficiencies you already mentioned.
CS would be the best between the two. The curriculum likely includes linear algebra and vector mathematics, which as someone mentioned is required. No, make that your entire job, start to finish.
Data structures should be required for anyone who does any programming at all, and OS is I guess useful because it should teach you threading models. Other than that, CS is meh.
|
On February 17 2009 06:33 miseiler wrote: They're all crap, but you could say that about any undergraduate degree. It's really what you learn outside the class that will be helpful, such as the proficiencies you already mentioned.
CS would be the best between the two. The curriculum likely includes linear algebra and vector mathematics, which as someone mentioned is required. No, make that your entire job, start to finish.
Data structures should be required for anyone who does any programming at all, and OS is I guess useful because it should teach you threading models. Other than that, CS is meh. Incidentally, my Computer Engineering curriculum requires Linear Algebra and Vector mathematics, but the Computer Science curriculum at our school does not.
I also learn the basics about OS and threading models in my other courses (Computer Architecture and Design, and I'm required to take an Operating Systems CS course as well).
|
On February 17 2009 06:08 Cobalt wrote: A computer science teacher at the best school in my state told me this: computer science is about the theory behind computing, whereas computer engineering is about implementation of that theory. So programming etc. would fall under computer engineering, whereas making new programming languages, optimization, and innovation would fall under computer science.
That seems to contradict everyone else in this thread though. that teacher is WAY off. CS is about designing programs, CE is more about hardwars and low level software
|
If you excel in physics or math I would get a degree in either those two and a masters in CS.
Corbalt is correct. Designing programs is not CS - that's software engineering but normally the two are taught in the same curriculum. As Cobalt stated, CS is theory (Computer __Science__) - looking at computers/computing from an empirical point of view and Computer __Engineering__ is the implementation.
|
I have no idea who to believe...
|
Computer engineering might actually be useful though when designing really high performance games. Knowing your hardware and knowing how to leverage your particular sytems bus speed, memory size and speed, processor type, etc, could come in handy.
But the large majority would probably be programming completely abstracted away from he hardware which means CS. I think learning embedded hardware would be helpful though and may give you an extra edge above other people in addition to a CS degree.
|
I'm just over half way through a bachelor of science (professional software development) which I guess is 90% computer science. I've already had a programming job for over a year now. It's been an awesome degree and I'm only just over half way done.
|
On February 17 2009 06:37 kawaiideshou wrote:Show nested quote +On February 17 2009 06:33 miseiler wrote: They're all crap, but you could say that about any undergraduate degree. It's really what you learn outside the class that will be helpful, such as the proficiencies you already mentioned.
CS would be the best between the two. The curriculum likely includes linear algebra and vector mathematics, which as someone mentioned is required. No, make that your entire job, start to finish.
Data structures should be required for anyone who does any programming at all, and OS is I guess useful because it should teach you threading models. Other than that, CS is meh. Incidentally, my Computer Engineering curriculum requires Linear Algebra and Vector mathematics, but the Computer Science curriculum at our school does not. I also learn the basics about OS and threading models in my other courses (Computer Architecture and Design, and I'm required to take an Operating Systems CS course as well). That's not entirely true. Linear was required for me. I don't remember having any vector math classes beyond Linear though.
Just some forewarning though, for anyone trying to become a game programmer don't rely on your classes alone to prepare you for that job. You'll go out into the job market and realize you've got practically nothing to really show. You'll need to code on your own, make your own games, pursue internships with every fiber of your being, etc. Really, that stuff outside of school work will be what separates you from the wanna bes and the people that make it. I'm somewhere in between since I figured that out very late in my college career and I'm paying for it now, working way harder to get to where I want to be.
|
Computer Science. Take up lots of math, algorithms (geometric algorithms, ai, procedural, search and data structures), and perhaps formal language, proof and methods.
Hobby lots on for example mod making (advanced SC2 stuff, counter-strike, whatever's mod-able). Make stuff with standard all-round libs like lib-sdl and the like. Learn fast prototyping.
But I think you have to specialize, if you want to work on any bigger project. Companies look for the perfect guy for their graphics engine, or the perfect guy for their scripting work, or the one that can manage a team or yada yada. An all-rounder has to excel at a lot of areas to sell himself. You'll find out what you find most fun. In this vein, it is useful to know some existing gaming 'engines' (quake engine and others that are open sourced).
|
The level of ignorance in this thread is absolutely ridiculous.
Computer Science is the theory of computation and what can be done with it in different situations. Different programs heavily differ in what their curriculum entails. At most schools, you will learn languages and practice applying them to problems, writing code to complete labs. In most programs, you will also learn the basics of computer engineering, including computer architecture and digital logic. Finally, you will probably also take calculus (introductory, then vector), probability and statistics, and physics-- my program requires 10 courses from these 3 categories. I am a computer science major, so if you have any questions you can PM me.
Computer Engineering deals with the software / hardware interface. You learn in detail how a computer is designed, from analog circuits to digital logic, and how low level code (drivers, firmware) is used to make devices run. You will practice implementing hardware/software systems and extensively practice digital logic, such as building a processor from scratch. You will also take a number of physics and other "hard science" courses, as well as a decent amount of math courses.
Software Engineering is the design of software systems. You will learn design patters, development principles and strategies, and extensively practice implementing said techniques with a multitude of languages. The amount of math and theory you will learn will be minimal.
|
Bill307
Canada9103 Posts
You may want Software Engineering (SE), if your institution offers it. It focuses on programming and good programming practices. At my university, it makes you a certified "engineer", which CS does not. However, my university also forces you to take some year-1 business courses and some year-1 science courses, which are optional in CS.
Computer Science may teach you good programming practices (e.g. one such course was mandatory for my CS degree, and others were optional), but its real focus is on the mathematical and theoretical aspects of computers and computation, not on programming. Despite that, CS may be a better option than SE at your institution, depending on what the required courses are. E.g. at my university, I think that the CS requirements are just a subset of the SE requirements, so you could in theory take all of the same courses as an SE student while being in CS. You wouldn't graduate as a certified engineer, but if there are required SE courses that don't interest you (e.g. business and chemistry, in my case), then you can avoid them and take more courses that do interest you (e.g. psychology and physics, in my case).
Computer Engineering focuses on the hardware computers run on, and it's probably the worst option of the three if you want to do programming, but to be honest I don't know much about it.
On February 17 2009 07:31 Try wrote: I have no idea who to believe... Find out what courses are mandatory in each of these programs at the institution(s) you're thinking of attending. If you're not sure what the course titles mean, then post them here and we'll help you understand what you'll be forced to learn. Every college and university will have its own ideas of what CS, SE, and CE are, so this is the best way to find out which major you should enroll in.
|
Bill307
Canada9103 Posts
On February 17 2009 06:08 Cobalt wrote: A computer science teacher at the best school in my state told me this: computer science is about the theory behind computing, whereas computer engineering is about implementation of that theory. So programming etc. would fall under computer engineering, whereas making new programming languages, optimization, and innovation would fall under computer science.
That seems to contradict everyone else in this thread though. In his defense, maybe computer engineering used to be about both programming and hardware, but in modern times its focus is on hardware, and a new field called software engineering focuses on programming.
|
Bill307
Canada9103 Posts
By the way, if you're going into game programming then you will want a solid foundation in linear algebra, because 3D graphics are largely based on linear algebra.
Also, Computer Engineering is almost definitely not the major you want. The hardware knowledge you'll need can be learned in CS and SE. Anything extra you would learn in Computer Engineering will be completely useless.
E.g. do you care about the electromagnetic effects that hinder chip sizes from getting any smaller than they are today? Only if you want to build your own console, otherwise it'll never matter to you.
|
Computer science will make you cry. But it's what you want
|
United States3824 Posts
Software engineering is a master's normally right? Major in Computer Science and just make sure you take some sort of upper division practical application stuff if you don't want to go to grad school.
|
United States3824 Posts
|
im in comp sci and communications. Both are good. Specifically my (Communications Culture & Information Technology) is good. There is courses like interactive story design, and game theory in it, as well as comp sci (1 course)
|
I'm actually majoring in CS at my university and they offer a specialization in video game programming after your second year, which i'm trying to get into now, so i'd advise CS. If any of you are wondering what University it is University of Prince Edward Island.
|
AcrossFiveJulys has the right view on what different curriculums are. If you can handle the abstract stuff that goes on in CS, then you might want to pick that because what you learn there is more broadly applicable. If you want to learn more about software development in concrete form, programming and methods and project management and the whole shebang, go for SE. I don't see CE as any useful means towards game programming, unless you want to focus on low level implementations on specific platforms (which used to be a common job back in the 90's... not nowadays so much).
I think that by far the most important thing is what you do in your spare time. Spend lots of time learning existing open source games, modding, learning (scripting) languages, lua python lisp C++ with a bunch of libs (directx, opengl, boost, libsdl, alegro maybe even), java, webbased stuff. Do some work in sourceforge or so.. Any amount of useful hobby experience you can put on your CV, will be the eye catcher for any employer.
|
|
|
|