The way I see it, is that Software Engineering is part of Computer Science. It's the part that is more focused on the practice of applying computer science. Software Development is an application of Software Engineering. And programming is a task you do in Software Development, just like problem analysis and debugging.
I see it exactly opposite to this. Computer Science is a part of Software Engineering, not the other way around.
Computer Science, despite the name, is more a field of mathematics than of science. It is fundamental to how computer programs are designed and built.
Software Engineering applies computer science to real world applications, but also involves processes for design, implementation, management, deployment, and maintenance.
The more that Software Engineers know about computer science, the better they will be at design and implementation. However, Computer Scientists can be, and often are, ignorant of many elements of software engineering.
Umm, no, software engineering is a branch of computer science. Behind all those applied solution there is some math, in compiler which generates the Assembly code, in browser engine which draws layout on the screen, in various libraries which we use to write software, in algorithms implemented in the standard libraries of programming languages etc. Computer scientist doesn't have to know many details about software engineering, but good software engineer must know certain topics in computer science to write stable, secure and well performing software.
No. I agree with most of what you have to say above, except that software engineering a branch of computer science. It is not.
Software engineering did start as an area of computer science in the 1960s. During the 70s to 80s the definition evolved:
... the scope of its challenge became clearer. In addition to its computer science foundations, software engineering also involves human processes that, by their nature, are harder to formalize than are the logical abstractions of computer science.
As you say, computer science and math are behind all of the engineering. And just like other disciplines of engineering, the scientists don't need to know much about engineering, but engineers need to understand enough of the science to apply it. I definitely agree with you on that.
My name is Matteo and I'm a cloud solution architect and tech enthusiast. In my spare time, I work on open source software as much as I can. I simply enjoy writing software that is actually useful.
Funny enough, I see the two POVs at stake (CS is part of SE or viceversa) and I think I personally stand outside of this diagram. To me, both are separate parts of what in Italy we call "Informatica", or "computer technology", the broather ensemble of software and data processing.
CS is the abstract, mathematical, theoretical part and SE is the concrete, practical part. They complement each other and often build on each other's findings.
I think it's interesting that I seem to struggle to find an equivalent word in English to describe this broader field.
My own POV developed from my education. As an engineering student we learned a lot of science, but this was as a tool for engineering. Scientific research (i.e. the observation/hypothesis/testing cycle) was what scientists did. But if that was the case, then what did engineering researchers do? Well... sometimes they research practical techniques for applying science, but then that is science too. And sometimes engineers do purely theoretical work.
Then I went back to university and studied science. That's when I learned that many scientists research practical applications that I would have thought was more in the domain of engineering.
So the line is extremely blurry.
Despite there being no clear division, in general I still think that science is more about understanding theoretical underpinnings, while engineering is more focused on the application of existing science to the real world. But each does reach into the domain of the other. This applies as much to electrical engineering/physics, chemical engineering/chemistry, materials engineering/materials science, etc, as it does to software engineering/computer science.
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
The way I see it, is that Software Engineering is part of Computer Science. It's the part that is more focused on the practice of applying computer science. Software Development is an application of Software Engineering. And programming is a task you do in Software Development, just like problem analysis and debugging.
I see it exactly opposite to this. Computer Science is a part of Software Engineering, not the other way around.
Computer Science, despite the name, is more a field of mathematics than of science. It is fundamental to how computer programs are designed and built.
Software Engineering applies computer science to real world applications, but also involves processes for design, implementation, management, deployment, and maintenance.
The more that Software Engineers know about computer science, the better they will be at design and implementation. However, Computer Scientists can be, and often are, ignorant of many elements of software engineering.
Umm, no, software engineering is a branch of computer science. Behind all those applied solution there is some math, in compiler which generates the Assembly code, in browser engine which draws layout on the screen, in various libraries which we use to write software, in algorithms implemented in the standard libraries of programming languages etc. Computer scientist doesn't have to know many details about software engineering, but good software engineer must know certain topics in computer science to write stable, secure and well performing software.
No. I agree with most of what you have to say above, except that software engineering a branch of computer science. It is not.
Software engineering did start as an area of computer science in the 1960s. During the 70s to 80s the definition evolved:
(from The Overview Report by a joint task force by the ACM/AIS/IEEE-CS)
As you say, computer science and math are behind all of the engineering. And just like other disciplines of engineering, the scientists don't need to know much about engineering, but engineers need to understand enough of the science to apply it. I definitely agree with you on that.
Funny enough, I see the two POVs at stake (CS is part of SE or viceversa) and I think I personally stand outside of this diagram. To me, both are separate parts of what in Italy we call "Informatica", or "computer technology", the broather ensemble of software and data processing.
CS is the abstract, mathematical, theoretical part and SE is the concrete, practical part. They complement each other and often build on each other's findings.
I think it's interesting that I seem to struggle to find an equivalent word in English to describe this broader field.
My own POV developed from my education. As an engineering student we learned a lot of science, but this was as a tool for engineering. Scientific research (i.e. the observation/hypothesis/testing cycle) was what scientists did. But if that was the case, then what did engineering researchers do? Well... sometimes they research practical techniques for applying science, but then that is science too. And sometimes engineers do purely theoretical work.
Then I went back to university and studied science. That's when I learned that many scientists research practical applications that I would have thought was more in the domain of engineering.
So the line is extremely blurry.
Despite there being no clear division, in general I still think that science is more about understanding theoretical underpinnings, while engineering is more focused on the application of existing science to the real world. But each does reach into the domain of the other. This applies as much to electrical engineering/physics, chemical engineering/chemistry, materials engineering/materials science, etc, as it does to software engineering/computer science.