Presentazioni

Un programma completo e 100% online, esclusivo di TECH e con una prospettiva internazionale supportata dalla nostra partnership con l'Association for Computing Machinery" 

In un ambiente tecnologico sempre più caratterizzato da automazione, intelligenza artificiale ed elaborazione del linguaggio naturale, capire come sono costruiti, interpretano e ottimizzano i linguaggi di calcolo è diventata una necessità chiave per avanzare in molteplici aree della conoscenza e dell'industria. L'interazione uomo-macchina, l'efficienza dei sistemi informatici e la creazione di nuovi strumenti digitali dipendono in larga misura dalla padronanza di questi linguaggi. 

Questo programma offre una visione completa dei pilastri su cui si basano l'informatica e i linguaggi di programmazione, consentendo di acquisire competenze specialistiche che potenziano il pensiero logico, la risoluzione di problemi complessi e la progettazione di soluzioni innovative. Vengono affrontate tematiche come la semantica formale, la teoria dei linguaggi, gli automi, la compilazione e altri elementi fondamentali per comprendere il funzionamento interno dei sistemi informatici. 

Inoltre, padroneggiare questi contenuti dà accesso a opportunità in settori altamente dinamici come l'intelligenza artificiale, lo sviluppo di linguaggi di programmazione, il calcolo quantistico o l'ingegneria del software. Questa specializzazione rappresenta un passo strategico per coloro che desiderano avanzare nella loro carriera in ambito accademico, tecnico o professionale, soprattutto nei contesti in cui sono valutati profili con una solida base teorica e capacità analitica. La profondità concettuale acquisita consente non solo di applicare le tecnologie esistenti, ma anche di progettare quelle future. 

La modalità online di questo programma consente l'accesso a contenuti aggiornati e di alto livello accademico da qualsiasi luogo, senza compromettere la qualità o le esigenze. Questa flessibilità facilita la compatibilità con altri progetti professionali o accademici e promuove un apprendimento autonomo, rigoroso e orientato all'analisi critica. Attraverso una piattaforma interattiva, materiali multimediali e l'accompagnamento di esperti, è garantita un'esperienza arricchente che risponde alle attuali esigenze del settore digitale e accademico.  Inoltre, un rinomato Direttore Ospite Internazionale offrirà 10 approfondite Master class. 

Inoltre, grazie al fatto che TECH è membro dell’Association for Computing Machinery (ACM), lo studente avrà accesso a risorse esclusive e aggiornate come pubblicazioni scientifiche, corsi specializzati e conferenze internazionali. Inoltre, avrà l'opportunità di ampliare la rete di contatti, connettendosi con esperti in tecnologia, intelligenza artificiale, data science e altre discipline chiave del settore.

Un prestigioso Direttore Ospite Internazionale offrirà 10 esclusive Master class sulle ultime tendenze in Informatica e Linguaggi di Programmazione”

Questo Master in Informatica e Linguaggi di Programmazione possiede il programma universitario più completo e aggiornato del mercato. Le sue caratteristiche principali sono:

  • Sviluppo di casi di studio presentati da esperti in Informatica e Linguaggi di Programmazione
  • Contenuti grafici, schematici ed eminentemente pratici che forniscono informazioni scientifiche e pratiche sulle discipline essenziali per l’esercizio della professione
  • Esercizi pratici che offrono un processo di autovalutazione per migliorare l'apprendimento
  • Particolare enfasi sulle metodologie innovative
  • Lezioni teoriche, domande all'esperto, forum di discussione su questioni controverse e compiti di riflessione individuale
  • Contenuti disponibili da qualsiasi dispositivo fisso o mobile dotato di connessione a internet

Approfondirai la teoria degli automi e dei linguaggi formali per capire come funzionano internamente i sistemi computazionali"

Il personale docente del programma comprende rinomati specialisti del settore e altre aree correlate, che forniscono agli studenti le competenze necessarie a intraprendere un percorso di studio eccellente.

I contenuti multimediali, sviluppati in base alle ultime tecnologie educative, forniranno al professionista un apprendimento coinvolgente e localizzato, ovvero inserito in un contesto reale.

