📜 ⬆️ ⬇️

How Software Engineering differs from Computer Science

Hello!
The program I am currently studying is called MSIT-SE (Master of Science in Information Technology - Software Engineering) *. The basic idea of ​​the whole program is expressed in the principle “Learn by doing” (“Learn, do”).
I want to tell you what is the difference between SE and CS and how the program that I pass differs from everything else. Without a doubt, we are discussing this issue, but below is my personal opinion.
image
You know, this is some kind of weak program for Computer Science.
Before I arrived at the SE program, I read exactly this statement in all the comments.

A person follows the [this] link and reads:
• 17-651 Models of Software Systems
• 17-652 Methods: Deciding What to Design
• 17-653 Managing Software Development
• 17-602 Introduction to Personal Software Process
• 17-654 Analysis of Software Artifacts
• 17-655 Architectures for Software Systems
• 17-677 MSIT Project I
• 17-678 MSIT Project II
And the conversations begin: hmm, sorry, but where is at least one classic course on algorithms and data structures? Well, or at least one good course on OOP, or C ++, or the basics of distributed systems, or maybe databases, where is all this?
Well, what can I say, all this is not. More precisely, this is not among the above basic courses, but every semester you can take 1-2 electives, for example, I took Distributed systems and Data structures for application programmers. More about electives [read here] and [here] . The reason for this attitude is initially incorrect advertising of this program in Russia, as well as a vague definition of what software engineering is (it is very different for everyone).

Above is a short clipping from the official site. You can see that there are intersections, but the focus is fundamentally different. There are some things that are not taught in Computer Science programs. I do not know how else to explain the difference between SE and CS, except to compare the creation of an IT system with something from real life. For example, with the construction of the bridge. Here is a list of things that are not taught in CS:
• how to choose a bridge shape
• how to decide exactly where this bridge should stand
• How to coordinate this with financial or legal issues.
• how exactly the bridge should look like from the customer’s point of view
• how to coordinate 100,500 workers who will build this bridge
• how to respond to the management (sponsors, investors, etc), at what stage of construction is the bridge now and when will it be completed
• how BEFORE the bridge is built, assess its qualities: loading capacity, performance
• how to document the constructed bridge so that it can be repaired in the future
• what actions should be performed, by whom and when, so that the bridge does not fall after 2 years
... well, in general, the idea is clear, you can continue for a long time. On the one hand, this is management (17-653 Managing Software Development). You cannot get away from him, because you have to communicate with people, and this is almost the most difficult thing, but also causes the failure of most projects. After that - the ability to collect requirements (17-652 Methods: Deciding What to Design). Once the requirements are collected, the bridge should be drawn on paper (17-655 Architectures for Software Systems), if possible using formal methods for calculating the bridge (17-651 Models of Software Systems). Throughout the process, it is advisable to check the quality of the requirements collected, the construction process, the final result, etc. (17-654 Analysis of Software Artifacts)
I believe that all the above courses should be preceded by a powerful undergraduate degree in Computer Science, and then 3-5 years of work in the industry. Only after that it makes sense to talk about management or architecture.

And here we smoothly go to the cherry on the cake. The workshop, which is also the MSIT Project, is what sticks together the whole program together. I already wrote a brief overview of our project [here] . The next post will talk about the workshop in more detail.

According to the materials of the magistracy student of the first flow (2013/2014) of the joint program of Innopolis University
')
* "Master of Information Technology - Software Development Management" - Master Program at Innopolis University, developed on the basis of the MSIT-SE program (Master of Science in Information Technology) of one of the best IT universities in the world Carnegie Mellon University ( No. 3, QS World University Rankings by Subject 2014 - Computer Science & Information Systems ), taking into account the best practices of MIPT , ITMO , National University of Singapore and other educational partners. Innopolis University plans to recruit a group of masters at its base for study in 2014/15.

Source: https://habr.com/ru/post/229085/


All Articles