Ingegneria del Software
La laurea in Ingegneria del Software prepara ingegneri del software: professionisti collaborativi che lavorano in team per sviluppare prodotti software in tempo, entro il budget e che soddisfano i requisiti dei clienti. I laureati di questo programma possiederanno la conoscenza pratica e le competenze di un approccio ingegneristico definito per l'analisi, la pianificazione, la progettazione e la costruzione di sistemi complessi. Il corso si basa sui fondamenti della scienza informatica e sui principi matematici per coprire la progettazione, l'analisi, la verifica, la validazione, l'implementazione, il deployment e la manutenzione dei sistemi software.
Spesso c'è confusione riguardo alle differenze tra scienza informatica, ingegneria del software e IT/IS. Il seguente diagramma dell'Association for Computing Machinery (ACM) fornisce un'idea della relazione tra ciascuna delle aree.
Gli ingegneri elettrici (EE) sono principalmente coinvolti nella progettazione hardware, mentre gli ingegneri informatici (CE) progettano sistemi che includono sia hardware che software. La scienza informatica (CS) copre i concetti e la tecnologia coinvolti nel far fare qualcosa a un computer (grafica, robotica, ecc.), e l'ingegneria del software (SE) si concentra su come progettare e costruire software. C'è una significativa sovrapposizione tra scienza informatica e ingegneria del software e l'intersezione tra i due è spesso la programmazione; tuttavia, c'è una differenza chiave. Gli scienziati informatici testano teorie e lavorano ai confini dell'ignoto. L'ingegneria del software è una disciplina ingegneristica. L'ingegneria inizia con la conoscenza che è già stata dimostrata affidabile e sviluppa soluzioni per problemi tecnici, sociali e commerciali. La tecnologia dell'informazione (IT) e i servizi informatici (IS) si concentrano sulla fornitura di soluzioni tecnologiche a un'organizzazione.
Il programma di Ingegneria del Software del Snow College offre agli studenti un'esperienza educativa che si basa sulla tradizionale scienza informatica e ingegneria e produce ingegneri del software che creano software di alta qualità in modo sistematico, controllato ed efficiente. Questo viene realizzato nei seguenti modi:
La laurea ha un forte accento sulla matematica e sull'uso di metodi ingegneristici nella progettazione del software.
I corsi pongono un'enfasi sui processi e sui cicli di vita del software e utilizzano un approccio di team per costruire software con apprendimento attivo ("imparare facendo"), che offre anche opportunità di leadership, come ruoli di team leader nello sviluppo software, per ogni studente.
I corsi includono un apprendimento significativo in aree di gestione come pianificazione dei progetti, allocazione delle risorse, assicurazione della qualità, testing, metriche, manutenzione e risoluzione dei problemi, gestione della configurazione e gestione del personale.
I corsi incorporano team di studenti per lavorare su attività specificamente progettate per guidare gli studenti a costruire collaborativamente la propria comprensione dei concetti chiave e, allo stesso tempo, sviluppare competenze chiave come comunicazione, lavoro di squadra, pensiero critico e problem-solving.
Gli studenti avranno la possibilità di un'enfasi in:
- Imprenditorialità: La combinazione di pensiero computazionale e imprenditoriale per identificare, valutare e implementare idee che creeranno nuovi mercati e tecnologie.
- Progettazione di Media Digitali: L'uso di media integrati per comunicare messaggi attraverso mezzi elettronici come Internet, film, televisione e tecnologie mobili.
Sviluppo Web: L'uso di strumenti tra cui HTML, CSS e JavaScript per creare e mantenere siti web interattivi di alta qualità.
Il curriculum di ingegneria del software culmina in una sequenza di capstone di un anno in cui gli studenti lavorano in team per costruire un sistema software riflettente le pratiche attuali nel settore. Inoltre, gli studenti sono incoraggiati a partecipare a tirocini prima e durante l'iscrizione a questi corsi di capstone per acquisire esperienza diretta nel settore e intuizioni prima di intraprendere i propri progetti. Il Snow College collaborerà con le aziende per sviluppare queste opportunità di apprendimento che forniranno agli studenti un'esperienza rilevante per l'industria.
Il programma di Ingegneria del Software del Snow College prepara gli studenti a entrare immediatamente nella professione di ingegneria del software o a proseguire per perseguire opportunità educative avanzate. I primi due anni del programma sono anche compatibili con il trasferimento a un'istituzione che offre una laurea in scienza informatica.
Corsi di Ingegneria del Software
- SE 3250 Indagine sulle Lingue
- SE 3410 Fattori Umani - Progettazione Software
- SE 3450 Principi e Modelli di Progettazione SW
- SE 3520 Sistemi di Database
- SE 3620 Sviluppo di App Distribuite
- SE 3630 Sviluppo di Applicazioni Mobili
- SE 4120 Gestione del Progetto Software
- SE 4220 Interfacce Utente Grafiche
- SE 4320 Pratiche Software Personali
- SE 4400 Praticum di SE I
Carriere in Ingegneria del Software
L'ingegneria del software è l'applicazione dei principi ingegneristici allo sviluppo di software. Gli scienziati informatici apprendono cosa è vero, come testare ipotesi e come estendere la conoscenza nel loro campo. Gli ingegneri del software apprendono cosa è vero, cosa è utile e come applicare conoscenze ben comprese per risolvere problemi pratici.
Percorsi di Carriera in Ingegneria del Software
- Sviluppo di Applicazioni: Sviluppo software non basato su Web, basato sulla risoluzione dei problemi, che include linguaggi di programmazione come Java e C#.
- Sviluppo di Sistemi: Progettazione e codifica di software di supporto per lo sviluppo di applicazioni; include linguaggi di programmazione come C e C++.
- Sviluppo Web: Progettazione di software o applicazioni da eseguire in un browser Web e utilizzo di linguaggi di programmazione come HTML, JavaScript e PHP.
- Sviluppo di Sistemi Embedded: Progettazione di sistemi informatici e software per funzionare su dispositivi non informatici, come automobili. Utilizza linguaggi di programmazione come C e linguaggi assembly.
Guadagni per gli Ingegneri del Software
Secondo il Bureau of Labor Statistics, uno stipendio iniziale tipico è di circa $70.000 e la maggior parte delle carriere in ingegneria del software paga tra $80.000 e $105.000 all'anno. Il potenziale di guadagno varia in base a posizione, esperienza, istruzione, settore, datore di lavoro e certificazione.
Competenze necessarie per l'Ingegneria del Software
I professionisti dell'ingegneria del software sono basati sulle competenze, richiedendo una formazione altamente specializzata sia in aree tecniche che non tecniche. I datori di lavoro cercano candidati che possiedano un mix di competenze tecniche e soft skills. Le soft skills valutate dai datori di lavoro includono comunicazione, organizzazione, gestione dei progetti, problem-solving, pensiero critico e decision making.
Oltre alle soft skills, gli ingegneri del software sviluppano anche competenze tecniche e specifiche del settore che sono applicabili a tutte le carriere nell'ingegneria informatica e a specifiche aree di pratica, rispettivamente. Esempi di competenze tecniche includono linguaggi di programmazione, hardware e software informatici e architettura di sistema.
Prepararsi per una carriera nell'Ingegneria del Software
1) Conseguire una laurea in ingegneria del software o in un campo correlato. La maggior parte delle posizioni di ingegnere del software richiede una laurea. Specializzarsi in ingegneria del software fornirà il background più utile per progettare e perfezionare il software. Per prepararti alla tua carriera, ecco alcune cose che puoi fare.
2) Inizia a programmare immediatamente. Anche se sei ancora a scuola, puoi darti un enorme vantaggio insegnandoti la programmazione. L'ingegneria del software non si concentra esclusivamente sulla codifica, ma dovrai conoscere almeno un paio di linguaggi e avere una comprensione più profonda di come funzionano. Non c'è un consenso diffuso su quali linguaggi siano più utili, ma questi sono tutti scelte popolari:
- C++
- C#
- Java
- JavaScript
- Python
3) Studia matematica. Gli ingegneri del software a volte creano gli algoritmi matematici che consentono al software di funzionare. Concentrati sullo sviluppo e sul mantenimento delle tue competenze matematiche per fare del tuo meglio una volta ottenuta una posizione come ingegnere del software.
4) Costruisci software. Il modo migliore per migliorare le tue competenze è usarle. Che si tratti di progetti professionali o personali, progettare e codificare software ti insegnerà molto. Per molti datori di lavoro, i risultati pratici contano più della media dei voti o della conoscenza teorica.
5) Cerca un tirocinio. Molti studenti di ingegneria del software lavorano come tirocinanti mentre completano i loro studi. Questo può essere un ottimo modo per acquisire formazione pratica e fare rete con potenziali datori di lavoro.
6) Considera i tuoi obiettivi di carriera. L'industria del software è in continua evoluzione. Migliora continuamente le tue conoscenze e competenze pratiche. Unisciti a un'organizzazione professionale come ACM o IEEE per opportunità di networking. Persegui certificazioni rilevanti per il tuo campo di interesse. Consulta le opportunità di Snow per iniziare il tuo percorso nell'ingegneria del software.
Certificazioni Professionali Disponibili
Ci sono una varietà di certificazioni che puoi cercare per dimostrare le tue competenze con particolari linguaggi, prodotti o ruoli lavorativi. Alcune riflettono una conoscenza ampia, altre si concentrano su competenze specifiche in aree specializzate.
Gli ingegneri applicativi con una conoscenza ampia potrebbero voler perseguire credenziali attraverso l'Institute of Electrical and Electronics Engineers (IEEE). Le credenziali di sviluppo software della IEEE Society riflettono la conoscenza nel Software Engineering Body of Knowledge Guide (SWEBOK). Sono riconosciute a livello internazionale.