La creazione di questo programma è incentrata sull’Apprendimento Basato su Problemi, mediante il quale lo specialista deve cercare di risolvere le diverse situazioni che gli si presentano durante il corso accademico. Lo studente potrà usufruire di un innovativo sistema di video interattivi creati da esperti di rinomata fama.

Gestirai strutture dati avanzate per sviluppare soluzioni efficienti, scalabili e orientate alle prestazioni"

Progetterai algoritmi sofisticati per risolvere problemi computazionali ad alta domanda in settori tecnologici chiave"

Piano di studi

In un contesto in cui i progressi nei linguaggi di programmazione, nella teoria degli automi e nella semantica formale stanno guidando lo sviluppo di nuove tecnologie, l'approfondimento di questi fondamenti è la chiave per innovare in aree come il calcolo quantistico, l'intelligenza artificiale e la sicurezza informatica. Pertanto, questo piano di studi integra contenuti aggiornati e strategicamente strutturati che consentono di comprendere la logica interna dei sistemi informatici. In questo modo si favorisce una visione critica e avanzata del funzionamento computazionale, in sintonia con le trasformazioni digitali che stanno ridefinendo gli standard dell'informatica a livello globale.

Progetterai e implementerai linguaggi di dominio specifico, adattati a specifiche esigenze tecniche"

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 di 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. 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. Progettazione 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 per le stringhe
1.6.5. Strutture: Unioni
1.6.6. Nuovi tipi di dati

1.7. Strutture dati dinamiche: puntatori

1.7.1. Concetto e 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 ricorsiva-iterativa
1.9.6. Lo stack di ricorsione

1.10. Test e documentazione

1.10.1. Test dei programmi
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 dei programmi

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 lista: definizione
2.3.2. Elenchi collegati e doppiamente collegati
2.3.3. Elenchi ordinati
2.3.4. Elenchi in C++
2.3.5. ADT pila
2.3.6. ADT coda
2.3.7. Pila e coda in C++

2.4. Strutture di dati gerarchiche

2.4.1. ADT albero
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. Insieme e coda di priorità

2.6.1. ADT heap
2.6.2. ADT coda di priorità

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 di grafi
2.8.3. Rappresentazione grafica e operazioni di base
2.8.4. Progettazione dei grafi

2.9. Algoritmi e concetti grafici avanzati

2.9.1. Problemi grafici
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 alle strategie 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 heap sort
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. Progettazione avanzata degli algoritmi

4.1. Analisi di algoritmi ricorsivi e divide et impera

4.1.1. Approccio e risoluzione di equazioni di ricorrenza omogenee e non omogenee
4.1.2. Panoramica della strategia divide et impera

4.2. Analisi ammortizzata

4.2.1. Analisi aggregata
4.2.2. Il metodo di contabilizzazione
4.2.3. Il metodo del potenziale

4.3. Programmazione dinamica e algoritmi per problemi NP

4.3.1. Caratteristiche della programmazione dinamica
4.3.2. Indietro nel tempo: backtracking
4.3.3. Ramificazione e potatura

4.4. Ottimizzazione combinatoria

4.4.1. Rappresentazione del problema
4.4.2. Ottimizzazione 1D

4.5. Algoritmi di randomizzazione

4.5.1. Esempi di algoritmi di randomizzazione
4.5.2. Il teorema di di Buffon
4.5.3. Algoritmo di Monte Carlo
4.5.4. Algoritmo di Las Vegas

4.6. Ricerca locale e di candidati

4.6.1. Gradient Ascent
4.6.2. Hill Climbing
4.6.3. Simulated Annealing
4.6.4. Tabu Search
4.6.5. Ricerca di candidati

4.7. Verifica formale dei programmi

4.7.1. Specifica delle astrazioni funzionali
4.7.2. Il linguaggio della logica del primo ordine
4.7.3. Sistema formale di Hoare

4.8. Verifica di programmi iterativi

4.8.1. Regole del sistema formale di Hoare
4.8.2. Concetto di iterazioni invarianti

