computer science vs. engineering

<p>Do you guys know what the major differences are? </p>

<p>I think I have a general idea about engineering math, using math to apply to real world things. What about computer science? Since CS people mainly work with software and other digital stuff, what is the math like? Is it harder or easier, and is there more or less?</p>

<p>thank you</p>

<p>engineering is more manly.</p>

<p>“Do you guys know what the major differences are?”

  • Well, I’m sure we all have our opinions. We’ve talked about this quite extensively in previous threads, and it might be worth looking into it to see if you can dig any of them up. I’ll try to summarize my thinking very briefly here and if that leads into other questions I’ll be happy to elaborate.</p>

<p>“I think I have a general idea about engineering math, using math to apply to real world things.”

  • I suppose this is essentially true, although some clarifications could be useful in understanding the differences. First off, I am not an engineer, have not studied traditional engineering, etc. I have seen some engineering coursework and tutored students in upper-level engineering courses relying heavily on mathematical methods, however, and as such feel qualified to say the following things: first, that “engineering math” views computation as a means to an end, the end being an understanding of some physical system; second, while “engineering math” is certainly closer to applied math than it is to pure math, it is actually neither, since no kind of mathematics has as its end the use of specific mathematical methods; and last, that “engineering math” uses for the most part the analytical branches of mathematics - calculus, analysis, numerical analysis, differential equations, special functions, etc.</p>

<p>“What about computer science? Since CS people mainly work with software and other digital stuff, what is the math like?”

  • I am a CS major primarily, and as such feel at least somewhat qualified to answer this question. At its heart, the academic subject “Computer science” is a branch - or rather a subset - of mathematics which draws on a variety of pure and applied areas of actual mathematics. “Computer science” has as the end an understanding of computation itself and as the means to understanding it mathematical proof. “Computer science” deals primarily in what is generally called “discrete mathematics”, or “finite mathematics”, or something like that. These areas study sets of objects which are countable: subsets of the integers, finite graphs, things like that.</p>

<p>Well, I have to go, but I might write more later. Neither one is necessarily harder than the other, and it probably varies more from individual to individual than it does in absolute terms. Also, CS degree programs include a lot of extra “stuff” that’s more or less like engineering and less like math, so take that into account.</p>

<p>CS has more “logic” and discrete mathematics, as Auburn said. Though, the math that you will learn is not fully utilized in the workplace after college…</p>

<p>^ Thought that may depend upon where you’re working. Of course, to be fair, engineers don’t utilize <em>all</em> the math and methods they learn either… not every day, anyway.</p>

<p>No one goes to work with Ti89’s around their neck. But understanding probability is key to communication systems. So, you wont be a good signals processor without adequate knowledge of probability and stochastic processes. Similarly, you cant go too far with electromagnetic waves without understanding maxwell’s.</p>

<p>^ Math is important for CS majors in that respect as well, however. If we’re talking about differences, I maintain that the differences are in the kind of mathematics, not necessarily in how useful they are in an industry setting.</p>

<p>comp sci is very different from engineering…I would consider the similarities between them to be minimal. As someone noted even the mathematics involved in the respective fields are very different in their type and application. </p>

<p>You said comp sci ‘work’ with software…forgive my oversimplified view, but I would note that comp sci ‘develop’ software but it’s the engineers or physicist etc…that ‘work’ with or use software; two different things.</p>

<p>Well, have you thought about “computer engineer”? Don’t let the name fool you, it’s not simply one who just build PC’s by buying parts and installing Windows.</p>

<p>A degree in computer engineering (also called EECS in other schools like UC Berkeley) is a combination of computer science and electrical engineering. If analog stuff bore you, they take that out of the EE side and instead put in more courses on computer programming, discrete mathematics and linear algebra. So your EE side is geared towards building digital hardware and your CS side is geared to programming that hardware.</p>

<p>A lot of devices that people take for granted today like phones, MP3 players, laptops need an engineer to build/design the hardware and a programmer to make it operational/run. Being a computer engineer would let you get to do both.</p>

<p>In my school, I take all the math courses an EE would take (calculus, differential equations), plus the discrete math and linear algebra from the CS.</p>

