Titolo universitario
La più grande facoltà di informatica del mondo"
Presentazioni
Grazie a questo Master semipresenziale, applicherai modelli di progettazione per risolvere una vasta gamma di problemi informatici e costruire soluzioni scalabili"
Lo Sviluppo di Software è diventato un fattore essenziale nell'economia digitale di oggi, con una crescente domanda di professionisti qualificati in tutto il mondo. Secondo l'Organizzazione per la Cooperazione e lo Sviluppo Economico, questo settore professionale dovrebbe registrare una crescita del 30% nel prossimo anno. Questo sottolinea l'importanza per i professionisti di informatica di rimanere aggiornati sulle ultime tendenze in questo campo. Altrimenti, gli sviluppatori potrebbero trovarsi di fronte a problemi come l'uso di metodologie obsolete che portano a processi meno efficienti.
In questo contesto, TECH propone un rivoluzionario Master semipresenziale in Sviluppo di Software. Si tratta di un programma universitario che unisce in 1.920 ore il miglior contenuto teorico con 3 settimane di un tirocinio educativo pratico in un'entità di riferimento in questo settore. Il percorso accademico approfondirà aspetti come la Programmazione in C++, la creazione di database avanzati o la progettazione architettonica delle applicazioni. Tutto questo attraverso materiali didattici preparati da un team di insegnanti esperti, che includono una vasta gamma di risorse multimediali (come riassunti interattivi, casi di studio o video esplicativi) per garantire un aggiornamento piacevole. In questo modo, gli informatici potranno godere di un apprendimento totalmente progressivo e naturale, senza dover ricorrere a tecniche tradizionali come la memorizzazione.
Inoltre, il titolo universitario prevede che gli studenti svolgano una formazione pratica presso un'istituzione prestigiosa. Gli informatici parteciperanno attivamente ai progetti che si stanno sviluppando in quel momento. Si noti che un tutor specializzato guiderà gli studenti durante questo soggiorno presenziale, assicurando loro la realizzazione di un piano di attività che permetterà loro di ottimizzare le proprie competenze in base alle esigenze del mercato del lavoro attuale.
Implementerai processi di assicurazione della qualità nella tua pratica per garantire l'affidabilità e le prestazioni del Software"
Questo Master semipresenziale in Sviluppo di Software possiede il programma più completo e aggiornato del mercato. Le caratteristiche principali del programma sono:
- Sviluppo di oltre 100 casi di studio presentati da professionisti in Sviluppo di Software
- Contenuti grafici, schematici ed eminentemente pratici che forniscono informazioni scientifiche e pratiche sulle discipline essenziali per l’esercizio della professione
- Notizie sugli ultimi sviluppi in Sviluppo di Software
- Esercizi pratici che offrono un processo di autovalutazione per migliorare l'apprendimento.
- Lezioni teoriche, domande all'esperto, forum di discussione su argomenti controversi e lavori di riflessione individuale
- Contenuti disponibili da qualsiasi dispositivo fisso o mobile dotato di connessione a internet
- Possibilità di svolgere un tirocinio presso una delle migliori aziende del settore
Frequenta un tirocinio educativo intensivo di 3 settimane in una società prestigiosa e acquisisce tutte le conoscenze per sperimentare un notevole salto di qualità professionale"
In questa proposta di Master, di carattere professionalizzante e modalità semipresenziale, il programma è diretto all'aggiornamento dei professionisti dell'informatica che vogliono incorporare nella loro pratica le tecniche più avanzate per lo Sviluppo di Software. I contenuti sono basati sulle ultime prove scientifiche e orientati in modo didattico per integrare il sapere teorico nella pratica informatica e gli elementi teorico-pratici faciliteranno l'aggiornamento delle conoscenze.
Grazie ai contenuti multimediali elaborati con la più recente tecnologia educativa, permetteranno al professionista dell'informatica un apprendimento localizzato e contestuale, cioè un ambiente simulato che fornirà un apprendimento immersivo programmato per allenarsi in situazioni reali. La creazione di questo programma si basa sull’Apprendimento Basato su Problemi, mediante il quale il professionista deve cercare di risolvere le diverse situazioni di pratica professionale che gli si presentano durante il programma. Lo studente potrà usufruire di un innovativo sistema di video interattivi creati da esperti di rinomata fama.
Questo titolo universitario includerà casi reali per avvicinare al massimo lo sviluppo del programma alla realtà della prassi informatica"
Avrai il supporto della più grande istituzione accademica online del mondo, TECH, con la più recente tecnologia educativa a tua disposizione"
Piano di studi
I materiali didattici che compongono questo Master semipresenziale sono stati elaborati da veri esperti nel campo dello Sviluppo di Software. Composto da 10 moduli specializzati, il programma doterà gli informatici di una vasta gamma di competenze tecniche. Il programma approfondirà aspetti come Progettazione di Algoritmi, Creazione di Database o Ingegneria del Software. Inoltre, il programma fornirà agli sviluppatori le tecniche più innovative per l'ottimizzazione delle risorse, tra cui il Backtracking. In questo modo, gli studenti acquisiranno competenze avanzate per progettare architetture di Software che supportano la crescita e l'evoluzione dei sistemi.
Padroneggia metodologie agili come Scrum per migliorare l'efficienza nello Sviluppo di Software"
Modulo 1. Fondamenti di programmazione
1.1. Introduzione alla programmazione
1.1.1. Struttura di base di un computer
1.1.2. Software
1.1.3. Linguaggio di programmazione
1.1.4. Ciclo di vita un’applicazione informatica
1.2. Progettazione degli algoritmi
1.2.1. Risoluzione dei problemi
1.2.2. Tecniche descrittive
1.2.3. Elementi e struttura di un algoritmo
1.3. Elementi di un programma
1.3.1. Origini e caratteristiche del linguaggio C++
1.3.2. L'ambiente di sviluppo
1.3.3. Il concetto di programma
1.3.4. Tipi di dati fondamentali
1.3.5. Operatori
1.3.6. Espressioni
1.3.7. Frasi
1.3.8. Input e output di dati
1.4. Dichiarazioni di controllo
1.4.1. Frasi
1.4.2. Diramazioni
1.4.3. Loop
1.5. Astrazione e modularità: funzioni
1.5.1. Design modulare
1.5.2. Concetto di funzione e utilità
1.5.3. Definizione di una funzione
1.5.4. Flusso di esecuzione in una chiamata di funzione
1.5.5. Prototipo di una funzione
1.5.6. Restituzione dei risultati
1.5.7. Chiamata di una funzione: parametri
1.5.8. Passaggio di parametri per riferimento e per valore
1.5.9. Ambito identificatore
1.6. Strutture dati statiche
1.6.1. Array
1.6.2. Matrici: Poliedri
1.6.3. Ricerca e ordinamento
1.6.4. Stringhe: Funzioni di I/O
1.6.5. Strutture: Unioni
1.6.6. Nuovi tipi di dati
1.7. Strutture dati dinamiche: puntatori
1.7.1. Concetto: Definizione di puntatore
1.7.2. Operatori e operazioni con i puntatori
1.7.3. Array di puntatori
1.7.4. Puntatori e array
1.7.5. Puntatori a stringhe
1.7.6. Puntatori a strutture
1.7.7. Indirizzi multipli
1.7.8. Puntatori a funzioni
1.7.9. Passaggio di funzioni, strutture e array come parametri di funzione
1.8. File
1.8.1. Concetti di base
1.8.2. Operazioni con i file
1.8.3. Tipi di file
1.8.4. Organizzazione dei file
1.8.5. Introduzione ai file C++
1.8.6. Gestione dei file
1.9. Risorse
1.9.1. Definizione di risorse
1.9.2. Tipi di risorse
1.9.3. Vantaggi e svantaggi
1.9.4. Considerazioni
1.9.5. Conversione ricorsivaiterativa
1.9.6. Lo stack di ricorsione
1.10. Test e documentazione
1.10.1. Test del programma
1.10.2. Test della scatola bianca
1.10.3. Test della scatola nera
1.10.4. Strumenti per i test
1.10.5. Documentazione del programma
Modulo 2. Struttura dei dati
2.1. Introduzione alla programmazione in C++
2.1.1. Classi, costruttori, metodi e attributi
2.1.2. Variabili
2.1.3. Espressioni condizionali e loop
2.1.4. Obiettivi
2.2. Tipi di Dati astratti (ADT)
2.2.1. Tipi di dati
2.2.2. Strutture di base e ADT
2.2.3. Vettori e Array
2.3. Strutture di dati lineari
2.3.1. ADT: Elenco definizione
2.3.2. Elenchi collegati e doppiamente collegati
2.3.3. Elenchi ordinati
2.3.4. Elenchi in C++
2.3.5. Stack ADT
2.3.6. Coda ADT
2.3.7. Stack e coda in C++
2.4. Strutture di dati gerarchiche
2.4.1. Albero ADT
2.4.2. Percorsi
2.4.3. Alberi n-ari
2.4.4. Alberi binari
2.4.5. Alberi binari di ricerca
2.5. Strutture dati gerarchiche: alberi complessi
2.5.1. Alberi perfettamente bilanciati o di altezza minima
2.5.2. Alberi multipercorso
2.5.3. Riferimenti bibliografici
2.6. Heap e Coda di priorità
2.6.1. Insiemi di ADT
2.6.2. Coda prioritaria ADT
2.7. Tabelle Hash
2.7.1. ADT: Tabella Hash
2.7.2. Funzioni Hash
2.7.3. Funzione Hash nelle tabelle Hash
2.7.4. Ridispersione
2.7.5. Tabelle: Hash aperte
2.8. Grafi
2.8.1. Grafi ADT
2.8.2. Tipi id grafi
2.8.3. Rappresentazione grafica e operazioni di base
2.8.4. Progettazione dei grafi
2.9. Algoritmi e concetti avanzati sui Grafi
2.9.1. Problemi dei Grafi
2.9.2. Algoritmi di percorso
2.9.3. Algoritmi di percorso o di ricerca
2.9.4. Altri algoritmi
2.10. Altre strutture di dati
2.10.1. Insiemi
2.10.2. Array paralleli
2.10.3. Tabelle dei simboli
2.10.4. Tries
Modulo 3. Algoritmo e complessità
3.1. Introduzione ai modelli di progettazione di algoritmi
3.1.1. Risorse
3.1.2. Dividi e conquista
3.1.3. Altre strategie
3.2. Efficienza e analisi degli algoritmi
3.2.1. Misure di efficienza
3.2.2. Misurare l'ingresso di input
3.2.3. Misurare il tempo di esecuzione
3.2.4. Caso peggiore, migliore e medio
3.2.5. Notazione asintotica
3.2.6. Criteri di analisi matematica per algoritmi non ricorsivi
3.2.7. Analisi matematica per algoritmi ricorsivi
3.2.8. Analisi empirica degli algoritmi
3.3. Algoritmi di ordinamento
3.3.1. Concetto di ordinamento
3.3.2. Ordinamento delle bolle
3.3.3. Ordinamento per selezione
3.3.4. Ordinamento per inserimento
3.3.5. Ordinamento per mix (Merge Sort)
3.3.6. Ordinamento rapido (Quicksort)
3.4. Algoritmi con alberi
3.4.1. Concetto di albero
3.4.2. Alberi binari
3.4.3. Percorsi degli alberi
3.4.4. Rappresentare le espressioni
3.4.5. Alberi binari ordinati
3.4.6. Alberi binari bilanciati
3.5. Algoritmi con Heaps
3.5.1. Gli Heaps
3.5.2. L’algoritmo Heapsort
3.5.3. Code prioritarie
3.6. Algoritmi con grafi
3.6.1. Rappresentazione
3.6.2. Percorso in larghezza
3.6.3. Percorso in profondità
3.6.4. Ordinamento topologico
3.7. Algoritmi Greedy
3.7.1. La strategia Greedy
3.7.2. Elementi della strategia Greedy
3.7.3. Cambio valuta
3.7.4. Il problema del viaggiatore
3.7.5. Problema dello zaino
3.8. Ricerca del percorso minimo
3.8.1. Il problema del percorso minimo
3.8.2. Archi e cicli negativi
3.8.3. Algoritmo di Dijkstra
3.9. Algoritmi Greedy sui Grafi
3.9.1. L'albero a sovrapposizione minima
3.9.2. Algoritmo di Prim
3.9.3. Algoritmo di Kruskal
3.9.4. Analisi della complessità
3.10. Backtracking
3.10.1. Il Backtracking
3.10.2. Tecniche alternative
Modulo 4. Database
4.1. Applicazioni e scopi dei sistemi di database
4.1.1. Applicazioni di diversi sistemi di database
4.1.2. Scopo dei diversi sistemi di database
4.1.3. Visione dei dati
4.2. Database e architettura
4.2.1. Database relazionale
4.2.2. Progettazione di database
4.2.3. Database a oggetti e semi-strutturati
4.2.4. Memorizzazione dei dati e interrogazioni
4.2.5. Gestione delle transazioni
4.2.6. Estrazione e analisi dei dati
4.2.7. Architettura del database
4.3. Il modello relazionale: struttura, operazioni e algebra relazionale estesa
4.3.1. La struttura dei database relazionali
4.3.2. Operazioni fondamentali dell'algebra relazionale
4.3.3. Altre operazioni dell'algebra relazionale
4.3.4. Operazioni di algebra relazionale estesa
4.3.5. Valori nulli
4.3.6. Modifica del database
4.4. SQL (I)
4.4.1. Cos'è SQL?
4.4.2. La definizione di dati
4.4.3. La struttura di base delle query SQL
4.4.4. Operazioni sugli insiemi
4.4.5. Funzioni di aggregazione
4.4.6. Valori nulli
4.5. SQL (II)
4.5.1. Subquery annidate
4.5.2. Query complesse
4.5.3. Visualizzazioni
4.5.4. Cursori
4.5.5. Query complesse
4.5.6. Trigger
4.6. Progettazione di database e modello E-R
4.6.1. Panoramica del processo di progettazione
4.6.2. Modello entitàrelazione
4.6.3. Restrizioni
4.7. Diagrammi entitàrelazione
4.7.1. Diagrammi entitàrelazione
4.7.2. Aspetti di progettazione delle entità delle relazioni
4.7.3. Insiemi di entità deboli
4.8. Il modello esteso di entitàrelazione
4.8.1. Caratteristiche del modello E-R esteso
4.8.2. Progettazione del database
4.8.3. Riduzione a schemi relazionali
4.9. Progettazione di database relazionali
4.9.1. Caratteristiche di un buon progetto relazionale
4.9.2. Domini atomici e prima forma normale (1FN)
4.9.3. Decomposizione mediante dipendenze funzionali
4.9.4. Teoria della dipendenza funzionale
4.9.5. Algoritmi di decomposizione
4.9.6. Decomposizione con dipendenze multivariate
4.9.7. Altre forme normali
4.9.8. Processo di progettazione del database
4.10. Database NoSQL
4.10.1. Cosa sono i database NoSQL?
4.10.2. Analisi delle diverse opzioni NoSQL e delle loro caratteristiche
4.10.3. MongoDB
Modulo 5. Database avanzati
5.1. Scopo dei diversi sistemi di database
5.1.1. Rassegna storica
5.1.2. Database gerarchici
5.1.3. Database di rete
5.1.4. Database relazionali
5.1.5. Database non relazionali
5.2. XML e database per il web
5.2.1. Convalida dei documenti XML
5.2.2. Trasformazioni dei documenti XML
5.2.3. Memorizzazione di dati XML
5.2.4. Database relazionali XML
5.2.5. SQL/XML
5.2.6. Database XML nativi
5.3. Basi di dati parallele
5.3.1. Sistemi paralleli
5.3.2. Architetture di database paralleli
5.3.4. Parallelismo delle query
5.3.5. Parallelismo tra query
5.3.6. Progettazione di sistemi paralleli
5.3.7. Elaborazione parallela in SQL
5.4. Database distribuiti
5.4.1. Sistemi distribuiti
5.4.2. Archiviazione distribuita
5.4.3. Disponibilità
5.4.4. Elaborazione distribuita delle query
5.4.5. Fornitori di database distribuiti
5.5. Indicizzazione e associazione
5.5.1. Indici ordinati
5.5.2. Indici densi e radi
5.5.3. Indici multilivello
5.5.4. Aggiornamento dell'indice
5.5.5. Associazione statica
5.5.6. Come utilizzare gli indici nei database
5.6. Introduzione all'elaborazione transazionale
5.6.1. Stati di una transazione
5.6.2. Implementazione dell'atomicità e della durata
5.6.3. Sequenzialità
5.6.4. Recuperabilità
5.6.5. Implementazione dell'isolamento
5.7. Sistemi di recupero
5.7.1. Classificazione dei guasti
5.7.2. Strutture di archiviazione
5.7.3. Recupero e atomicità
5.7.4. Recupero basato sul record storico
5.7.5. Transazioni e recupero concorrenti
5.7.6. Alta disponibilità nei database
5.8. Esecuzione ed elaborazione di query
5.8.1. Costo di una query
5.8.2. Operazione di selezione
5.8.3. Ordinamento
5.8.4. Introduzione all'ottimizzazione delle query
5.8.5. Monitoraggio delle prestazioni
5.9. Database non relazionali
5.9.1. Database orientati ai documenti
5.9.2. Database orientati ai grafi
5.9.3. Database chiave-valore
5.10. Data Warehouse, OLAP e estrazione dei dati
5.10.1. Componenti di un data warehouse
5.10.2. Architettura di un data warehouse
5.10.3. OLAP
5.10.4. Funzionalità di Data Mining
5.10.5. Altri tipi di estrazione mineraria
Modulo 6. Progettazione avanzata degli algoritmi
6.1. Analisi di algoritmi ricorsivi e divide et impera
6.1.1. Porre e risolvere equazioni di ricorrenza omogenee e non omogenee
6.1.2. Panoramica della strategia divide et impera
6.2. Analisi ammortizzata
6.2.1. Analisi aggregata
6.2.2. Il metodo di contabilizzazione
6.2.3. Il metodo del potenziale
6.3. Programmazione dinamica e algoritmi per problemi NP
6.3.1. Caratteristiche della programmazione dinamica
6.3.2. Monitoraggio a ritroso: Backtracking
6.3.3. Ramificazione e potatura
6.4. Ottimizzazione combinatoria
6.4.1. Rappresentazione del problema
6.4.2. Ottimizzazione 1D
6.5. Algoritmi di randomizzazione
6.5.1. Esempi di algoritmi di randomizzazione
6.5.2. Il teorema di Buffon
6.5.3. Algoritmo di Monte Carlo
6.5.4. Algoritmo di Las Vegas
6.6. Ricerca locale e di candidati
6.6.1. Gradient ascent
6.6.2. Hill Climbing
6.6.3. Simulated Annealing
6.6.4. Tabu Search
6.6.5. Ricerca di candidati
6.7. Verifica formale dei programmi
6.7.1. Specifica delle astrazioni funzionali
6.7.2. Il linguaggio della logica del primo ordine
6.7.3. Sistema formale di Hoare
6.8. Verifica di programmi iterativi
6.8.1. Regole del sistema formale di Hoare
6.8.2. Concetto di iterazioni invarianti
6.9. Metodi numerici
6.9.1. Il metodo della bisezione
6.9.2. Il metodo Newton Raphson
6.9.3. Il metodo della secante
6.10. Algoritmi paralleli
6.10.1. Operazioni binarie parallele
6.10.2. Operazioni in parallelo con i grafi
6.10.3. Parallelismo nel divide et impera
6.10.4. Parallelismo nella programmazione dinamica
Modulo 7. Interazione Persona-Computer
7.1. Introduzione all'interazione persona-computer
7.1.1. Che cos’è l'interazione persona-computer
7.1.2. Rapporto tra interazione persona-computer con altre discipline
7.1.3. L'interfaccia utente
7.1.4. Usabilità e accessibilità
7.1.5. Esperienza utente e design incentrato sull'utente
7.2. Il computer e l'interazione: interfaccia utente e paradigmi di interazione
7.2.1. L’interazione
7.2.2. Paradigmi di interazione e stili di interazione
7.2.3. Evoluzione delle interfacce utente
7.2.4. Interfacce utente classica: WIMP/GUI, comandi, voce, realtà virtuale
7.2.5. Interfacce utente innovative: mobile, portatile, collaborativa, collaborativa, BCI
7.3. Il fattore umano: aspetti psicologici e cognitivi
7.3.1. L'importanza del fattore umano nell'interazione
7.3.2. Elaborazione dell'informazione umana
7.3.3. L'ingresso e l'uscita delle informazioni: visive, uditive e tattili
7.3.4. Percezione e attenzione
7.3.5. Conoscenza e modelli mentali: rappresentazione, organizzazione e acquisizione
7.4. Il fattore umano: limitazioni sensoriali e fisiche
7.4.1. Diversità funzionale, disabilità e deficit
7.4.2. Diversità visiva
7.4.3. Diversità dell'udito
7.4.4. Diversità cognitiva
7.4.5. Diversità motoria
7.4.6. Il caso degli immigrati digitali
7.5. Il processo di progettazione (I): analisi dei requisiti per la progettazione dell'interfaccia utente
7.5.1. Progettazione incentrata sull’utente
7.5.2. Che cos'è l'analisi dei requisiti?
7.5.3. Raccolta di informazioni
7.5.4. Analisi e interpretazione delle informazioni
7.5.5. Analisi di usabilità e accessibilità
7.6. Il processo di progettazione (II): prototipazione e analisi del compito
7.6.1. Progetto concettuale
7.6.2. Prototipazione
7.6.3. Analisi gerarchica dei compiti
7.7. Il processo di progettazione (III): la valutazione
7.7.1. La valutazione nel processo di progettazione: obiettivi e metodi
7.7.2. Metodi di valutazione senza utenti
7.7.3. Metodi di valutazione con gli utenti
7.7.4. Standard e norme di valutazione
7.8. Accessibilità: definizione e linee guida
7.8.1. Accessibilità e design universale
7.8.2. L'iniziativa WAI e le linee guida WCAG
7.8.3. Linee guida WCAG 2.0 e 2.1
7.9. Accessibilità: valutazione e diversità funzionale
7.9.1. Strumenti di valutazione dell'accessibilità del web
7.9.2. Accessibilità e diversità funzionale
7.10. Il computer e l'interazione: periferiche e dispositivi
7.10.1. Dispositivi e periferiche tradizionali
7.10.2. Dispositivi e periferiche alternative
7.10.3. Telefoni cellulari e tablet
7.10.4. Diversità funzionale, interazione e periferiche
Modulo 8. Programmazione avanzata
8.1. Introduzione alla programmazione orientata agli oggetti
8.1.1. Introduzione alla programmazione orientata agli oggetti
8.1.2. Progettazione delle lezioni
8.1.3. Introduzione a UML per la modellazione dei problemi
8.2. Relazioni tra lezioni
8.2.1. Astrazione ed ereditarietà
8.2.2. Concetti avanzati di ereditarietà
8.2.3. Polimorfismo
8.2.4. Composizione e aggregazione
8.3. Introduzione ai design pattern per i problemi orientati agli oggetti
8.3.1. Cosa sono i design pattern
8.3.2. Pattern Factory
8.3.4. Pattern Singleton
8.3.5. Pattern Observer
8.3.6. Pattern Composite
8.4. Eccezioni
8.4.1. Quali sono le eccezioni?
8.4.2. Gestione e acquisizione delle eccezioni
8.4.3. Avvio delle eccezioni
8.4.4. Creazione di eccezioni
8.5. Interfacce utente
8.5.1. Introduzione a Qt
8.5.2. Posizionamento
8.5.3. Cosa sono gli eventi?
8.5.4. Eventi: definizione e acquisizione
8.5.5. Sviluppo di interfacce utente
8.6. Introduzione alla programmazione concorrente
8.6.1. Introduzione alla programmazione concorrente
8.6.2. Il concetto di processo e di thread
8.6.3. Interazione tra processi o thread
8.6.4. Thread in C++
8.6.6. Vantaggi e svantaggi della programmazione concorrente
8.7. Gestione e sincronizzazione dei thread
8.7.1. Ciclo di vita di un thread
8.7.2. La classe Thread
8.7.3. Pianificazione del thread
8.7.4. Gruppi di thread
8.7.5. Thread di tipo demoniaco
8.7.6. Sincronizzazione
8.7.7. Meccanismi di bloccaggio
8.7.8. Meccanismi di comunicazione
8.7.9. Monitor
8.8. Problemi comuni nella programmazione concorrente
8.8.1. Il problema dei produttori-consumatori
8.8.2. Il problema dei lettori e degli scrittori
8.8.3. Il problema della cena dei filosofi
8.9. Documentazione e test del software
8.9.1. Perché è importante documentare il software?
8.9.2. Documentazione di progettazione
8.9.3. Utilizzo di strumenti per la documentazione
8.10. Test di software
8.10.1. Introduzione al test del software
8.10.2. Tipi di test
8.10.3. Test dell'unità
8.10.4. Test di integrità
8.10.5. Test di convalida
8.10.6. Test del sistema
Modulo 9. Sviluppo delle applicazioni in rete
9.1. Linguaggi di mercato HTML5
9.1.1. Nozioni di base sulla HTML
9.1.2. Nuovi elementi HTML5
9.1.3. Moduli: nuovi controlli
9.2. Introduzione ai fogli di stile CSS
9.2.1. Primi passi con CSS
9.2.2. Introduzione ai CSS3
9.3. Linguaggio di scripting del browser: JavaScript
9.3.1. Nozioni di base di JavaScript
9.3.2. DOM
9.3.3. Eventi
9.3.4. JQuery
9.3.5. Ajax
9.4. Concetto di programmazione orientata ai componenti
9.4.1. Contesto
9.4.2. Componenti e interfacce
9.4.3. Stati di un componente
9.5. Architettura dei componenti
9.5.1. Architetture attuali
9.5.2. Integrazione e distribuzione dei componenti
9.6. Framework Frontend: Bootstrap
9.6.1. Design con la rete
9.6.2. Formulari
9.6.3. Componenti
9.7. Controllore della vista del modello
9.7.1. Metodi di sviluppo web
9.7.2. Pattern di progettazione: MVC
9.8. Tecnologie Grid informative
9.8.1. Aumento delle risorse informatiche
9.8.2. Concetto di tecnologia Grid
9.9. Architetture orientate ai servizi
9.9.1. SOA e servizi web
9.9.2. Topologia del servizio web
9.9.3. Piattaforme di servizi web
9.10. Protocollo HTTP
9.10.1. Messaggi
9.10.2. Sessioni persistenti
9.10.3. Sistema crittografico
9.10.4. Funzionamento del protocollo HTTPS
Modulo 10. Ingegneria del Software
10.1. Introduzione all'ingegneria del Software e alla modellazione
10.1.1. La natura del software
10.1.2. La natura unica delle Webapp
10.1.3. Ingegneria del Software
10.1.4. Il processo del Software
10.1.5. La pratica dell'ingegneria del Software
10.1.6. Miti del Software
10.1.7. Come tutto ha inizio
10.1.8. Concetti orientati agli oggetti
10.1.9. Introduzione a UML
10.2. Il processo del Software
10.2.1. Un modello generale di processo
10.2.2. Modelli di processo prescrittivi
10.2.3. Modelli di processo specializzati
10.2.4. Il processo unificato
10.2.5. Modelli di processo personali e di gruppo
10.2.6. Che cos'è l'agilità?
10.2.7. Che cos'è un processo agile?
10.2.8. Scrum
10.2.9. Kit di strumenti per i processi agili
10.3. Principi che guidano la pratica dell'ingegneria del software
10.3.1. Principi che guidano il processo
10.3.2. Principi che guidano la pratica
10.3.3. Principi di comunicazione
10.3.4. Principi di pianificazione
10.3.5. Principi di modellazione
10.3.6. Principi di costruzione
10.3.7. Principi di implementazione
10.4. Comprendere i requisiti
10.4.1. Ingegneria dei requisiti
10.4.2. Porre le basi
10.4.3. Indagine sui requisiti
10.4.4. Sviluppo di casi d'uso
10.4.5. Elaborazione del modello dei requisiti
10.4.6. Negoziazione dei requisiti
10.4.7. Convalida dei requisiti
10.5. Modellazione dei requisiti: scenari, informazioni e classi di analisi
10.5.1. Analisi dei requisiti
10.5.2. Modellazione basata su scenari
10.5.3. Modelli UML che forniscono il caso d'uso
10.5.4. Concetti di modellazione dei dati
10.5.5. Modellazione basata sulle classi
10.5.6. Diagrammi di classe
10.6. Modellazione dei requisiti: flusso, comportamento e modelli
10.6.1. Strategie di definizione dei requisiti
10.6.2. Modellazione orientata al flusso
10.6.3. Diagrammi di stato
10.6.4. Creare un modello comportamentale
10.6.5. Diagrammi di sequenza
10.6.6. Diagrammi di comunicazione
10.6.7. Schemi per la modellazione dei requisiti
10.7. Concetti di design
10.7.1. Il design nel contesto dell'ingegneria del software
10.7.2. Processo di progettazione
10.7.3. Concetti di design
10.7.4. Concetti di design orientati agli oggetti
10.7.5. Il modello di design
10.8. Design architettonico
10.8.1. Architettura del software
10.8.2. Generi architettonici
10.8.3. Stili architettonici
10.8.4. Design architettonico
10.8.5. Evoluzione dei design alternativi per l'architettura
10.8.6. Mappatura dell'architettura con l'uso di flussi di dati
10.9. Design a livello di componente e basato su pattern
10.9.1. Che cos'è un componente?
10.9.2. Design dei componenti basato sulle classi
10.9.3. Realizzazione del progetto a livello di componenti
10.9.4. Design dei componenti tradizionali
10.9.5. Sviluppo basato su componenti
10.9.6. Pattern di progettazione
10.9.7. Il design del software basato su modelli
10.9.8. Modelli architettonici
10.9.9. Modelli di design a livello di componenti
10.9.10. Modelli di design dell'interfaccia utente
10.10. Qualità del software e gestione dei progetti
10.10.1. Qualità del Software
10.10.2. Il dilemma della qualità del software
10.10.3. Raggiungere la qualità del software
10.10.4. Garanzia di qualità del software
10.10.5. Lo spettro amministrativo
10.10.6. Il personale
10.10.7. Il prodotto
10.10.8. Il processo
10.10.9. Il progetto
10.10.10. Principi e pratiche
Cogli l'opportunità di conoscere gli ultimi progressi in questo ambito e applicali al tuo lavoro quotidiano"
Master Semipresenziale in Sviluppo di Software
Nel mondo di oggi, la domanda di professionisti nel settore dell'informatica è in costante crescita. Le aziende cercano esperti in grado di progettare e creare soluzioni innovative che aumentino la loro competitività sul mercato. Per coloro che desiderano distinguersi in questo settore in continua evoluzione, TECH Global University offre il Master Semipresenziale in Sviluppo di Software. Questo programma, progettato da esperti del settore in collaborazione con accademici di spicco, combina la flessibilità dell'apprendimento online con l'esperienza pratica delle lezioni presenziali presso un centro specializzato. Le lezioni semipresenziali consentono agli studenti di accedere alla teoria comodamente da casa, mentre le pratiche di presenza offrono loro l'opportunità di applicare ciò che hanno imparato in un ambiente reale, sotto la guida di professionisti esperti. Questo post-laurea copre una vasta gamma di argomenti, dalle fondamenta della programmazione alle tecnologie più avanzate nello sviluppo di applicazioni e sistemi. Gli studenti impareranno a sviluppare software di qualità, seguendo le migliori pratiche del settore e utilizzando i più moderni strumenti disponibili.
Studia un post-laurea in Sviluppo di Software
Il nostro corpo docente è composto da esperti di sviluppo software con una solida esperienza pratica e conoscenze aggiornate sulle ultime tendenze del mercato. La sua esperienza nel settore assicura che gli studenti acquisiscano competenze rilevanti e siano preparati per affrontare le sfide del mondo reale. Oltre all'apprendimento in aula, TECH Global University offre agli studenti l'accesso a risorse aggiuntive come biblioteche virtuali e comunità di sviluppo, che arricchiscono la loro esperienza educativa e consentono di tenere il passo con le ultime innovazioni nel campo. Con il Master Semipresenziale in Sviluppo di Software, gli studenti saranno preparati a eccellere in un campo in continua evoluzione e contribuire allo sviluppo di soluzioni tecnologiche che promuovono il progresso in vari settori. Non perdere l'opportunità di far progredire la tua carriera e far parte della prossima generazione di esperti di sviluppo software.