4.9. Metodi numerici

4.9.1. Il metodo della bisezione
4.9.2. Il metodo Newton-Raphson
4.9.3. Il metodo della secante

4.10. Algoritmi paralleli

4.10.1. Operazioni binarie parallele
4.10.2. Operazioni in parallelo con i grafi
4.10.3. Parallelismo nel divide et impera
4.10.4. Parallelismo nella programmazione dinamica

Modulo 5. Programmazione avanzata

5.1. Introduzione alla programmazione orientata agli oggetti

5.1.1. Introduzione alla programmazione orientata agli oggetti
5.1.2. Progettazione delle lezioni
5.1.3. Introduzione a UML per la modellazione dei problemi

5.2. Relazioni tra classi

5.2.1. Astrazione ed ereditarietà
5.2.2. Concetti avanzati di ereditarietà
5.2.3. Polimorfismo
5.2.4. Composizione e aggregazione

5.3. Introduzione ai design pattern per i problemi orientati agli oggetti

5.3.1. Cosa sono i design pattern
5.3.2. Pattern factory
5.3.3. Pattern singleton
5.3.4. Pattern observer
5.3.5. Pattern composite

5.4. Eccezioni

5.4.1. Quali sono le eccezioni?
5.4.2. Gestione e acquisizione delle eccezioni
5.4.3. Avvio delle eccezioni
5.4.4. Creazione di eccezioni

5.5. Interfaccia utente

5.5.1. Introduzione a Qt
5.5.2. Posizionamento
5.5.3. Cosa sono gli eventi?
5.5.4. Eventi: definizione e acquisizione
5.5.5. Sviluppo di interfacce utente

5.6. Introduzione alla programmazione concorrente

5.6.1. Introduzione alla programmazione concorrente
5.6.2. Il concetto di processo e di thread
5.6.3. Interazione tra processi o thread
5.6.4. Thread in C++
5.6.5. Vantaggi e svantaggi della programmazione concorrente

5.7. Gestione e sincronizzazione dei thread

5.7.1. Ciclo di vita di un thread
5.7.2. La classe Thread
5.7.3. Pianificazione del thread
5.7.4. Gruppi di thread
5.7.5. Thread di tipo daemon
5.7.6. Sincronizzazione
5.7.7. Meccanismi di bloccaggio
5.7.8. Meccanismi di comunicazione
5.7.9. Monitor

5.8. Problemi comuni nella programmazione concorrente

5.8.1. Il problema dei produttori-consumatori
5.8.2. Il problema dei lettori e degli scrittori
5.8.3. Il problema della cena dei filosofi

5.9. Documentazione e test del software

5.9.1. Perché è importante documentare il software?
5.9.2. Documentazione di progettazione
5.9.3. Utilizzo di strumenti per la documentazione

5.10. Test di software

5.10.1. Introduzione al test del software
5.10.2. Tipi di test
5.10.3. Test dell'unità
5.10.4. Test di integrità
5.10.5. Test di convalida
5.10.6. Test del sistema

Modulo 6. Informatica teorica

6.1. Concetti matematici utilizzati
6.1.1. Introduzione alla logica proposizionale
6.1.2. Teoria delle relazioni
6.1.3. Set numerabili e non numerabili

6.2. Linguaggi formali e grammatiche e introduzione alle macchine di Turing

6.2.1. Linguaggi e grammatiche formali
6.2.2. Problema decisionale
6.2.3. La macchina di Turing

6.3. Estensioni per macchine di Turing, macchine di Turing vincolate e computer

6.3.1. Tecniche di programmazione per macchine di Turing
6.3.2. Estensioni per macchine di Turing
6.3.3. Macchine di Turing vincolate
6.3.4. Macchine di Turing e computer

6.4. Indecibilità

6.4.1. Linguaggio non ricorsivo enumerabile
6.4.2. Un problema indecidibile ricorsivamente enumerabile

6.5. Altri problemi indicibili

6.5.1. Problemi indecidibili per le macchine di Turing
6.5.2. Problema di post-corrispondenza (PCP)

