In all honesty (said as a Canadian with a Computer Engineering degree -- I should note we take the term engineering a bit more serious here in Canada, we don't allow people with CS degrees for instance to call them selves engineers) I don't see why there has to be software engineering as a separate program and not just a specialization of CMPE. The SWE program in my school was basically CMPE minus all the hard EE cou…
that divide works both ways. for example, most of the cmpe students i know weren't exactly well versed in the innards of a compiler.
Should top CS schools offer Software Engineering as a separate major?
41–48 of 48 posts
Re: Should top CS schools offer Software Engineering as a separate major?
#42I am continually astounded by the things my CS degree prepared me for. The breadth that my CS program gave me (UIUC) is very good: rigorous theory classes, introductory classes to systems, security, compilers and languages, numerical analysis, RDBMS systems, information retrieval, the list could go on forever. I don't have a super-deep understanding of all these fields (who could?) but it's enough to give me quite an…
Re: Should top CS schools offer Software Engineering as a separate major?
#43Having done degrees in both electrical engineering and computer science, it seems to me that EE schools on the whole manage the theory vs. practice a bit better than CS schools do. Just as in CS/SE, EE has a wide range of topics, from the very practical ("how do we organize a team to build this") to the very theoretical (quantum mechanics, nonlinear control systems, signal processing). Yet somehow, no one in the EE i…
It's obviously going to depend on the school, but my experience was also that EE does a better job of balancing theory and practice. There's a better sense of what constitutes foundational theory in EE than CS. Every EE program is going to have basic sciences, circuit theory, E&M, signals, control, etc. Beyond basic data structures and algorithmics, you can find almost anything in a CS curriculum.
On the practical side, CS professors typically have less experience in industry than in EE. The vast majority of professors in the engineering faculty at my university are professional engineers, which requires at least a couple of years of practical engineering work.
One point I will give CS, though - CS students typically get far more design experience than engineers. EE has a lot of emphasis on problem sets and lab exercises, whereas CS students are usually designing their own programs from the first day.
Re: Should top CS schools offer Software Engineering as a separate major?
#44What specifically in software engineering does it require an offshoot a new major? Languages, tools, how to work in a team? You can have just one class that is required for that instead of having an entirely separate major. All those things can become outdated quickly. You can also provide student-run courses or hackathons for generating real projects outside of class.
I might sound callous, but I'm honestly curious what kind of material would be taught in "Software Engineering" major that would separate it from computer science as a major?
Re: Should top CS schools offer Software Engineering as a separate major?
#45Yes, most people who take CS probably mean to take something more like Software Engineering (SWE) (actually they probably mean to take something like Programming, but that's not generally a field of study, maybe I.T. or I.S. is closish to what most people want to take, but the prestige just isn't there) CS and SWE are really quite different disciplines, as much as say Math is from Physics...perhaps a better analogy i…
>CS and SWE are really quite different disciplines, as much as say Math is from Physics...perhaps a better analogy is Physics and Civil Engineering. I really am not sure about this. Software Engineering really is the process or craft of creating software. Computer Science is the theory behind how computers work. A good SE program should really be teaching more topics on top of a good CS program, because a good theory…
Re: Should top CS schools offer Software Engineering as a separate major?
#46Please don't do that! Programming is just not there yet. All attempts to establish best "engineering practices" in programming have so far been resulting in incredibly messy and inefficient technologies. UML, Corba, Object Oriented programming -- just to mention a few. Also, whatever comes from an academic institution, as a rule, doesn't pass the reality check until it get stress-tested by the industry. Professors wh…
Agreed 100%. Algorithms and data structures provide a better guarantee of correctness than any design pattern ever will. But that's not only what SE about. It's also about taking all the various algos, data structures and design patterns in a system, and pulling them together on time, on spec and on budget. SE is a discipline of process, not of theory or algorithmic correctness. But you're right in that most SE 'best…
Unfortunately, no-one has yet worked out how to do that reliably and repeatably, which is why "software engineering" isn't.
Then again, "computer science" isn't either.
If we're going to have a sensible discussion about splitting theoretical/mathematical courses from practical/applied ones, perhaps we should start by completely removing the misleading terms CS and SE from the debate.
Re: Should top CS schools offer Software Engineering as a separate major?
#47Carnegie Mellon University offers a Software Engineering minor as part of their Bachelors in CS undergraduate program. As for the Master's degree, they already have one. I think students have enough freedom to mold their own strengths and passions into the CS program here.
When I was there, there was also the Information and Decision Sciences program. It was a little CS, a little economics, a dash of social science, and a pinch of management. There was a two semester final year course that students had to take. In this course, project teams had to design and implement a software system for a local business or organization. While I had my own concerns about the formal curriculum, I alwa…
Re: Should top CS schools offer Software Engineering as a separate major?
#48Yes, most people who take CS probably mean to take something more like Software Engineering (SWE) (actually they probably mean to take something like Programming, but that's not generally a field of study, maybe I.T. or I.S. is closish to what most people want to take, but the prestige just isn't there) CS and SWE are really quite different disciplines, as much as say Math is from Physics...perhaps a better analogy i…
>CS and SWE are really quite different disciplines, as much as say Math is from Physics...perhaps a better analogy is Physics and Civil Engineering. I really am not sure about this. Software Engineering really is the process or craft of creating software. Computer Science is the theory behind how computers work. A good SE program should really be teaching more topics on top of a good CS program, because a good theory…
Civil engineering is quite different from EE or CE in the same sort of ways. Sure there's some overlap, but they are different disciplines.
I'm afraid that schools that haven't even thought about differentiating CS from SE at this date are really doing themselves a disservice and in my opinion shows how little the faculty understands about the applied arts and crafts of modern computing.
Again, in my opinion, it's shocking to me every time I hear of a school that doesn't differentiate these disciplines. It's like lumping accounting and math into the same major because "it's all numbers anyway".