Is computer science

<p>Is computer science considered an engineering major?</p>

<p>No it isn't.</p>

<p>oh... what major would software engineering be then?</p>

<p>I'd say it's a science major.</p>

<p>i believe most schools put their cs dept under their engr school</p>

<p>It depends who you ask.</p>

<p>CS = software engineering</p>

<p>I don't think it can be considered engineering in a strict sense, but numerous universities house the department within their engineering schools. Rest assured, however, that as long as you are in a program at a respectable university, it's no less of a professional preparation than any other engineering disciplines.</p>

<p>Many but not all universities put CS in their engineering college and it thus becomes an engineering major and the result is that CS student has to take a lot of the same math, science and engineering courses that other engineering students take, particularly in the first 2 to 2 1/2 years (and that includes chemistry, physics and several engieering courses that are not computer science). At others CS is often in the arts & sciences college and often connected to the math department and the students don't follow those engineering requirements.</p>

<p>My school's CS program is under math and software engineering is under engineering.</p>

<p>It depends on the school. UT @ Austin has it under their College of Natural Sciences, while schools like Columbia have it under their Engineering program. Then there are schools like Carnegie Mellon who have a CS college all by itself!</p>

<p>Whether CS is engineering or not is a matter of semantics. Some CS is engineering, some isn't.</p>

<p>As far as theoretical CS goes, it's more similar to math than to engineering IMO. I would say SE is more similar to architecture than it is to engineering. But then is architecture engineering? Some is, some isn't.</p>

<p>CS will prepare you for jobs in academia and industry where you work with computers. By "computer" I don't necessarily mean PCs, mainframes, laptops, etc... it could be anything. You could work with scientists, engineers, economists, etc. CS doesn't train you for an industry, but rather gives you a set of skills that can usually be used across various disciplines. I know lots of people say that about lots of majors, but I believe it's particularly true of CS majors.</p>

<p>"CS = software engineering"
The jury's still out on that one. I don't believe that's true at all.</p>

<p>Depends on where you go in the field.
If you go into software engineering, it is engineering.
Theoretical CS is closer to math.
There are some other things mixed in there as well.</p>

<p>Also Columbia has it under both schools.</p>

<p>From a legal standpoint, the most common standard for engineering degree programs is accreditation by ABET/EAC. If you have an ABET/EAC accredited degree, then no one will question that it is a "real" engineering degree. This includes most traditional engineering disciplines: civil, mechanical, electrical, chemical, etc.</p>

<p>In contrast, computer science programs are usually accredited separately, by ABET/CAC. The two types of degrees are not considered equivalent by schools or by state engineering boards, and probably not by most employers either. </p>

<p>On the other hand, some schools do offer ABET/EAC accredited programs in "computer engineering" (as opposed to "computer science") or "software engineering". Degrees from such programs generally would be accepted as "real" engineering degrees, since they have the ABET/EAC accreditation, instead of ABET/CAC.</p>

<p>Again, that's semantics. Is engineering only engineering because we accredit it as such? If so, then non-accredited majors are trivially not engineering. I think the real issue here is whether what CS majors do should be considered engineering. And I think the answer depends on exactly what kind of CS one ends up doing.</p>

<p>
[quote]
Again, that's semantics.

[/quote]
It's law, not merely semantics. Every US state has an agency that oversees engineering practice, that defines who can perform certain engineering functions, and that requires (or at least prefers) ABET/EAC degrees. </p>

<p>Now, it's true that the design and manufacture of software is largely or entirely exempt from such state oversight (unlike, say, the design and construction of dams or bridges). In the absence of regulation, then the individual (or his employer) can decide whether or not he is an "engineer", or is doing "engineering". But isn't that also a trivial -- and not very helpful -- way to look at it ? </p>

<p>
[quote]
I think the real issue here is whether what CS majors do should be considered engineering. And I think the answer depends on exactly what kind of CS one ends up doing.

[/quote]
But then the answer also depends on the exact definition of CS vs. engineering. And there is no universally accepted definition (if there was, there would be no need for this thread in the first place). So in this case, the answer will be fuzzy and subjective. Different people will provide different answers.</p>

<p>Granted, an answer based on legalities and accreditation is not perfect either. But it does have the advantage of being definite and precise -- a point that "real" engineers will appreciate.</p>

<p>So what does a computer scientist do? Write codes for programs? Or would that profession be called software engineering instead? Before we can decide whether or not CS is engineering, we have to agree on what CS is exactly.</p>

<p>If we're going to bring ABET in, their definition of engineering is "The creative application of scientific principles to design or develop structures, machines, apparatus, or manufacturing processes, or works utilizing them singly or in combination; or to construct or operate the same with full cognizance of their design; or to forecast their behavior under specific operating conditions; all as respects an intended function, economics of operation and safety to life and property."</p>

<p>My job as a software engineer would be covered under this description.</p>

<p>I would say that computer science is a science, and software engineering is engineering which applies computer science, but software engineering training is still usually done within the computer science curriculum (though some programs cover it under a computer engineering curriculum).</p>

<p>
[quote]
So what does a computer scientist do? Write codes for programs? Or would that profession be called software engineering instead? Before we can decide whether or not CS is engineering, we have to agree on what CS is exactly.

[/quote]
</p>

<p>A software engineer, if my job and those of my friends in the field are representative, designs software systems and the data structures that go in them, writes the code for those structures and systems, designs and writes tests for those structures and systems, and runs those tests. This involves the application of concepts from computer science, like algorithm efficiency, AI, or complexity theory.</p>

<p>A computer scientist would, well, do research in computer science. For instance, they'd develop novel algorithms, or theorize about AI, or do innovative mathematical research into complexity theory.</p>

<p>The distinction is hazy, because, as I said, software engineering is generally wrapped into the computer science curriculum rather than being its own major. So to be either a software engineer or a computer scientist, at most schools, you'd major in computer science.</p>

<p>excellent post, jessiehl</p>

<p>If you want to crystallize SE from CS, you can certainly do it and call SE engineering (fully) and CS science (fully). I concur completely.</p>

<p>Corbett:
Law is semantics. It's arbitrarily imposed meaning. Societies like ABET exist to arbitrarily decide what the consensus is; but the decisions are still arbitrary, and not necessarily "correct", if it even makes sense to talk about a correct answer. That's how I sees it, anyway.</p>

<p>ken:
I agree that we must clearly define what we mean by CS if we are to discuss its possible status as engineering. I believe that the field is still so young as to not have divided completely into purely theoretical (science) and purely applied (engineering) yet.</p>