6.6. Problemi intrattabili

6.6.1. Le classi P e NP
6.6.2. Un problema NP completo
6.6.3. Problema di soddisfacibilità ristretta
6.6.4. Altri problemi NP completi

6.7. Problemi co - NP e PSPACE

6.7.1. Complemento ai linguaggi NP
6.7.2. Problemi risolvibili nello spazio polinomiale
6.7.3. Problemi PSPACE completi

6.8. Classi di linguaggi basati sulla randomizzazione

6.8.1. Modello TM con casualità
6.8.2. Le classi RP e ZPP
6.8.3. Test di primalità
6.8.4. Complessità del test di primalità

6.9. Altre classi e grammatiche

6.9.1. Automi finiti probabilistici
6.9.2. Automi cellulari
6.9.3. Celle McCulloch e Pitts
6.9.4. Grammatiche di Lindenmayer

6.10. Sistemi informatici avanzati

6.10.1. Informatica di membrana: sistemi P
6.10.2. Informatica a DNA
6.10.3. Informatica quantistica

Modulo 7. Teoria degli automi e linguaggi formali

7.1. Introduzione alla teoria degli automi

7.1.1. Perché studiare la teoria degli automi?
7.1.2. Introduzione alle dimostrazioni formali
7.1.3. Altre forme di dimostrazione
7.1.4. Induzione matematica
7.1.5. Alfabeti, stringhe e lingue

7.2. Automi finiti deterministici

7.2.1. Introduzione agli automi finiti
7.2.2. Automi finiti deterministici

7.3. Automi finiti non deterministici

7.3.1. Automi finiti non deterministici
7.3.2. Equivalenza tra AFD e AFN
7.3.3. Automi finiti con transizioni

7.4. Linguaggi ed espressioni regolari (I)

7.4.1. Linguaggi ed espressioni regolari
7.4.2. Automi finiti ed espressioni regolari

7.5. Linguaggi ed espressioni regolari (II)

7.5.1. Conversione di espressioni regolari in automi
7.5.2. Applicazioni delle espressioni regolari
7.5.3. Algebra delle espressioni regolari

7.6. Pumping lemma e chiusura dei linguaggi regolari

7.6.1. Pumping lemma
7.6.2. Proprietà di chiusura dei linguaggi regolari

7.7. Equivalenza e minimizzazione degli automi

7.7.1. Equivalenza di AF
7.7.2. Minimizzazione di AF

7.8. Grammatiche indipendenti dal contesto (CIG)

7.8.1. Grammatiche indipendenti dal contesto
7.8.2. Alberi di derivazione
7.8.3. Applicazioni delle GIC
7.8.4. Ambiguità nelle grammatiche e nelle lingue

7.9. Automi a Pila e GIC

7.9.1. Definizione di automi a Pila
7.9.2. Lingue accettate da un automa a Pila
7.9.3. Equivalenza tra automi a Pila e automi GIC
7.9.4. Automatismo deterministico a Pila

7.10. Forme normali, schema di pumping GIC e proprietà delle LIC

7.10.1. Forme normali di GIC
7.10.2. Pumping lemma
7.10.3. Proprietà di chiusura dei linguaggi
7.10.4. Proprietà di decisioni dei LIC

Modulo 8. Processori linguistici

8.1. Introduzione al processo di compilazione

8.1.1. Compilazione e interpretazione
8.1.2. Ambiente di esecuzione del compilatore
8.1.3. Processo di analisi
8.1.4. Processo di sintesi

8.2. Analizzatore lessicale

8.2.1. Che cos'è un analizzatore lessicale?
8.2.2. Implementazione dell'analizzatore lessicale
8.2.3. Azioni semantiche
8.2.4. Recupero degli errori
8.2.5. Problemi di implementazione

8.3. Analisi sintattica

8.3.1. Che cos'è un parser?
8.3.2. Concetti preliminari
8.3.3. Parser top-down
8.3.4. Parser bottom-up

8.4. Parsing top-down e parsing bottom-up