<p>Computer science is not really about writing code. I think that to be a good CS major you have to be write code but you also have to do other stuff, like analyzing software systems, describe why one algorithm is more suitable for a particular task than another and to understand the mathematical foundations (such as when a problem is intractable and an approximation algorithm would be helpful. Theoretical CS, where you deal with proofs and reductions is very interesting but it really isn’t for everybody. I don’t know too much about most fields of engineering but computer science is really expanding in many new wierd and interesting directions. Quantum computing is one of the new big areas as are DNA computing, energy aware computing, and perpetual computing.</p>

<p>

</p>

<p>I think it is essential for CS majors to have some understanding of how logic gates and CMOS works and for CE’s to know about how software runs and how to optimize software with better hardware but the overlap between CE and CS are not that big. Most majors in “EECS” specialize in either EE, ECE, or CS since most EE courses are not relevant to EE or CE and vice versa. Most people are not going to work with both. Computer engineering is more a branch of electrical engineering than a blend of computer science and electrical engineering. This is why I think ECE is a more appropriate name for the dept than EECS.</p>

<p>From an earlier post of mine:</p>

<p>

</p>

<p>From this thread:</p>

<p>

</p>

<p>Yeah you can be super technical about the term “computer science” and such, but a bachelor’s degree in CS is not primarily theoretical. Studying real life computer systems and doing programming takes up a majority of CS coursework. To you, I guess this means that CS majors don’t really study much computer science. Whatever.</p>

<p>The theory too is pretty strongly motivated by real-life applications. It isn’t just a bunch of philosophers hanging out in the agora scratching their beards and dreaming up whatever.</p>

<p>“Yeah you can be super technical about the term “computer science” and such, but a bachelor’s degree in CS is not primarily theoretical.”</p>

<ul>
<li>You have a point, but I would contend that the importance and relevance of theory to a CS major pursuing a degree program in CS depends on both the program and the student, to the extent that you can leave with very little appreciation for theory or with a deep appreciation for theory. This can be a blessing and a curse, I guess, but CS programs are usually flexible like that.</li>
</ul>

<p>Take programming for instance. How theoretical an exercise this is depends on how you approach it. You can sit down and hack out a solution to a problem without really understanding how or why it works (even if you show that it does work, for instance, through TDD) and produce binders full of documentation, or you can thoroughly plan and carefully implement solutions, with proof where appropriate. Programming can be an end in itself or the means to an end of understanding theoretical issues - in many algorithms courses, for instance, some simple programming assignments are given, not to exercise one’s programming ability, but to show students how to empirically test algorithms.</p>

<p>The theory courses in many CS programs are fairly watered down to allow those who should likely be majoring in other things slide. These are the very people who downplay the importance of learning the theory. It has always been my opinion that there should be better options available to these people. Perhaps you know you want to work with computers, but don’t want to do EE for whatever reason. Well, Computer Engineering is a start; it attracts a good number of people who really shouldn’t be majoring in CS because they don’t enjoy math, actual math, proofy math, whatever you want to call it. My institution has a major in SE as well. Majors in things like IT and IS have a stigma attached to them that keeps some people who should be in them away, and that’s a shame - they’re fine majors and more appropriate for most people.</p>

<p>In an ideal world, CS majors would study primarily CS, which is a primarily theoretical field. There are applied areas as well, don’t get me wrong, but these areas are applied in the sense that applied mathematics is applied… it’s still mathematics, and applied areas in CS are still CS.</p>

<p>Another factor affecting CS programs is the job market. Most jobs for CS majors are in producing software, and as such, software development skills tend to be overemphasized in degree programs for CS. I guess that’s a necessary evil, but as time goes on it won’t always be so. Bear in mind that CS is by comparison to other technical and scientific fields quite new, and as such it may take several decades to separate from similar but fundamentally different disciplines… SE, IT, IS, CE.</p>

<p>The academic discipline of CS is - and more than that, should be - exactly what I have described above. It is a very precise and very technical term. Degree programs in CS generally make students learn other things because they are more marketable, and learn the actual parts of CS less rigorously because they are too hard for most people.</p>

<p>Sorry for rambling, a discussion of CS education could merit a thread of its own, but… yeah.</p>

<p>AMT, you need to learn to use the quote tags, haha.</p>

<p>You make a good point with your first block of text. What you get from a degree will depend alot on yourself.</p>

<p>Your entire taxonomy for all of the undergraduate majors is a good one I think, but as you said, it isn’t how it really works.</p>

<p>I guess the reason why I’m picking on this is because when you do your sales pitch for CS in this forum you way overemphasize the theoretical aspects of the degree. You talk about how you think a CS program should be instead of how it actually is.</p>

<p>

</p>

<p>haha you wouldn’t have said this before barium dissed your major in that one thread where you and barium were swinging your theory dicks</p>

<p>“AMT, you need to learn to use the quote tags, haha.”</p>

<p>It’s not so hard to use them, I just find it easier to do this. Call me old fashioned… I prefer the marks to these new fangled tags.</p>

<p>“You talk about how you think a CS program should be instead of how it actually is.”</p>

<p>To be fair, I usually draw a distinction between CS the academic discipline and CS the degree program, and yes, they are two very different animals. The reasons for this have been discussed a lot by me and by others, and I discuss them above. I think it’s healthy to draw a distinction between a subject and the set of courses one takes at school, though, because they will necessarily be different (unless you cheat on definitions, I guess).</p>

<p>"haha you wouldn’t have said this before barium dissed your major in that one thread where you and barium were swinging your theory dicks "</p>

<p>I don’t think I ever claimed that the CS theory courses were the most rigorous courses in the world, especially compared to well-done courses in the math department. They’re usually more rigorous than engineering courses in the sense that students at least think about proofs for most of the results used…</p>

<p>Also, it bears mentioning that the math courses which deal with computing topics aren’t perfect either. I’m taking a few courses this semester which are handled by the math department but which use the language and methods of CS - languages, algorithms, etc. - and the professors are fairly clumsy and informal with these topics. You can’t specialize in everything, I guess, and to be fair, the math majors in these courses may not be familiar with the formality introduced in CS.</p>

<p>I’m sure it varies, too, depending on program, professor, and person.</p>

<p>“when you do your sales pitch for CS in this forum”</p>

<ul>
<li>By the by, 9 times out of 10, I’m only defending CS from baseless accusations regarding employability, difficulty, etc. An 9 times out of 100, I’m responding to somebody who asks something like “What is CS”, “Is CS a good major”, etc. If it makes CS seem attractive to you, maybe that’s because were meant to be a CS major.</li>
</ul>

<p>The newfangled tags make it so much easier to read though!</p>

<p>De gustibus non est disputandum.</p>