Software Engineering ≠ Computer Science
Today I came across a very interesting article (via the SE Radio podcast) at Dr. Dobb’s with the title Software Engineering ≠ Computer Science by Chuck Connell. As this is a discussion topic that happens to appear over and over again, I think it’s a very interesting article that I really recommend to read.
Chuck draws the line between Software Engineering and Computer Science where the human comes into play. Thus, everything that requires human intervention (like requirements engineering, maintainability, etc.) is part of Software Engineering. On the other hand, things like algorithms, machine learning, etc. do not require human intervention and therefore belong to the field of Computer Science.
Based on this observation, Chuck formulates the thesis Software engineering will never be a rigorous discipline with proven results, because it involves human activity.
Thus, he argues that we should not try to make software engineering into an extension of mathematically-based computer science, while simultaneously computer science will never be the whole story since software engineering also includes other facets such as creativity, vision, multi-disciplinary thinking, and humanity.
Links to the article: Software Engineering ≠ Computer Science by Chuck Connell. June 2009.
Additional links: Podcast about the topic at the SE Radio with Chuck Connell