8.4.1. Parser LL (1)
8.4.2. Parser LR (0)
8.4.3. Esempio di parser

8.5. Parsing avanzato bottom-up

8.5.1. Parser SLR
8.5.2. Parser LR (1)
8.5.3. Parser LR (k)
8.5.4. Parser LALR

8.6. Analisi semantica (I)

8.6.1. Traduzione guidata dalla sintassi
8.6.2. Tabella dei simboli

8.7. Analisi semantica (II)

8.7.1. Controllo del tipo
8.7.2. Il sottosistema dei tipi
8.7.3. Equivalenza dei tipi e conversioni

8.8. Generazione del codice e ambiente di esecuzione

8.8.1. Aspetti progettuali
8.8.2. Ambiente di esecuzione
8.8.3. Organizzazione della memoria
8.8.4. Allocazione della memoria

8.9. Generazione di codice intermedio

8.9.1. Traduzione diretta da sintassi
8.9.2. Rappresentazioni intermedie
8.9.3. Esempi di traduzioni

8.10. Ottimizzazione del codice

8.10.1. Allocazione dei registri
8.10.2. Eliminazione delle allocazioni morte
8.10.3. Esecuzione in tempo di compilazione
8.10.4. Riordino delle espressioni
8.10.5. Ottimizzazione del loop

Modulo 9. Computer grafica e visualizzazione

9.1. Teoria del colore

9.1.1. Proprietà della luce
9.1.2. Modelli a colori
9.1.3. Lo standard CIE
9.1.4. Profiling

9.2. Primitive di output

9.2.1. Il controller video
9.2.2. Algoritmi per il disegno di linee
9.2.3. Algoritmi per il disegno di cerchi
9.2.4. Algoritmi di riempimento

9.3. Trasformazioni 2D, sistemi di coordinate 2D e ritaglio 2D

9.3.1. Trasformazioni geometriche di base
9.3.2. Coordinate omogenee
9.3.3. Trasformazione inversa
9.3.4. Composizione delle trasformazioni
9.3.5. Altre trasformazioni
9.3.6. Cambio di coordinate
9.3.7. Sistemi di coordinate 2D
9.3.8. Cambio di coordinate
9.3.9. Standardizzazione
9.3.10. Algoritmi di ritaglio

9.4. Trasformazioni 3D

9.4.1. Traslazione
9.4.2. Rotazione
9.4.3. Scala
9.4.4. Riflessione
9.4.5. Cesoia

9.5. Visualizzazione e modifica delle coordinate 3D

9.5.1. Sistemi di coordinate 3D
9.5.2. Visualizzazione
9.5.3. Cambio di coordinate
9.5.4. Proiezione e standardizzazione

9.6. Proiezione e taglio 3D

9.6.1. Proiezione ortogonale
9.6.2. Proiezione parallela obliqua
9.6.3. Proiezione prospettica
9.6.4. Algoritmi di ritaglio 3D

9.7. Rimozione di superfici nascoste

9.7.1. Back - face removal
9.7.2. Z - buffer
9.7.3. Algoritmo del pittore
9.7.4. Algoritmo di Warnock
9.7.5. Rilevamento delle linee nascoste

9.8. Interpolazione e curve parametriche

9.8.1. Interpolazione e approssimazione polinomiale
9.8.2. Rappresentazione parametrica
9.8.3. Polinomio di Lagrange
9.8.4. Spline cubiche naturali
9.8.5. Funzioni base
9.8.6. Rappresentazione della matrice

9.9. Curve di Bézier

9.9.1. Costruzione algebrica
9.9.2. Forma a matrice
9.9.3. Composizione
9.9.4. Costruzione geometrica
9.9.5. Algoritmo di disegno

9.10. B - splines

9.10.1. Il problema del controllo locale
9.10.2. B - splines cubiche uniformi
9.10.3. Funzioni di base e punti di controllo
9.10.4. Deriva all'origine e molteplicità
9.10.5. Rappresentazione della matrice
9.10.6. B - splines non uniformi

Modulo 10. Computazione bio-ispirata

