Le génie logiciel et l'informatique devraient-ils être des disciplines distinctes? [fermé]

19

Pendant des décennies, le diplôme accepté pour devenir développeur de logiciels était «Compter Science».
Nous avons déjà posé quelques questions sur la question de savoir si ce diplôme prépare réellement les étudiants à développer des logiciels.

Certaines écoles ont, au cours des 8 dernières années environ, commencé à offrir plusieurs majors distinctes en programmation. Utilisation du programme de mon école:

  • Informatique , qui commence par quelques cours de programmation d'introduction la première année, puis se concentre sur l'informatique théorique, les algorithmes et un peu de choses sur le système d'exploitation. La plupart des cours impliquent plusieurs petits projets et devoirs, réalisés en solo ou en binômes.
  • L'ingénierie logicielle , qui commence avec les mêmes cours de programmation d'introduction, fait quelques cours de théorie, puis passe aux pratiques de développement logiciel (tests, méthodologies de processus, métriques de logiciel, collecte des exigences) et à la conception de logiciels (conception de systèmes distribués, conception de systèmes d'information , conception en temps réel / intégrée, conception de sous-système, etc.)

Différentes écoles le font différemment, donc ce qui précède n'est qu'un exemple du monde réel que je connais. Ce que je demande, c'est: Y a-t-il un besoin de majors distinctes en programmation?

Fishtoaster
la source
1
Pas vraiment. La façon d'apprendre ces compétences n'est pas d'enseigner un cours sur elles, mais de leur donner un travail de projet réel
Casebash
Qu'est-ce qui vous fait penser qu'ils ne le sont pas? RIT offre les deux en degrés.
Andy
Andy: Je sais - je suis allé au RIT et j'ai obtenu un diplôme SE. Je demandais s'ils devaient être séparés et non s'ils le sont actuellement. :)
Fishtoaster

Réponses:

28

Oui, ils devraient l'être.

La relation entre l'informatique et le génie logiciel est la même que la relation entre la physique et le génie mécanique. L'un fournit le contexte théorique tandis que l'autre prend ces théories, ainsi que de bons principes d'ingénierie, et les applique à la conception et à la mise en œuvre de logiciels.

Vous avez besoin des deux pour produire de nouveaux et meilleurs logiciels. Une bonne formation en informatique forme les gens à produire de nouveaux et meilleurs algorithmes, structures de données, langages et paradigmes de programmation, compilateurs et un certain nombre d'autres choses qui peuvent être utilisées pour améliorer les systèmes logiciels. Une bonne formation en génie logiciel, d'autre part, vous apprend à utiliser ces outils et connaissances obtenus grâce à une étude scientifique du calcul, ainsi qu'une connaissance du cycle de vie du développement logiciel et des modèles de processus pour réellement construire le système qu'un client veut et a besoin .

Thomas Owens
la source
2
L'analogie physique / ingénierie est celle que j'utilise beaucoup. Nous n'engageons pas de physiciens pour concevoir et construire des ponts, pourquoi embauchons-nous des informaticiens pour concevoir et construire des programmes?
HerbN
1
Parce que les programmes d'informatique enseignent un peu plus sur la façon de créer des programmes que votre programme de physique typique;)
Wayne Werner
2
@WayneWerner: Non, ils ne le font vraiment, vraiment pas.
DeadMG
3

Il est bien connu qu'un curriculum CS typique n'en prépare pas un pour l'industrie, pas autant qu'il souhaite que vous soyez préparé de toute façon. Alors oui, il y a un besoin pour une majeure en génie logiciel, et les deux devraient être distincts, mais certainement dans la même faculté.

EpsilonVector
la source
1

Il devrait s'agir de disciplines différentes, mais pas au niveau du premier cycle. Je ne vois tout simplement pas comment ils peuvent restreindre tout ce qui est nécessaire pour le génie logiciel au premier cycle. De la même manière que nous ne voyons pas de diplômes de premier cycle en ingénierie des systèmes (où les gens obtiennent une maîtrise après avoir obtenu un diplôme en EE, CE, en génie mécanique ou en CS), il en va de même pour le génie logiciel.

Il s'agit d'une approche multidisciplinaire fortement basée sur l'informatique et / ou les SIG. Les gens deviennent vraiment des ingénieurs en logiciel dans la pratique (et pas seulement dans le titre) après avoir suivi des cours avancés et / ou une expérience de travail dans le domaine, à condition que ce dernier se fasse dans des environnements propices au génie logiciel.

La plupart des gens ont des titres d'ingénierie logicielle mais n'ont pas vraiment avancé au-delà du codage. Ce n'est pas un problème pour eux, mais une observation - ils n'ont pas été suffisamment exposés au type de travail qui les aiderait à accumuler une expérience de travail au-delà du codage. Pire encore, la plupart des emplois et des organisations sont atrocement gérés et ne sont pas propices à une ingénierie logicielle appropriée.

De plus, sans travail ni maturité scolaire, le matériel de génie logiciel survolera simplement la tête de la plupart des étudiants de premier cycle.

luis.espinal
la source
Si vous voulez savoir comment ils "réduisent tout ce qui est nécessaire pour le génie logiciel au premier cycle", jetez un coup d'œil au premier programme SE de premier cycle aux États-Unis: se.rit.edu
Thomas Owens
À moins que je manque quelque chose, ils ne l'ont pas resserré. Ils ont simplement créé un programme d'études étendu de 192 crédits. Cela va au-delà du programme de premier cycle typique de 60 à 80 crédits que vous trouverez dans CS et MIS - il y a beaucoup plus de cours en cours ici, assez pour le rendre comparable à la prise de doubles majeures (ou à l'obtention d'un diplôme de premier cycle et d'un diplôme). J'aime le flux et l'intégration d'autres disciplines d'ingénierie en dernière année. C'est un programme parfait que l'on peut suivre. Mais cela prouve simplement mon point que vous ne pouvez pas obtenir SE avec le chargement de cours de premier cycle typique seul.
luis.espinal
Et une mise en garde que je verrais ici, c'est que vous dépensez tant d'efforts et que vous obtenez simplement un seul diplôme universitaire (au lieu de suivre des cours similaires pour obtenir des doubles majeures ou un diplôme de premier cycle et d'études supérieures). La peau de mouton compte malheureusement. Peut-être que cette préoccupation importera moins une fois que ces diplômes SE seront plus répandus.
luis.espinal
C'est un système de trimestre, ce qui signifie que c'est exactement la même charge de travail qu'un diplôme CS (ou tout autre diplôme de premier cycle) de la même université. Au final, c'est 4 ans de cours (10 semaines de cours, 1 semaine d'examens par trimestre, 3 trimestres par an), 1 an de coop.
Thomas Owens
Pas vraiment. Ce n'est pas équivalent en termes de charge de travail. Je poursuis actuellement un second master (CE + EE) au WPI qui suit un format similaire (3 trimestres, 10 semaines de cours + 1 semaine pour les examens). Par expérience, des programmes comme ceux-ci sont plus rigoureux et couvrent plus que le degré 60-80 de premier cycle typique. Ce n'est pas une critique du programme, remarquez . Je pense qu'il est nécessaire de vraiment couvrir l'ingénierie logicielle au premier cycle. Et une approche similaire devrait également être nécessaire pour le CS (puisque le CS typique ne couvre plus suffisamment de stages pratiques et multidisciplinaires de nos jours.)
luis.espinal