Forgot your password?
typodupeerror
Education Microsoft Programming

Computer Science vs. Software Engineering 322

Posted by timothy
from the distinction-vs-difference dept.
theodp writes "Microsoft's promotion of Julie Larson-Green to lead all Windows software and hardware engineering in the wake of Steven Sinofsky's resignation is reopening the question of what is the difference between Computer Science and Software Engineering. According to their bios on Microsoft's website, Sinofsky has a master's degree in computer science from the University of Massachusetts Amherst and an undergraduate degree with honors from Cornell University, while Larson-Green has a master's degree in software engineering from Seattle University and a bachelor's degree in business administration from Western Washington University. A comparison of the curricula at Sinofsky's and Larson-Green's alma maters shows there's a huge difference between UMass's MSCS program and Seattle U's MSE program. So, is one program inherently more compatible with Microsoft's new teamwork mantra?"
This discussion has been archived. No new comments can be posted.

Computer Science vs. Software Engineering

Comments Filter:
  • by Anonymous Coward on Saturday November 17, 2012 @04:44PM (#42014287)

    In my opinion CS majors have always been the philosopher kind who like to nit-pick every angle of development. Product development leadership requires someone more practical as an engineer.

  • as if (Score:5, Insightful)

    by iamagloworm (816661) on Saturday November 17, 2012 @04:45PM (#42014289)
    as if the schools these guys went to makes a difference? their skills are learned from experience working in the industry and their value is in using their judgement based on that experience to make the best choices.
  • by betterunixthanunix (980855) on Saturday November 17, 2012 @04:49PM (#42014329)
    Computer science is a branch of mathematics; software engineering is a collection of methods for applying that math in the "real world." Software engineering is not about state machines, compilers, programming languages, parallel algorithms, etc.; it is about how to use write "concrete" implementations of such things in a way that makes sense for real-world computation.
  • Deja Vu? (Score:5, Insightful)

    by Anonymous Coward on Saturday November 17, 2012 @04:52PM (#42014349)
    It feels like we just discussed this a week ago - oh, wait, we did!

    http://ask.slashdot.org/story/12/11/10/2038211/ask-slashdot-developer-or-software-engineer-can-it-influence-your-work [slashdot.org]

    Another gem from timothy, right-supreme glorious editor for life.
  • by Okian Warrior (537106) on Saturday November 17, 2012 @04:54PM (#42014361) Homepage Journal

    An engineer uses his tools and techniques to solve problems.

    A scientist invents new tools and techniques.

    If you're just using your knowledge to build things for people, you're an engineer. Unless you're exploring the limits of knowledge, coming up with and testing new ideas, you're not a scientist. And publishing has nothing to do with it, it's a mindset.

    Knuth is a scientist - by laying out algorithms and describing their merits and deficiencies, he's essentially publishing a box of tools that others can use. Bill Gates is an engineer - he implemented known algorithms and solutions into a unified package (nothing new there).

  • by betterunixthanunix (980855) on Saturday November 17, 2012 @04:55PM (#42014373)

    Computer science, is a ... science

    Only in the old sense of the word "science," i.e. "knowledge," but then software engineering would also be "science." CS is not about gathering data then forming a theory; it is about developing logic systems from a set of basic assumptions (e.g. the semantics of your programming language, or of a theoretical computational system like a Turing Machine or Lambda Calculus). That would be mathematics (which at one time would have been called "science" as well). CS is a particular branch of mathematics: the branch that is concerned with computational methods, which was originally developed as part of an attempt to classify all mathematics in terms of symbolic manipulation (but which ultimately led to a proof that not all mathematics is symbolic manipulation).

  • by iamhassi (659463) on Saturday November 17, 2012 @04:55PM (#42014383) Journal
    Science is "why", engineering is "how". Science studies why things are the way they are, while engineering just accepts the way things are and works with that. That said, would rather have a scientist, since they understand things better.
  • by betterunixthanunix (980855) on Saturday November 17, 2012 @05:01PM (#42014427)
    Eh, most computer scientists are not going to be able to develop a system that meets specifications by a deadline unless they also have software engineering skills. I know expert cryptographers who can barely implement a working software system and who have no idea how to make software for use in real applications. Computer science research projects are usually "write only" software that can only be used by the person that wrote it, because it is written without regard to anything beyond proving a particular point or idea (so-called "grad student code," at least at my institution).

    So really, for a real-world project, you probably a (good) software engineer.
  • by russotto (537200) on Saturday November 17, 2012 @05:04PM (#42014459) Journal

    Software Engineering, in the sense of the Seattle University program, is the attempt to reduce the production of software to a set of reproducible steps that any monkey (code monkey) could accomplish. You know, you start with your requirements, you proceed to a high-level design using object oriented design techniques, then you make a low level design, and finally, almost as an afterthought, you write code. As anyone who has been on a software project which attempts to follow this particular discipline knows, it doesn't work. It does, however, succeed in its secondary goal of turning an interesting job into a horrible grind.

    I suspect working on Windows is already a horrible grind, so it probably won't make much difference.

  • Re:as if (Score:5, Insightful)

    by Dahamma (304068) on Saturday November 17, 2012 @05:15PM (#42014523)

    Yep, these are senior executives with a thousand or more people reporting to them who spend most of their time in meetings. The details of computer science or engineering classes they took in college 30 years ago are pretty much irrelevant to their current jobs.

    And it's especially true in this case, as personal computers were in their infancy when they were in college, anyway. Trying to compare two programs based on what they are *today* makes no sense when they graduated in the 80's.

  • by betterunixthanunix (980855) on Saturday November 17, 2012 @05:52PM (#42014805)
    CS theory is not "nonsense" by any stretch of the imagination, even if you are only interested in doing "real world" work. The point of theory for professional programmers is to think about software in unusual ways; this broadens your ability to solve problems. The trend in programming languages over the past few decades has been towards the use of concepts that are common in theoretical CS; if that trend continues (and I suspect it will), theoretical courses will be more relevant as time goes on.

    Even C++ now has lambda expressions. Introspection was once a theoretical topic (e.g. Turing machines that can read their own description). Type theoretic concepts (type constructors, dependent types, etc.) are probably going to become more mainstream in the near future.
  • by gtall (79522) on Saturday November 17, 2012 @06:00PM (#42014873)

    I see you don't get the point of college education. It is supposed to stretch your mental capabilities so that when confronted with a new situation, you aren't without the mental faculties to understand and master it. Why should CS majors learn calculus? Because mathematical reasoning is important, and many CS people rub shoulders with engineers. You want to talk to them and be useful, learn your calculus...well.

    Higher Education is just that Higher Education. It is not Trade School Skill Boot Camp so you can regurgitate the latest buzzwords MS and the rest of their ilk cram down managers throats.

  • by twasserman (878174) on Saturday November 17, 2012 @06:01PM (#42014887)
    I have always found that the best software engineers are those people who have a solid background in computer science. That knowledge is valuable throughout one's career and enables one to participate effectively in discussions and reviews of architectures, data models, and more even after being promoted to a position that doesn't include writing code. To me, the two areas are complementary.

    Side note: I'm mystified at how someone with a Bachelor's degree in business can earn an MS in Software Engineering. Yes, management skills have an important role in an SE curriculum, but not to the exclusion of the technical skills.

  • by Alomex (148003) on Saturday November 17, 2012 @06:08PM (#42014949) Homepage

    As to N.A. and A.M if you ask most mathematician they will tell you those fields are not really math.

    The Curry-Howard link is neither here nor there. Math is applied routinely in many sciences, and is often inspired by reality (more so in the past that recently) yet this has never been central to what math is.

The number of computer scientists in a room is inversely proportional to the number of bugs in their code.

Working...