10.1. Introduzione alla computazione bio-ispirata

10.1.1. Introduzione alla computazione bio-ispirata

10.2. Algoritmi di adattamento sociale

10.2.1. Computazione bio-ispirata basata su colonie di formiche
10.2.2. Varianti degli algoritmi di colonia di formiche
10.2.3. Elaborazione particellare basata su cloud

10.3. Algoritmi genetici

10.3.1. Struttura generale
10.3.2. Implementazioni dei principali operatori

10.4. Strategie spaziali di esplorazione e sfruttamento per algoritmi genetici

10.4.1. Algoritmo CHC
10.4.2. Problemi multimodali

10.5. Modelli di computazione evolutiva (I)

10.5.1. Strategie evolutive
10.5.2. Programmazione evolutiva
10.5.3. Algoritmi basati sull'evoluzione differenziale

10.6. Modelli di computazione evolutiva (II)

10.6.1. Modelli evolutivi basati sulla stima delle distribuzioni (EDA)
10.6.2. Programmazione genetica

10.7. Programmazione evolutiva applicata ai problemi di apprendimento

10.7.1. Apprendimento basato sulle regole
10.7.2. Metodi evolutivi nei problemi di selezione delle istanze

10.8. Problemi multi-obiettivo

10.8.1. Concetto di dominanza
10.8.2. Applicazione degli algoritmi evolutivi ai problemi multi-obiettivo

10.9. Reti neuronali (I)

10.9.1. Introduzione alle reti neurali
10.9.2. Esempio pratico con le reti neurali

10.10. Reti neuronali (II)

10.10.1. Casi di utilizzo delle reti neurali nella ricerca medica
10.10.2. Casi di utilizzo delle reti neurali in economia
10.10.3. Casi di utilizzo delle reti neurali nella visione artificiale 

Cogli l'opportunità di conoscere gli ultimi progressi in questo ambito e applicali al tuo lavoro quotidiano"

Master in Informatica e Linguaggi di Programmazione

Il settore dell'informatica, rispetto ad altri ambiti accademici e lavorativi, ha raggiunto un'egemonia così essenziale che praticamente tutti gli aspetti che circondano la vita contemporanea sono intrinsecamente legati agli algoritmi e ai processi dell'informatica; dalla sicurezza informatica che protegge i nostri soldi virtuali, attraverso l'e-mail che inviamo al capo, alla notifica di "match" in app come Tinder. Perché non scommettere allora sul miglioramento delle nostre capacità informatiche? Il Master in Informatica e Linguaggi di Programmazione offerto da TECH Global University è quel plus necessario per fare un salto competitivo nel mercato, sia per l'innovazione imprenditoriale che per accedere a posizioni più gratificanti nel campo del lavoro tradizionale. Ti piacerebbe diventare il prossimo Tim Berners-Lee, padre del World Wide Web e del codice HTML? In TECH puoi raggiungere questo obiettivo con classi virtuali e flessibili al 100%, un personale docente altamente qualificato e un piano di studi arricchito dalle ultime tecnologie multimediali, dove approfondirai linguaggi di programmazione e reti neurali per la visione artificiale. Questa è un'opportunità da non perdere.

Ottieni una qualifica online in Informatica e Linguaggi di Programmazione

Secondo i dati della Banca Mondiale, nei prossimi cinque anni nel mondo verranno creati 149 milioni di nuovi posti di lavoro legati alla programmazione e allo sviluppo di software, il che significa un aumento considerevole della ricerca di professionisti della tecnologia e dell'informatica che possiedano forti competenze e conoscenza specializzata. Accedendo al nostro Master potrai acquisire un profilo di categoria superiore istruendoti su argomenti come: progettazione avanzata di algoritmi, struttura dei dati, calcolo basato su nuvole di particelle, programmazione dinamica per problemi NP, ecc... Abbiamo le ultime novità in materia di telematica e metodologie didattiche per rendere la tua esperienza coinvolgente, dinamica ed efficiente. Iscriviti in TECH ed eleva la tua carriera a livelli che superano le tue aspettative.