Ingegneria del software e informatica dovrebbero essere major separate? [chiuso]


19

Per decenni, la laurea accettata per diventare uno sviluppatore di software è stata "Compter Science".
Abbiamo già avuto alcune domande sul fatto che quel grado prepari davvero gli studenti a sviluppare software.

Alcune scuole, negli ultimi 8 anni circa, hanno iniziato a offrire diverse major distinte nella programmazione. Utilizzando il curriculum della mia scuola:

  • Informatica , che inizia con alcuni corsi di programmazione introduttiva nel primo anno, e poi si concentra su informatica teorica, algoritmi e un po 'di roba del sistema operativo. La maggior parte delle lezioni coinvolge diversi progetti e compiti a casa più piccoli, fatti da soli o in coppia.
  • L'ingegneria del software , che inizia con gli stessi corsi di programmazione introduttiva, fa alcune lezioni teoriche, quindi affronta le pratiche di sviluppo del software (test, metodologie di processo, metriche del software, raccolta dei requisiti) e progettazione del software (progettazione di sistemi distribuiti, progettazione di sistemi informativi , progettazione in tempo reale / integrata, progettazione del sottosistema, ecc.)

Scuole diverse lo fanno in modo diverso, quindi quanto sopra è solo un esempio del mondo reale che conosco. Quello che chiedo è: c'è bisogno di major distinte nella programmazione?


1
Non proprio. Il modo per apprendere queste abilità non è di insegnare loro un corso, ma di dare loro un vero lavoro di progetto
Casebash

Cosa ti fa pensare che non lo siano? RIT offre entrambi come gradi.
Andy,

Andy: lo so. Sono andato al RIT e ho conseguito una laurea SE. Stavo chiedendo se dovevano essere separati, non se lo sono attualmente. :)
Fishtoaster,

Risposte:


28

Sì, dovrebbero essere.

Il rapporto tra informatica e ingegneria del software è lo stesso del rapporto tra fisica e ingegneria meccanica. Uno fornisce il background teorico mentre l'altro prende quelle teorie, insieme a buoni principi ingegneristici, e li applica alla progettazione e all'implementazione del software.

Per produrre software nuovo e migliore sono necessari entrambi. Una buona educazione informatica prepara le persone a produrre algoritmi, strutture dati, linguaggi e paradigmi di programmazione nuovi e migliori, compilatori e una serie di altre cose che possono essere utilizzate per migliorare i sistemi software. Una buona istruzione di ingegneria del software, d'altro canto, ti insegna a prendere questi strumenti e le conoscenze ottenute attraverso uno studio scientifico di calcolo, insieme a una conoscenza del ciclo di vita dello sviluppo del software e dei modelli di processo per costruire effettivamente il sistema che un cliente desidera e di cui ha bisogno .


2
L'analogia fisica / ingegneria è quella che uso molto. Non assumiamo fisici per progettare e costruire ponti, perché assumiamo scienziati informatici per progettare e costruire programmi?
HerbN,

1
Perché i programmi di informatica insegnano un po 'di più su come costruire programmi rispetto al tipico programma di fisica;)
Wayne Werner,

2
@WayneWerner: No, davvero, davvero no.
DeadMG

3

È noto che un tipico curriculum CS non ne prepara uno per l'industria, non tanto quanto vuole che tu sia preparato comunque. Quindi sì, c'è bisogno di una specializzazione in ingegneria del software, e le due cose dovrebbero essere distinte, anche se sicuramente nella stessa facoltà.


1

Dovrebbero essere discipline diverse, ma non a livello universitario. Non vedo come possano ottenere tutto il necessario per l'ingegneria del software con una laurea. Allo stesso modo non vediamo diplomi di laurea in Ingegneria dei Sistemi (in cui le persone ottengono un MS dopo aver conseguito una laurea in EE, CE, Ingegneria Meccanica o CS), è un caso simile con l'Ingegneria del Software.

È un approccio multidisciplinare basato pesantemente su informatica e / o MIS. Le persone diventano veramente ingegneri del software in pratica (e non solo nel titolo) dopo aver perseguito il corso avanzato e / o l'esperienza di lavoro sul campo, a condizione che il successivo sia fatto in ambienti conduttori di ingegneria del software.

La maggior parte delle persone possiede titoli di ingegneria del software, ma non è andata oltre la programmazione. Questo non è un problema per loro, ma un'osservazione: non sono stati sufficientemente esposti al tipo di lavoro che li aiuterebbe ad accumulare esperienza lavorativa oltre la codifica. Peggio ancora, la maggior parte dei lavori e delle organizzazioni sono gestiti in modo atroce e non sono conduttori di una corretta ingegneria del software.

Inoltre, senza lavoro o maturità scolastica, il materiale di ingegneria del software sorvolerà semplicemente la maggior parte degli studenti universitari.


Se vuoi sapere come "limitano tutto ciò che è necessario per Ingegneria del Software a un livello universitario", dai un'occhiata al primo programma SE universitario negli Stati Uniti: se.rit.edu
Thomas Owens

A meno che non mi manchi qualcosa, non l'hanno stretta. Hanno semplicemente creato un curriculum esteso di 192 crediti. Questo va oltre il tipico curriculum di 60-80 crediti che trovi in ​​CS e MIS - ci sono molti più corsi in corso qui, abbastanza per renderlo comparabile al conseguimento di doppie specializzazioni (o ottenere un corso di laurea e un grado di laurea). Mi piace il flusso e l'integrazione di altre discipline ingegneristiche nell'ultimo anno. È un curriculum perfetto che si può seguire. Ma dimostra semplicemente che non puoi ottenere SE con il tipico corso di laurea da solo.
luis.espinal,

E un avvertimento che vedrei qui è che spendi così tanto sforzo e ottieni semplicemente un singolo titolo di laurea (al contrario di completare un corso simile per ottenere doppie specializzazioni o una laurea e una laurea.) Purtroppo la pelle di pecora conta. Forse questa preoccupazione importerà meno una volta che tali gradi SE diventeranno più diffusi.
luis.espinal,

È un sistema di quarti, il che significa che è esattamente lo stesso carico di lavoro di un diploma CS (o di qualsiasi altro corso di laurea) della stessa università. Alla fine, sono 4 anni di lezione (10 settimane di lezione, 1 settimana di esami per trimestre, 3 trimestri all'anno), 1 anno di cooperazione.
Thomas Owens

Non proprio. Non è equivalente quando si tratta di carico di lavoro. Attualmente sto perseguendo un secondo master (CE + EE) presso WPI che segue un formato simile (3 trimestri, 10 settimane di lezioni + 1 settimana per gli esami). Per esperienza, programmi come questi sono più rigorosi e coprono più del normale grado 60-80. Non è una critica al programma, intendiamoci . Penso che sia necessario coprire davvero l'ingegneria del software a livello universitario. E un approccio simile dovrebbe essere necessario anche per CS (dal momento che la CS tipica non copre più abbastanza pratiche pratiche e multidisciplinari al giorno d'oggi.)
luis.espinal
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.