Italo EPICOCO

Italo EPICOCO

Ricercatore Universitario

Settore Scientifico Disciplinare ING-INF/05: SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI.

Dipartimento di Ingegneria dell'Innovazione

Centro Ecotekne Pal. O - S.P. 6, Lecce - Monteroni - LECCE (LE)

Ufficio, Piano terra

Telefono +39 0832 29 7304 +39 0832 29 7235

Area di competenza:

Ricercatore nel settore disciplinare ING-INF05 "Sistemi di elaborazione delle informazioni"
Attività di ricerca svolta nell'ambito del data mining, calcolo ad alte prestazioni, calcolo parallelo e distribuito

Orario di ricevimento

Lunedi' dalle 9.30 alle 12.30 previo appuntamento concordato tramite email  presso lo studio al secondo piano edificio "La Stecca" - Facoltà di Ingegneria - campus Ecotekne - Lecce

Recapiti aggiuntivi

office: +39 0832.29.7235
HPC Lab: +39 0832 297304
fax: +39 0832.29.7235

Visualizza QR Code Scarica la Visit Card

Curriculum Vitae

Italo Epicoco ha conseguito la laurea in Ingegneria Informatica nel febbraio 1998 presso il Politecnico di Milano.

Per tutto il 1998 ha lavorato presso i laboratori di ricerca del Politecnico di Milano per lo studio di metodologie di progettazione di circuiti VLSI orientata alla testablità e alla sintesi ottimale.

Dal dicembre 2002 ha assunto la posizione di ricercatore presso l’Università del Salento. Nel giugno 2003 ha conseguito il titolo di dottore di ricerca presso l’ISUFI di Lecce. Dal dicembre 2002 e' membro della Computer Society - IEEE

I principali ambiti di ricerca in cui è coinvolto riguardano lo studio delle problematiche relative al calcolo parallelo e distribuito ed in particolare alle problematiche relative alla gestione di risorse eterogenee in ambienti di Grid Computing ed ambienti collaborativi. Di particolare interesse risulta l'attivita' svolta nell'ambito del Centro Euromediterraneo per i Cambiamenti Climatici per l'ottimizzazione, parallelizzazione e benchmarking di modelli climatici su piattaforme massicciamente parallele. Durante la sua carriera ha pubblicato oltre 30 articoli su riviste internazionali, e’ stato autore di 3 book chapter

Scarica curriculum vitae

Didattica

A.A. 2023/2024

Data Mining

Corso di laurea DATA SCIENCE PER LE SCIENZE UMANE E SOCIALI

Tipo corso di studio Laurea Magistrale

Lingua ITALIANO

Crediti 10.0

Ripartizione oraria Ore totali di attività frontale: 60.0

Anno accademico di erogazione 2023/2024

Per immatricolati nel 2023/2024

Anno di corso 1

Struttura DIPARTIMENTO DI SCIENZE UMANE E SOCIALI

Percorso Human and Social Data

Data Mining

Corso di laurea DATA SCIENCE PER LE SCIENZE UMANE E SOCIALI

Tipo corso di studio Laurea Magistrale

Lingua ITALIANO

Crediti 9.0

Ripartizione oraria Ore totali di attività frontale: 54.0

Anno accademico di erogazione 2023/2024

Per immatricolati nel 2023/2024

Anno di corso 1

Struttura DIPARTIMENTO DI SCIENZE UMANE E SOCIALI

Percorso Data Analytics

FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE

Corso di laurea INGEGNERIA DELL' INFORMAZIONE: ELETTRONICA, INFORMATICA E TELECOMUNICAZIONI

Tipo corso di studio Laurea

Lingua ITALIANO

Crediti 9.0

Docente titolare Italo EPICOCO

Ripartizione oraria Ore totali di attività frontale: 81.0

  Ore erogate dal docente Italo EPICOCO: 54.0

Anno accademico di erogazione 2023/2024

Per immatricolati nel 2023/2024

Anno di corso 1

Struttura DIPARTIMENTO DI INGEGNERIA DELL'INNOVAZIONE

Percorso Percorso comune

Sede Lecce

FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE

Corso di laurea INGEGNERIA INFORMATICA

Tipo corso di studio Laurea

Lingua ITALIANO

Crediti 9.0

Docente titolare Italo EPICOCO

Ripartizione oraria Ore totali di attività frontale: 81.0

  Ore erogate dal docente Italo EPICOCO: 54.0

Anno accademico di erogazione 2023/2024

Per immatricolati nel 2023/2024

Anno di corso 1

Struttura DIPARTIMENTO DI INGEGNERIA DELL'INNOVAZIONE

Percorso Percorso comune

Sede Lecce

A.A. 2022/2023

ARTIFICIAL INTELLIGENCE APPLICATIONS

Degree course COMPUTER ENGINEERING

Course type Laurea Magistrale

Language INGLESE

Credits 9.0

Teaching hours Ore totali di attività frontale: 81.0

Year taught 2022/2023

For matriculated on 2021/2022

Course year 2

Structure DIPARTIMENTO DI INGEGNERIA DELL'INNOVAZIONE

Subject matter ARTIFICIAL INTELLIGENCE

Location Lecce

FONDAMENTI DI INFORMATICA

Corso di laurea INGEGNERIA DELL'INFORMAZIONE

Tipo corso di studio Laurea

Lingua ITALIANO

Crediti 9.0

Ripartizione oraria Ore totali di attività frontale: 81.0

Anno accademico di erogazione 2022/2023

Per immatricolati nel 2022/2023

Anno di corso 1

Struttura DIPARTIMENTO DI INGEGNERIA DELL'INNOVAZIONE

Percorso PERCORSO COMUNE

Sede Lecce

A.A. 2021/2022

FONDAMENTI DI INFORMATICA

Corso di laurea INGEGNERIA DELL'INFORMAZIONE

Tipo corso di studio Laurea

Lingua ITALIANO

Crediti 9.0

Ripartizione oraria Ore totali di attività frontale: 81.0

Anno accademico di erogazione 2021/2022

Per immatricolati nel 2021/2022

Anno di corso 1

Struttura DIPARTIMENTO DI INGEGNERIA DELL'INNOVAZIONE

Percorso PERCORSO COMUNE

Sede Lecce

MOBILE APPLICATIONS DEVELOPMENT

Degree course DIGITAL HUMANITIES

Course type Laurea Magistrale

Language INGLESE

Credits 6.0

Teaching hours Ore totali di attività frontale: 42.0

Year taught 2021/2022

For matriculated on 2021/2022

Course year 1

Structure DIPARTIMENTO DI BENI CULTURALI

Subject matter COMUNE/GENERICO

A.A. 2020/2021

FONDAMENTI DI INFORMATICA I

Corso di laurea INGEGNERIA DELL'INFORMAZIONE

Tipo corso di studio Laurea

Lingua ITALIANO

Crediti 6.0

Ripartizione oraria Ore totali di attività frontale: 54.0

Anno accademico di erogazione 2020/2021

Per immatricolati nel 2020/2021

Anno di corso 1

Struttura DIPARTIMENTO DI INGEGNERIA DELL'INNOVAZIONE

Percorso PERCORSO COMUNE

Sede Lecce

MOBILE APPLICATIONS DEVELOPMENT

Degree course DIGITAL HUMANITIES

Course type Laurea Magistrale

Language INGLESE

Credits 6.0

Teaching hours Ore totali di attività frontale: 42.0

Year taught 2020/2021

For matriculated on 2020/2021

Course year 1

Structure DIPARTIMENTO DI BENI CULTURALI

Subject matter COMUNE/GENERICO

A.A. 2019/2020

FONDAMENTI DI INFORMATICA I

Corso di laurea INGEGNERIA DELL'INFORMAZIONE

Tipo corso di studio Laurea

Lingua ITALIANO

Crediti 6.0

Ripartizione oraria Ore totali di attività frontale: 54.0

Anno accademico di erogazione 2019/2020

Per immatricolati nel 2019/2020

Anno di corso 1

Struttura DIPARTIMENTO DI INGEGNERIA DELL'INNOVAZIONE

Percorso PERCORSO COMUNE

Sede Lecce

MOBILE APPLICATIONS DEVELOPMENT

Degree course EUROPEAN HERITAGE, DIGITAL MEDIA AND THE INFORMATION SOCIETY

Course type Laurea Magistrale

Language INGLESE

Credits 6.0

Teaching hours Ore totali di attività frontale: 42.0

Year taught 2019/2020

For matriculated on 2019/2020

Course year 1

Structure DIPARTIMENTO DI BENI CULTURALI

Subject matter INTERNAZIONALE

A.A. 2018/2019

FONDAMENTI DI INFORMATICA

Corso di laurea INGEGNERIA DELL'INFORMAZIONE

Tipo corso di studio Laurea

Lingua ITALIANO

Crediti 7.0

Docente titolare Italo EPICOCO

Ripartizione oraria Ore totali di attività frontale: 63.0

  Ore erogate dal docente Italo EPICOCO: 54.0

Anno accademico di erogazione 2018/2019

Per immatricolati nel 2018/2019

Anno di corso 1

Struttura DIPARTIMENTO DI INGEGNERIA DELL'INNOVAZIONE

Percorso PERCORSO COMUNE

Sede Lecce

INFORMATICA DI BASE

Corso di laurea LETTERE

Tipo corso di studio Laurea

Lingua ITALIANO

Crediti 6.0

Ripartizione oraria Ore totali di attività frontale: 30.0

Anno accademico di erogazione 2018/2019

Per immatricolati nel 2016/2017

Anno di corso 3

Struttura DIPARTIMENTO DI STUDI UMANISTICI

Percorso PERCORSO COMUNE

MOBILE APPLICATIONS DEVELOPMENT

Degree course EUROPEAN HERITAGE, DIGITAL MEDIA AND THE INFORMATION SOCIETY

Course type Laurea Magistrale

Language INGLESE

Credits 6.0

Teaching hours Ore totali di attività frontale: 42.0

Year taught 2018/2019

For matriculated on 2018/2019

Course year 1

Structure DIPARTIMENTO DI BENI CULTURALI

Subject matter INTERNAZIONALE

Torna all'elenco
INTELLIGENZA ARTIFICIALE APPLICATA

Corso di laurea INGEGNERIA INFORMATICA

Settore Scientifico Disciplinare ING-INF/05

Tipo corso di studio Laurea

Crediti 6.0

Ripartizione oraria Ore totali di attività frontale: 54.0

Per immatricolati nel 2023/2024

Anno accademico di erogazione 2025/2026

Anno di corso 3

Semestre Secondo Semestre (dal 04/03/2026 al 14/06/2026)

Lingua ITALIANO

Percorso Percorso comune (999)

Sede Lecce

INTELLIGENZA ARTIFICIALE APPLICATA (ING-INF/05)
Data Mining

Corso di laurea DATA SCIENCE PER LE SCIENZE UMANE E SOCIALI

Settore Scientifico Disciplinare ING-INF/05

Tipo corso di studio Laurea Magistrale

Crediti 10.0

Ripartizione oraria Ore totali di attività frontale: 60.0

Per immatricolati nel 2023/2024

Anno accademico di erogazione 2023/2024

Anno di corso 1

Semestre Secondo Semestre (dal 04/03/2024 al 07/06/2024)

Lingua ITALIANO

Percorso Human and Social Data (A235)

E preferibile la conoscenza di base di teoria della probabilita

Il corso fornisce un'introduzione al data mining, che comprende tecniche, algoritmi e metodologie per scoprire strutture, schemi e relazioni in insiemi di dati (tipicamente di grandi dimensioni) e fare previsioni. Le applicazioni del data mining sono già presenti intorno a noi; per esempio, come funziona la ricerca web di Google? Come fa Shazam a riconoscere una canzone? Come fa Netflix a consigliare i film ai suoi utenti? I principi del data mining forniscono risposte a queste e altre domande. Il data mining si sovrappone ai campi dell'informatica, dell'apprendimento statistico e delle basi di dati. Il corso mira a fornire agli studenti le conoscenze necessarie per esplorare, analizzare e sfruttare i dati disponibili al fine di trasformarli in informazioni preziose e utilizzabili per un'azienda, ad esempio per facilitare un processo decisionale.

Il corso descrive metodi e modelli per l'analisi di grandi quantità di dati.

Gli studenti acquisiranno un solido background con un ampio spettro di conoscenze di base relative al data mining.

Acquisiranno gli strumenti cognitivi di base per pensare in modo analitico, creativo e critico, e avranno le capacità di astrazione e di risoluzione dei problemi necessarie per affrontare sistemi complessi.

Acquisiranno una solida conoscenza dei modelli e delle metodologie di data mining.

Gli studneti saranno in grado di lavorare su grandi raccolte di dati, anche eterogenei e prodotti ad alta velocità, per effettuare analisi tematiche approfondite, attingendo a queste conoscenze per migliorare il processo decisionale.

Lezioni frontali con l'utilizzo di diapositive messe a disposizione degli studenti ed esercitazioni in classe

La prova d'esame consite in una discussone orale durante la quale si attesta l'acquisizione da parte dello studente dei contenuti del corso

Mining of Massive Datasets 

J. Leskovec, A. Rajaraman and J. Ullman

Freely availableonline: http://www.mmds.org

 

Data Mining and Analysis

M. J. Zaki and W. Meira

Freely available online: https://dataminingbook.info

Data Mining (ING-INF/05)
Data Mining

Corso di laurea DATA SCIENCE PER LE SCIENZE UMANE E SOCIALI

Settore Scientifico Disciplinare ING-INF/05

Tipo corso di studio Laurea Magistrale

Crediti 9.0

Ripartizione oraria Ore totali di attività frontale: 54.0

Per immatricolati nel 2023/2024

Anno accademico di erogazione 2023/2024

Anno di corso 1

Semestre Secondo Semestre (dal 04/03/2024 al 07/06/2024)

Lingua ITALIANO

Percorso Data Analytics (A236)

E preferibile la conoscenza di base di teoria della probabilita

Il corso fornisce un'introduzione al data mining, che comprende tecniche, algoritmi e metodologie per scoprire strutture, schemi e relazioni in insiemi di dati (tipicamente di grandi dimensioni) e fare previsioni. Le applicazioni del data mining sono già presenti intorno a noi; per esempio, come funziona la ricerca web di Google? Come fa Shazam a riconoscere una canzone? Come fa Netflix a consigliare i film ai suoi utenti? I principi del data mining forniscono risposte a queste e altre domande. Il data mining si sovrappone ai campi dell'informatica, dell'apprendimento statistico e delle basi di dati. Il corso mira a fornire agli studenti le conoscenze necessarie per esplorare, analizzare e sfruttare i dati disponibili al fine di trasformarli in informazioni preziose e utilizzabili per un'azienda, ad esempio per facilitare un processo decisionale.

Il corso descrive metodi e modelli per l'analisi di grandi quantità di dati.

Gli studenti acquisiranno un solido background con un ampio spettro di conoscenze di base relative al data mining.

Acquisiranno gli strumenti cognitivi di base per pensare in modo analitico, creativo e critico, e avranno le capacità di astrazione e di risoluzione dei problemi necessarie per affrontare sistemi complessi.

Acquisiranno una solida conoscenza dei modelli e delle metodologie di data mining.

Gli studneti saranno in grado di lavorare su grandi raccolte di dati, anche eterogenei e prodotti ad alta velocità, per effettuare analisi tematiche approfondite, attingendo a queste conoscenze per migliorare il processo decisionale.

Lezioni frontali con l'utilizzo di diapositive messe a disposizione degli studenti ed esercitazioni in classe

La prova d'esame consite in una discussone orale durante la quale si attesta l'acquisizione da parte dello studente dei contenuti del corso

Mining of Massive Datasets 

J. Leskovec, A. Rajaraman and J. Ullman

Freely availableonline: http://www.mmds.org

 

Data Mining and Analysis

M. J. Zaki and W. Meira

Freely available online: https://dataminingbook.info

Data Mining (ING-INF/05)
FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE

Corso di laurea INGEGNERIA DELL' INFORMAZIONE: ELETTRONICA, INFORMATICA E TELECOMUNICAZIONI

Settore Scientifico Disciplinare ING-INF/05

Tipo corso di studio Laurea

Crediti 9.0

Docente titolare Italo EPICOCO

Ripartizione oraria Ore totali di attività frontale: 81.0

  Ore erogate dal docente Italo EPICOCO: 54.0

Per immatricolati nel 2023/2024

Anno accademico di erogazione 2023/2024

Anno di corso 1

Semestre Primo Semestre (dal 18/09/2023 al 22/12/2023)

Lingua ITALIANO

Percorso Percorso comune (999)

Sede Lecce

Non vi è alcuna propedeuticità.

Il corso mira a fornire sia elementi di teoria dell’informatica che i principi e le basi per la programmazione. Partendo dal concetto di macchina programmabile in grado di svolgere operazioni seguendo una sequenza codificata di istruzioni elementari si passa alla strutturazione di un algoritmo e quindi alla competenze che permettono di scomporre un problema “complesso” per la macchina in una sequenza di operazioni “elementari”. Durante il corso verranno inoltre studiati gli algoritmi di ordinamento e di ricerca più noti con l’obiettivo di illustrare come differenti scelte nella risoluzione di uno stesso problema possano incidere sull’efficienza di un algoritmo e sui tempi di esecuzione al calcolatore. Si affornteranno infine elementi sull'architettura dei calcolatori.

Strutturare i dati in modo opportuno è uno dei principali fattori che influenzano l’efficienza di un algoritmo. Durante il corso si studieranno le strutture dati base quali le liste. Infine il corso fornirà gli strumenti per lo sviluppo di applicazioni attraverso ambienti di programmazione integrati IDE utilizzando il linguaggio C e alcuni cenni sull’analisi della complessità computazionale degli algoritmi.

Conoscenze e comprensione
I risultati attesi di apprendimento prevedono che al termine del corso gli studenti siano in grado di:

1) illustrare le principali caratteristiche dell’architettura di un calcolatore;
2) comprendere le metodologie di rappresentazione e codifica dell’informazione;
3) progettare e implementare un algoritmo;
4) riconoscere ed applicare gli elementi caratterizzanti un linguaggio di programmazione procedurale strutturato (tipi dato, strutture di controllo, funzioni e procedure, gestione dei file e strutture dinamiche);
5) riconoscere le principali strutture dati dinamiche (liste, code, alberi) e i principali algoritmi di oridnamento e di ricerca;
6) analizzare, interpretare, comprendere e produrre listati di codice in linguaggio C utilizzando degli appositi ambienti di programmazione (IDE).
7) comprendere l'architettura hardware dei calcolatori

Capacità di applicare conoscenze e comprensione
Gli studenti saranno in grado di applicare le conoscenze acquisite in diversi ambiti appicativi ed in generale per la risoluzione al computer di processi e sistemi. 

Autonomia di giudizio
Il corso favorisce l'autonomia di giudizio degli studenti attraverso l'analisi critica di problemi computazionali per i quali trovare soluzioni software in grado di risolverlo. Diverse soluzioni proposte dagli studenti sono poste a confronto e valutate criticamente dagli studenti stessi.

Abilità comunicative
È fondamentale che gli studenti siano in grado di comunicare con un pubblico vario e composito, non omogeneo culturalmente, in modo chiaro, logico ed efficace, utilizzando gli strumenti metodologici acquisiti e le loro conoscenze scientifiche e, in particolar modo, il lessico di specialità.
Il corso favorisce lo sviluppo delle abilità inerenti le capacità di esporre in termini precisi e formali le proprietà e le caratteristiche di aloritmi e la descrizione di possibili soluzioni algoritmiche a problemi reali.

Le lezioni teoriche si svolgeranno in aula utilizzando slide con esempi alla lavagna. Le esercitazioni si svolgeranno in laboratorio informatico con esercizi svolti direttamente al computer inerenti la programmazione in linguaggio C.

Le lezioni saranno inoltre registrate sulla piattaforma Microsoft Teams

 

Le slide del corso saranno disponibili sulla piattaforma formazioneonline all'indirizzo: https://formazioneonline.unisalento.it/course/view.php?id=717
Utilizzare le proprie credenziali di ateneo per accedere alla piattaforma formazioneonline; successivamente si usi la password "fondainfo1" per accedere ai contenuti del corso di Fondamenti di Informatica I

 

L’esame è composto da una prova scritta durante la quale si verificheranno le capacità acquisite nella progettazione di un algoritmo, nel riconoscimento delle principali strutture dati e degli algoritmi di base visti a lezione e nell'analisi della complessità computazionale di un algoritmo oltre agli aspetti teorici affrontati nel corso. Durante la prova scritta non sarà consentito l’uso di manuali nè altro materiale di supporto.

Oltre alla prova scritta ci sarà una prova orale/programmazione alla quale si accede solo dopo aver superato la prova scritta. Durante la prova di programmazione verrà valutata la capacità pratica nello sviluppare un semplice programma eseguibile al calcolatore in linguaggio C. La prova di programmazione dura 1 ora, il programma realizzato durante la prova di programmazione verra’ quindi discusso appena terminata la prova. Durante la prova di programmazione si può usare il proprio computer e tutti i manuali e le fonti online utili a risolvere l’esercizio assegnato.

Le date degli appelli d'esame sono disponibili al seguente link: calendario esami di profitto

- Architettura di Von Neumann, concetto di algoritmo, macchina astratta (4 ore)
- Rapresentazione delle informazioni (10 ore)
- Porte logiche e algebra booleana (2 ore)
- Reti combinatorie (4ore)
- Bistabili e reti sequenziali (4 ore)
- Processore e unità aritmetico-logica (4 ore)
- Gerarchia della memoria (4 ore)
- Pipeline e parallelismo a livello di istruzione (4 ore)
- Strutturare un algoritmo (6 ore)
- Costrutti del linguaggio C, variabili e tipi di dato, funzioni, array puntatori e gestione dinamica della memoria (15 ore)
- Funzioni ricorsive (4 ore)
- Tipi di dato astratto: Pila, Coda, Lista, Heap Tree (8 ore)
- Cenni su analisi della complessità computazionale (4 ore)
- Algoritmi di ordinamento: insertion sort, selection sort, bubble sort, merge sort, quick sort, heap sort (8 ore)

[1] B. W. Kernighan, D. M. Ritchie, “Il linguaggio C. Principi di programmazione e manuale di riferimento. Ediz. MyLab. Con Contenuto digitale per download e accesso on line”, ISBN-13: 978-8891908230
[2] Dino Mandrioli, Stefano Ceri, Licia Sbattella, Paolo Cremonesi, Gianpaolo Cugola, “Informatica: Arte e Mestiere  4° Ed.”, McGraw-Hill,, 2014. ISBN: 9788838668487.
[3] Dispense fornite dal docente presenti nellap piattaforma formazioneonline (si rimanda alla sezione "metodi didattici" per l'indicazione del link alla piattaforma)

FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE (ING-INF/05)
FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE

Corso di laurea INGEGNERIA INFORMATICA

Settore Scientifico Disciplinare ING-INF/05

Tipo corso di studio Laurea

Crediti 9.0

Docente titolare Italo EPICOCO

Ripartizione oraria Ore totali di attività frontale: 81.0

  Ore erogate dal docente Italo EPICOCO: 54.0

Per immatricolati nel 2023/2024

Anno accademico di erogazione 2023/2024

Anno di corso 1

Semestre Primo Semestre (dal 18/09/2023 al 22/12/2023)

Lingua ITALIANO

Percorso Percorso comune (999)

Sede Lecce

Non vi è alcuna propedeuticità.

Il corso mira a fornire sia elementi di teoria dell’informatica che i principi e le basi per la programmazione. Partendo dal concetto di macchina programmabile in grado di svolgere operazioni seguendo una sequenza codificata di istruzioni elementari si passa alla strutturazione di un algoritmo e quindi alla competenze che permettono di scomporre un problema “complesso” per la macchina in una sequenza di operazioni “elementari”. Durante il corso verranno inoltre studiati gli algoritmi di ordinamento e di ricerca più noti con l’obiettivo di illustrare come differenti scelte nella risoluzione di uno stesso problema possano incidere sull’efficienza di un algoritmo e sui tempi di esecuzione al calcolatore. Si affornteranno infine elementi sull'architettura dei calcolatori.

Strutturare i dati in modo opportuno è uno dei principali fattori che influenzano l’efficienza di un algoritmo. Durante il corso si studieranno le strutture dati base quali le liste. Infine il corso fornirà gli strumenti per lo sviluppo di applicazioni attraverso ambienti di programmazione integrati IDE utilizzando il linguaggio C e alcuni cenni sull’analisi della complessità computazionale degli algoritmi.

Conoscenze e comprensione
I risultati attesi di apprendimento prevedono che al termine del corso gli studenti siano in grado di:

1) illustrare le principali caratteristiche dell’architettura di un calcolatore;
2) comprendere le metodologie di rappresentazione e codifica dell’informazione;
3) progettare e implementare un algoritmo;
4) riconoscere ed applicare gli elementi caratterizzanti un linguaggio di programmazione procedurale strutturato (tipi dato, strutture di controllo, funzioni e procedure, gestione dei file e strutture dinamiche);
5) riconoscere le principali strutture dati dinamiche (liste, code, alberi) e i principali algoritmi di oridnamento e di ricerca;
6) analizzare, interpretare, comprendere e produrre listati di codice in linguaggio C utilizzando degli appositi ambienti di programmazione (IDE).
7) comprendere l'architettura hardware dei calcolatori

Capacità di applicare conoscenze e comprensione
Gli studenti saranno in grado di applicare le conoscenze acquisite in diversi ambiti appicativi ed in generale per la risoluzione al computer di processi e sistemi. 

Autonomia di giudizio
Il corso favorisce l'autonomia di giudizio degli studenti attraverso l'analisi critica di problemi computazionali per i quali trovare soluzioni software in grado di risolverlo. Diverse soluzioni proposte dagli studenti sono poste a confronto e valutate criticamente dagli studenti stessi.

Abilità comunicative
È fondamentale che gli studenti siano in grado di comunicare con un pubblico vario e composito, non omogeneo culturalmente, in modo chiaro, logico ed efficace, utilizzando gli strumenti metodologici acquisiti e le loro conoscenze scientifiche e, in particolar modo, il lessico di specialità.
Il corso favorisce lo sviluppo delle abilità inerenti le capacità di esporre in termini precisi e formali le proprietà e le caratteristiche di aloritmi e la descrizione di possibili soluzioni algoritmiche a problemi reali.

Le lezioni teoriche si svolgeranno in aula utilizzando slide con esempi alla lavagna. Le esercitazioni si svolgeranno in laboratorio informatico con esercizi svolti direttamente al computer inerenti la programmazione in linguaggio C.

Le lezioni saranno inoltre registrate sulla piattaforma Microsoft Teams

 

Le slide del corso saranno disponibili sulla piattaforma formazioneonline all'indirizzo: https://formazioneonline.unisalento.it/course/view.php?id=717
Utilizzare le proprie credenziali di ateneo per accedere alla piattaforma formazioneonline; successivamente si usi la password "fondainfo1" per accedere ai contenuti del corso di Fondamenti di Informatica I

 

L’esame è composto da una prova scritta durante la quale si verificheranno le capacità acquisite nella progettazione di un algoritmo, nel riconoscimento delle principali strutture dati e degli algoritmi di base visti a lezione e nell'analisi della complessità computazionale di un algoritmo oltre agli aspetti teorici affrontati nel corso. Durante la prova scritta non sarà consentito l’uso di manuali nè altro materiale di supporto.

Oltre alla prova scritta ci sarà una prova orale/programmazione alla quale si accede solo dopo aver superato la prova scritta. Durante la prova di programmazione verrà valutata la capacità pratica nello sviluppare un semplice programma eseguibile al calcolatore in linguaggio C. La prova di programmazione dura 1 ora, il programma realizzato durante la prova di programmazione verra’ quindi discusso appena terminata la prova. Durante la prova di programmazione si può usare il proprio computer e tutti i manuali e le fonti online utili a risolvere l’esercizio assegnato.

Le date degli appelli d'esame sono disponibili al seguente link: calendario esami di profitto

- Architettura di Von Neumann, concetto di algoritmo, macchina astratta (4 ore)
- Rapresentazione delle informazioni (10 ore)
- Porte logiche e algebra booleana (2 ore)
- Reti combinatorie (4ore)
- Bistabili e reti sequenziali (4 ore)
- Processore e unità aritmetico-logica (4 ore)
- Gerarchia della memoria (4 ore)
- Pipeline e parallelismo a livello di istruzione (4 ore)
- Strutturare un algoritmo (6 ore)
- Costrutti del linguaggio C, variabili e tipi di dato, funzioni, array puntatori e gestione dinamica della memoria (15 ore)
- Funzioni ricorsive (4 ore)
- Tipi di dato astratto: Pila, Coda, Lista, Heap Tree (8 ore)
- Cenni su analisi della complessità computazionale (4 ore)
- Algoritmi di ordinamento: insertion sort, selection sort, bubble sort, merge sort, quick sort, heap sort (8 ore)

[1] B. W. Kernighan, D. M. Ritchie, “Il linguaggio C. Principi di programmazione e manuale di riferimento. Ediz. MyLab. Con Contenuto digitale per download e accesso on line”, ISBN-13: 978-8891908230
[2] Dino Mandrioli, Stefano Ceri, Licia Sbattella, Paolo Cremonesi, Gianpaolo Cugola, “Informatica: Arte e Mestiere  4° Ed.”, McGraw-Hill,, 2014. ISBN: 9788838668487.
[3] Dispense fornite dal docente presenti nellap piattaforma formazioneonline (si rimanda alla sezione "metodi didattici" per l'indicazione del link alla piattaforma)

FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE (ING-INF/05)
ARTIFICIAL INTELLIGENCE APPLICATIONS

Degree course COMPUTER ENGINEERING

Subject area ING-INF/05

Course type Laurea Magistrale

Credits 9.0

Teaching hours Ore totali di attività frontale: 81.0

For matriculated on 2021/2022

Year taught 2022/2023

Course year 2

Semestre Secondo Semestre (dal 01/03/2023 al 09/06/2023)

Language INGLESE

Subject matter ARTIFICIAL INTELLIGENCE (A182)

Location Lecce

Students are expected to have the following background: Knowledge of basic computer science principles and skills, at a level sufficient to write a reasonably non-trivial computer program. Familiarity with the basic probability theory. Familiarity with the basic linear algebra. Good knowledge of the contents of first level courses on Informatics.

The course will briefly introduc the multi and many cores processors with a focus on GPUs. The course will provide a broad introduction to Machine Learning and Neural Networks Topics which include: Linear regression, Linear regression with multiple variables, Regularization, Logistic regression, Neural Networks, Advice for Machine Learning, Machine Learning system design, Support Vector Machines. Hands-off are also organized to provide students the capacity to develop specific use cases, using the Python language and Jupiter Notebooks.

KNOWLEDGE AND UNDERSTANDING:

By the end of the course, students will gain knowledge of the python programming and basic theoretical knowledge of Machine Learning as well as the main python libraries for machine learning.

APPLYING KNOWLEDGE AND UNDERSTANDING:

The students will know how to use and analize data and will be able to develop Machine Learning applications.

MAKING JUDGEMENTS

The students will also be able to critically assess the different Machine Learning approaches and evaluate the efficiency and accuracy of the results.

COMMUNICATION SKILLS:

By the end of the course, students will be able to use a clear language and an adequate scientific terminology to argue on the topics dealt with in the course.

LEARNING SKILLS:

Students will be able to classify, schematize, summarize and process the acquired knowledge. The students will have the appropriate skills to develop and widen their knowledge of machine learning approach with particular regard to the use of reference documentation and other information available online.

The course consists of frontal lessons using slides made available to students via the elearnign plartform. The frontal lessons are aimed at improving students' knowledge and understanding through the presentation of theories, models and methods. The exercises are aimed at understanding the algorithms and models presented and require a practical programming skill with the tool and software presented.

Oral exam. During the exam the student will present a short project based on machine learnging approach; he/she is, then, asked to illustrate theoretical topics in order to verify his/her knowledge and understanding of the selected topics.

Dates for the exams will be published on the official University web site.

Students may contact the instructor by email or at the end of class meetings or through MSTeams chat.

GPU arhcitecture and GPU programming

Introduction to Python

Machine Learning: What we will learn on Machine Learning.
Supervised Learning Algorithms: - Linear Regression - Classihcation.
Hypothesis Function for Linear Regression: - Representation of the hypothesis function for
regression problems.
Linear Regression with one variable - Cost Function: - Analysis of the hypothesis function
and the Cost Function - Use of graph for their interpretation (3 hours).
Countour Plots: Use of the Contour plots to have a better intuition of the Cost Function (3
hours).
Minimization of the Cost Function-Gradient Descent Algorithm: Use of the Gradient Descent
to minimize the Cost Function (3 hours).
Linear Regression with multiple features: Hypothesis function for Multivariate Linear
regression (3 hours).
Gradient Descent for Multivariate Linear Regression: Cost Function and Gradient Descent
Algorithm for Multivariate Linear Regression (3 hours).
Feature Scaling: Practical tricks for making Gradient Descent work well.
Learning Rate: Another practical tricks for making Gradient Descent work well.
Features and Polynomial Regression: How to use the machinery of Linear Regression to ht
very complicated, even very non linear functions.
Normal Equation: - Normal Equation as a better way to solve for the optimal value of the
Linear Regression parameters - Advantages and disadvantages of Gradient Descent and
Normal Equation methods.
Normal Equation and Non-Invertibility: Cases of Non-Invertibility.
Logistic Regression: How do we develop a Classihcation Algorithm?
Logistic Regression - Hypothesis Representation: Mathematical formula dehning the
hypothesis for Logistic Regression and its probabilistic interpretation.
Decision Boundaries: - What Decision Boundaries mean? - Example for non-linear Decision
Boundaries.
Logistic Regression-Cost Function: - Cost Function for Logistic Regression - Simplihed Cost
Function and Gradient Descent.
Multi-class Classihcation: One-versus-all Classihcation.
Overhtting and Regularization: - The problem of Overhtting - Regularization - Regularized
Cost Function.
Neural Networks: Non Linear hypothesis, Neurons and the brain, Model representation,
Multi-class classihcation, Cost Function & Backpropagation algorithm
Advice for Applying ML: Model selection &Training_Validation_Test sets
Machine learning system design_Error analysis, Trading off precision and recall

Introduction to Machine Learning with Python: A Guide for Data Scientists

ARTIFICIAL INTELLIGENCE APPLICATIONS (ING-INF/05)
FONDAMENTI DI INFORMATICA

Corso di laurea INGEGNERIA DELL'INFORMAZIONE

Settore Scientifico Disciplinare ING-INF/05

Tipo corso di studio Laurea

Crediti 9.0

Ripartizione oraria Ore totali di attività frontale: 81.0

Per immatricolati nel 2022/2023

Anno accademico di erogazione 2022/2023

Anno di corso 1

Semestre Primo Semestre (dal 19/09/2022 al 16/12/2022)

Lingua ITALIANO

Percorso PERCORSO COMUNE (999)

Sede Lecce

Non vi è alcuna propedeuticità.

Il corso mira a fornire sia elementi di teoria dell’informatica che i principi e le basi per la programmazione. Partendo dal concetto di macchina programmabile in grado di svolgere operazioni seguendo una sequenza codificata di istruzioni elementari si passa alla strutturazione di un algoritmo e quindi alla competenze che permettono di scomporre un problema “complesso” per la macchina in una sequenza di operazioni “elementari”. Durante il corso verranno inoltre studiati gli algoritmi di ordinamento e di ricerca più noti con l’obiettivo di illustrare come differenti scelte nella risoluzione di uno stesso problema possano incidere sull’efficienza di un algoritmo e sui tempi di esecuzione al calcolatore. Si affornteranno infine elementi sull'architettura dei calcolatori.

Strutturare i dati in modo opportuno è uno dei principali fattori che influenzano l’efficienza di un algoritmo. Durante il corso si studieranno le strutture dati base quali le liste. Infine il corso fornirà gli strumenti per lo sviluppo di applicazioni attraverso ambienti di programmazione integrati IDE utilizzando il linguaggio C e alcuni cenni sull’analisi della complessità computazionale degli algoritmi.

Conoscenze e comprensione
I risultati attesi di apprendimento prevedono che al termine del corso gli studenti siano in grado di:

1) illustrare le principali caratteristiche dell’architettura di un calcolatore;
2) comprendere le metodologie di rappresentazione e codifica dell’informazione;
3) progettare e implementare un algoritmo;
4) riconoscere ed applicare gli elementi caratterizzanti un linguaggio di programmazione procedurale strutturato (tipi dato, strutture di controllo, funzioni e procedure, gestione dei file e strutture dinamiche);
5) riconoscere le principali strutture dati dinamiche (liste, code, alberi) e i principali algoritmi di oridnamento e di ricerca;
6) analizzare, interpretare, comprendere e produrre listati di codice in linguaggio C utilizzando degli appositi ambienti di programmazione (IDE).
7) comprendere l'architettura hardware dei calcolatori

Capacità di applicare conoscenze e comprensione
Gli studenti saranno in grado di applicare le conoscenze acquisite in diversi ambiti appicativi ed in generale per la risoluzione al computer di processi e sistemi. 

Autonomia di giudizio
Il corso favorisce l'autonomia di giudizio degli studenti attraverso l'analisi critica di problemi computazionali per i quali trovare soluzioni software in grado di risolverlo. Diverse soluzioni proposte dagli studenti sono poste a confronto e valutate criticamente dagli studenti stessi.

Abilità comunicative
È fondamentale che gli studenti siano in grado di comunicare con un pubblico vario e composito, non omogeneo culturalmente, in modo chiaro, logico ed efficace, utilizzando gli strumenti metodologici acquisiti e le loro conoscenze scientifiche e, in particolar modo, il lessico di specialità.
Il corso favorisce lo sviluppo delle abilità inerenti le capacità di esporre in termini precisi e formali le proprietà e le caratteristiche di aloritmi e la descrizione di possibili soluzioni algoritmiche a problemi reali.

Le lezioni teoriche si svolgeranno in aula utilizzando slide con esempi alla lavagna. Le esercitazioni si svolgeranno in laboratorio informatico con esercizi svolti direttamente al computer inerenti la programmazione in linguaggio C.

Le lezioni saranno inoltre registrate sulla piattaforma Microsoft Teams

 

Le slide del corso saranno disponibili sulla piattaforma formazioneonline all'indirizzo: https://formazioneonline.unisalento.it/course/view.php?id=717
Utilizzare le proprie credenziali di ateneo per accedere alla piattaforma formazioneonline; successivamente si usi la password "fondainfo1" per accedere ai contenuti del corso di Fondamenti di Informatica I

 

L’esame è composto da una prova scritta durante la quale si verificheranno le capacità acquisite nella progettazione di un algoritmo, nel riconoscimento delle principali strutture dati e degli algoritmi di base visti a lezione e nell'analisi della complessità computazionale di un algoritmo oltre agli aspetti teorici affrontati nel corso. Durante la prova scritta non sarà consentito l’uso di manuali nè altro materiale di supporto.

Oltre alla prova scritta ci sarà una prova orale/programmazione alla quale si accede solo dopo aver superato la prova scritta. Durante la prova di programmazione verrà valutata la capacità pratica nello sviluppare un semplice programma eseguibile al calcolatore in linguaggio C. La prova di programmazione dura 1 ora, il programma realizzato durante la prova di programmazione verra’ quindi discusso appena terminata la prova. Durante la prova di programmazione si può usare il proprio computer e tutti i manuali e le fonti online utili a risolvere l’esercizio assegnato.

Le date degli appelli d'esame sono disponibili al seguente link: calendario esami di profitto

- Architettura di Von Neumann, concetto di algoritmo, macchina astratta (4 ore)
- Rapresentazione delle informazioni (10 ore)
- Porte logiche e algebra booleana (2 ore)
- Reti combinatorie (4ore)
- Bistabili e reti sequenziali (4 ore)
- Processore e unità aritmetico-logica (4 ore)
- Gerarchia della memoria (4 ore)
- Pipeline e parallelismo a livello di istruzione (4 ore)
- Linguaggio assembler (5 ore)
- Strutturare un algoritmo (6 ore)
- Costrutti del linguaggio C, variabili e tipi di dato, funzioni, array puntatori e gestione dinamica della memoria (12 ore)
- Funzioni ricorsive (4 ore)
- Tipi di dato astratto: Pila, Coda, Lista, Heap Tree (8 ore)
- Cenni su analisi della complessità computazionale (2 ore)
- Algoritmi di ordinamento: insertion sort, selection sort, bubble sort, merge sort, quick sort, heap sort (8 ore)

[1] B. W. Kernighan, D. M. Ritchie, “Il linguaggio C. Principi di programmazione e manuale di riferimento. Ediz. MyLab. Con Contenuto digitale per download e accesso on line”, ISBN-13: 978-8891908230
[2] Dino Mandrioli, Stefano Ceri, Licia Sbattella, Paolo Cremonesi, Gianpaolo Cugola, “Informatica: Arte e Mestiere  4° Ed.”, McGraw-Hill,, 2014. ISBN: 9788838668487.
[3] Dispense fornite dal docente presenti nellap piattaforma formazioneonline (si rimanda alla sezione "metodi didattici" per l'indicazione del link alla piattaforma)

FONDAMENTI DI INFORMATICA (ING-INF/05)
FONDAMENTI DI INFORMATICA

Corso di laurea INGEGNERIA DELL'INFORMAZIONE

Settore Scientifico Disciplinare ING-INF/05

Tipo corso di studio Laurea

Crediti 9.0

Ripartizione oraria Ore totali di attività frontale: 81.0

Per immatricolati nel 2021/2022

Anno accademico di erogazione 2021/2022

Anno di corso 1

Semestre Primo Semestre (dal 20/09/2021 al 17/01/2022)

Lingua ITALIANO

Percorso PERCORSO COMUNE (999)

Sede Lecce

Non vi è alcuna propedeuticità.

Il corso mira a fornire sia elementi di teoria dell’informatica che i principi e le basi per la programmazione. Partendo dal concetto di macchina programmabile in grado di svolgere operazioni seguendo una sequenza codificata di istruzioni elementari si passa alla strutturazione di un algoritmo e quindi alla competenze che permettono di scomporre un problema “complesso” per la macchina in una sequenza di operazioni “elementari”. Durante il corso verranno inoltre studiati gli algoritmi di ordinamento e di ricerca più noti con l’obiettivo di illustrare come differenti scelte nella risoluzione di uno stesso problema possano incidere sull’efficienza di un algoritmo e sui tempi di esecuzione al calcolatore. Si affornteranno infine elementi sull'architettura dei calcolatori.

Strutturare i dati in modo opportuno è uno dei principali fattori che influenzano l’efficienza di un algoritmo. Durante il corso si studieranno le strutture dati base quali le liste. Infine il corso fornirà gli strumenti per lo sviluppo di applicazioni attraverso ambienti di programmazione integrati IDE utilizzando il linguaggio C e alcuni cenni sull’analisi della complessità computazionale degli algoritmi.

Conoscenze e comprensione
I risultati attesi di apprendimento prevedono che al termine del corso gli studenti siano in grado di:

1) illustrare le principali caratteristiche dell’architettura di un calcolatore;
2) comprendere le metodologie di rappresentazione e codifica dell’informazione;
3) progettare e implementare un algoritmo;
4) riconoscere ed applicare gli elementi caratterizzanti un linguaggio di programmazione procedurale strutturato (tipi dato, strutture di controllo, funzioni e procedure, gestione dei file e strutture dinamiche);
5) riconoscere le principali strutture dati dinamiche (liste, code, alberi) e i principali algoritmi di oridnamento e di ricerca;
6) analizzare, interpretare, comprendere e produrre listati di codice in linguaggio C utilizzando degli appositi ambienti di programmazione (IDE).
7) comprendere l'architettura hardware dei calcolatori

Capacità di applicare conoscenze e comprensione
Gli studenti saranno in grado di applicare le conoscenze acquisite in diversi ambiti appicativi ed in generale per la risoluzione al computer di processi e sistemi. 

Autonomia di giudizio
Il corso favorisce l'autonomia di giudizio degli studenti attraverso l'analisi critica di problemi computazionali per i quali trovare soluzioni software in grado di risolverlo. Diverse soluzioni proposte dagli studenti sono poste a confronto e valutate criticamente dagli studenti stessi.

Abilità comunicative
È fondamentale che gli studenti siano in grado di comunicare con un pubblico vario e composito, non omogeneo culturalmente, in modo chiaro, logico ed efficace, utilizzando gli strumenti metodologici acquisiti e le loro conoscenze scientifiche e, in particolar modo, il lessico di specialità.
Il corso favorisce lo sviluppo delle abilità inerenti le capacità di esporre in termini precisi e formali le proprietà e le caratteristiche di aloritmi e la descrizione di possibili soluzioni algoritmiche a problemi reali.

Le lezioni teoriche si svolgeranno in aula utilizzando slide con esempi alla lavagna. Le esercitazioni si svolgeranno in laboratorio informatico con esercizi svolti direttamente al computer inerenti la programmazione in linguaggio C.

Le lezioni saranno erogate anche a distanza attraverso la piattaforma Teams di Microsoft registrandosi al team con il codice accl62h

Per le istruzioni sull'accesso alla piattaforma Teams si rimanda alla guida disponibile su:
https://www.unisalento.it/lezioni-online

 

Le slide del corso saranno disponibili sulla piattaforma formazioneonline all'indirizzo: https://formazioneonline.unisalento.it/course/view.php?id=717
Utilizzare le proprie credenziali di ateneo per accedere alla piattaforma formazioneonline; successivamente si usi la password "fondainfo1" per accedere ai contenuti del corso di Fondamenti di Informatica I

L’esame è composto da una prova scritta durante la quale si verificheranno le capacità acquisite nella progettazione di un algoritmo, nel riconoscimento delle principali strutture dati e degli algoritmi di base visti a lezione e nell'analisi della complessità computazionale di un algoritmo oltre agli aspetti teorici affrontati nel corso. Durante la prova scritta non sarà consentito l’uso di manuali nè altro materiale di supporto. Tale prova puo' essere sostituita da equivalente prova orale in forma telematica con esercizi da svolgere sul momento.

Oltre alla prova scritta ci sarà una prova orale/programmazione alla quale si accede solo dopo aver superato la prova scritta. Durante la prova di programmazione verrà valutata la capacità pratica nello sviluppare un semplice programma eseguibile al calcolatore in linguaggio C. La prova di programmazione dura 1 ora, il programma realizzato durante la prova di programmazione verra’ quindi discusso appena terminata la prova. Durante la prova di programmazione si può usare il proprio computer e tutti i manuali e le fonti online utili a risolvere l’esercizio assegnato. La prova di programmazione puo' essere svolta in presenza in laboratorio oppure in modalita' telematica su piattaforma Teams di Microsoft

Le date degli appelli d'esame sono disponibili al seguente link: calendario esami di profitto

- Architettura di Von Neumann, concetto di algoritmo, macchina astratta (4 ore)
- Rapresentazione delle informazioni (10 ore)
- Porte logiche e algebra booleana (2 ore)
- Reti combinatorie (4ore)
- Bistabili e reti sequenziali (4 ore)
- Processore e unità aritmetico-logica (4 ore)
- Gerarchia della memoria (4 ore)
- Pipeline e parallelismo a livello di istruzione (4 ore)
- Linguaggio assembler (5 ore)
- Strutturare un algoritmo (6 ore)
- Costrutti del linguaggio C, variabili e tipi di dato, funzioni, array puntatori e gestione dinamica della memoria (12 ore)
- Funzioni ricorsive (4 ore)
- Tipi di dato astratto: Pila, Coda, Lista, Heap Tree (8 ore)
- Cenni su analisi della complessità computazionale (2 ore)
- Algoritmi di ordinamento: insertion sort, selection sort, bubble sort, merge sort, quick sort, heap sort (8 ore)

[1] B. W. Kernighan, D. M. Ritchie, “Il linguaggio C. Principi di programmazione e manuale di riferimento. Ediz. MyLab. Con Contenuto digitale per download e accesso on line”, ISBN-13: 978-8891908230
[2] Dino Mandrioli, Stefano Ceri, Licia Sbattella, Paolo Cremonesi, Gianpaolo Cugola, “Informatica: Arte e Mestiere  4° Ed.”, McGraw-Hill,, 2014. ISBN: 9788838668487.
[3] Dispense fornite dal docente presenti nellap piattaforma formazioneonline (si rimanda alla sezione "metodi didattici" per l'indicazione del link alla piattaforma)

FONDAMENTI DI INFORMATICA (ING-INF/05)
MOBILE APPLICATIONS DEVELOPMENT

Degree course DIGITAL HUMANITIES

Subject area ING-INF/05

Course type Laurea Magistrale

Credits 6.0

Teaching hours Ore totali di attività frontale: 42.0

For matriculated on 2021/2022

Year taught 2021/2022

Course year 1

Semestre Primo Semestre (dal 20/09/2021 al 14/01/2022)

Language INGLESE

Subject matter COMUNE/GENERICO (999)

There are no prerequisites; indeed, the course is meant for students without previous programming experience.

The course covers all of the fundamental aspects related to the development of a mobile application using Apple iOS. Meant for students without previous programming experience, the course starts covering the new programming language Swift, using the integrated development environment Xcode. After introducing the Swift programming language and the use of Xcode to develop a simple application, the students will create a basic prototype application, and, gradually, they will implement the application by adding new features until they implement a real, usable application.

The course aims to provide students with the skills required to develop a mobile application using Apple iOS. Therefore, at the end of this course the students will know:

  • The programming language Swift;
  • The integrated development environment Xcode;
  • The fundamental iOS frameworks and their related APIs.

Moreover, at the end of this course the students will acquire the following expertise and technical capabilities:

  • Develop, starting from an initial project idea, a mobile application using Apple iOS;
  • Problem solving;
  • Reading technical documentation;
  • Team working.

– Classroom lectures;
– Laboratory exercises;
– Team work.

The course is based on classroom lectures and laboratory exercises (for a total of 42 hours), in which the students are directly involved. Moreover, there will be some team work assigned, in order for the students to solve exercises and small homework projects. Attending the lectures is strongly advised, since the course is mainly based on the hands on approach.

The lectures can be also given through the platform Microsft Teams at the following link:

https://teams.microsoft.com/l/team/19%3ab79bb99079484236b17f116d3fe160c6%40thread.tacv2/conversations?groupId=1cf8388e-bc1c-4c54-9750-c462ba328895&tenantId=8d49eb30-429e-4944-8349-dee009bdd7da

Students will be evaluated through an oral exam. The students will be required to discuss a project assigned to them. The exam will evaluate how much the students have reached the following didactic aims:

  • Knowledge of the Swift programming language;
  • Ability to design and implement a mobile application using Apple iOS.

Evaluation will take into account the assigned project, the exposition, the formal correctness and the ability to argue and support the student’s theses.

The exam sessions are available through this link: exam sessions

Swift Playgrounds
Build First App
Introduction to Auto Layout
Designing UI Using StackViews
Introduction to Prototyping
Creating a SimpleTable-based App
Using UI AlertController
Introduction to NavigationController and Segue
Introductionto Object-Oriented Programming
Self Sizing Cells and Dynamic Type
Working with Maps
Introduction to StaticTableViews, UIImagePickerController and NSLayoutConstraint
Working with CoreData

Textbook:

Simon Ng, Beginning iOS 10 Programming with Swift. AppCoda

http://www.appcoda.com/swift/

 

Additional, useful references:

The Swift Programming Language. Apple Inc.

Simon Ng, Intermediate Swift and iOS 10 Programming. AppCoda

http://www.appcoda.com/intermediate-swift-programming-book/

MOBILE APPLICATIONS DEVELOPMENT (ING-INF/05)
FONDAMENTI DI INFORMATICA I

Corso di laurea INGEGNERIA DELL'INFORMAZIONE

Settore Scientifico Disciplinare ING-INF/05

Tipo corso di studio Laurea

Crediti 6.0

Ripartizione oraria Ore totali di attività frontale: 54.0

Per immatricolati nel 2020/2021

Anno accademico di erogazione 2020/2021

Anno di corso 1

Semestre Secondo Semestre (dal 01/03/2021 al 11/06/2021)

Lingua ITALIANO

Percorso PERCORSO COMUNE (999)

Sede Lecce

Non vi è alcuna propedeuticità.

Il corso mira a fornire sia elementi di teoria dell’informatica che i principi e le basi per la programmazione. Partendo dal concetto di macchina programmabile in grado di svolgere operazioni seguendo una sequenza codificata di istruzioni elementari si passa alla strutturazione di un algoritmo e quindi alla competenze che permettono di scomporre un problema “complesso” per la macchina in una sequenza di operazioni “elementari”. Durante il corso verranno inoltre studiati gli algoritmi di ordinamento e di ricerca più noti con l’obiettivo di illustrare come differenti scelte nella risoluzione di uno stesso problema possano incidere sull’efficienza di un algoritmo e sui tempi di esecuzione al calcolatore.

Strutturare i dati in modo opportuno è uno dei principali fattori che influenzano l’efficienza di un algoritmo. Durante il corso si studieranno le strutture dati base quali le liste. Infine il corso fornirà gli strumenti per lo sviluppo di applicazioni attraverso ambienti di programmazione integrati IDE utilizzando il linguaggio C e alcuni cenni sull’analisi della complessità computazionale degli algoritmi.

Conoscenze e comprensione
I risultati attesi di apprendimento prevedono che al termine del corso gli studenti siano in grado di:

1) illustrare le principali caratteristiche dell’architettura di un calcolatore;
2) comprendere le metodologie di rappresentazione e codifica dell’informazione;
3) progettare e implementare un algoritmo;
4) riconoscere ed applicare gli elementi caratterizzanti un linguaggio di programmazione procedurale strutturato (tipi dato, strutture di controllo, funzioni e procedure, gestione dei file e strutture dinamiche);
5) riconoscere le principali strutture dati dinamiche (liste, code, alberi) e i principali algoritmi di oridnamento e di ricerca;
6) analizzare, interpretare, comprendere e produrre listati di codice in linguaggio C utilizzando degli appositi ambienti di programmazione (IDE).

Capacità di applicare conoscenze e comprensione
Gli studenti saranno in grado di applicare le conoscenze acquisite in diversi ambiti appicativi ed in generale per la risoluzione al computer di processi e sistemi. 

Autonomia di giudizio
Il corso favorisce l'autonomia di giudizio degli studenti attraverso l'analisi critica di problemi computazionali per i quali trovare soluzioni software in grado di risolverlo. Diverse soluzioni proposte dagli studenti sono poste a confronto e valutate criticamente dagli studenti stessi.

Abilità comunicative
È fondamentale che gli studenti siano in grado di comunicare con un pubblico vario e composito, non omogeneo culturalmente, in modo chiaro, logico ed efficace, utilizzando gli strumenti metodologici acquisiti e le loro conoscenze scientifiche e, in particolar modo, il lessico di specialità.
Il corso favorisce lo sviluppo delle abilità inerenti le capacità di esporre in termini precisi e formali le proprietà e le caratteristiche di aloritmi e la descrizione di possibili soluzioni algoritmiche a problemi reali.

Le lezioni teoriche si svolgeranno in aula utilizzando slide con esempi alla lavagna. Le esercitazioni si svolgeranno in laboratorio informatico con esercizi svolti direttamente al computer inerenti la programmazione in linguaggio C.

Le lezioni saranno erogate anche a distanza attraverso la piattaforma Teams di Microsoft registrandosi al team con il codice accl62h

Per le istruzioni sull'accesso alla piattaforma Teams si rimanda alla guida disponibile su:
https://www.unisalento.it/lezioni-online

 

Le slide del corso saranno disponibili sulla piattaforma formazioneonline all'indirizzo: https://formazioneonline.unisalento.it/course/view.php?id=717
Utilizzare le proprie credenziali di ateneo per accedere alla piattaforma formazioneonline; successivamente si usi la password "fondainfo1" per accedere ai contenuti del corso di Fondamenti di Informatica I

L’esame è composto da una prova scritta durante la quale si verificheranno le capacità acquisite nella progettazione di un algoritmo, nel riconoscimento delle principali strutture dati e degli algoritmi di base visti a lezione e nell'analisi della complessità computazionale di un algoritmo oltre agli aspetti teorici affrontati nel corso. Durante la prova scritta non sarà consentito l’uso di manuali nè altro materiale di supporto. Tale prova puo' essere sostituita da equivalente prova orale in forma telematica con esercizi da svolgere sul momento.

Oltre alla prova scritta ci sarà una prova orale/programmazione alla quale si accede solo dopo aver superato la prova scritta. Durante la prova di programmazione verrà valutata la capacità pratica nello sviluppare un semplice programma eseguibile al calcolatore in linguaggio C. La prova di programmazione dura 1 ora, il programma realizzato durante la prova di programmazione verra’ quindi discusso appena terminata la prova. Durante la prova di programmazione si può usare il proprio computer e tutti i manuali e le fonti online utili a risolvere l’esercizio assegnato. La prova di programmazione puo' essere svolta in presenza in laboratorio oppure in modalita' telematica su piattaforma Teams di Microsoft

 

Per le istruzioni sull'uso della piattaforma Teams di Microsoft si rimanda alla guida disponibile su:

https://drive.google.com/file/d/11SVWGyWOnEoNwoPXwg5gsDmQuhj68gVy/view

Le date degli appelli d'esame sono disponibili al seguente link: calendario esami di profitto

- Architettura di Von Neumann, concetto di algoritmo, macchina astratta (4 ore)
- Rapresentazione delle informazioni (10 ore)
- Strutturare un algoritmo (6 ore)
- Costrutti del linguaggio C, variabili e tipi di dato, funzioni, array puntatori e gestione dinamica della memoria (12 ore)
- Funzioni ricorsive (4 ore)
- Tipi di dato astratto: Pila, Coda, Lista, Heap Tree (8 ore)
- Cenni su analisi della complessità computazionale (2 ore)
- Algoritmi di ordinamento: insertion sort, selection sort, bubble sort, merge sort, quick sort, heap sort (8 ore)

[1] B. W. Kernighan, D. M. Ritchie, “Il linguaggio C. Principi di programmazione e manuale di riferimento. Ediz. MyLab. Con Contenuto digitale per download e accesso on line”, ISBN-13: 978-8891908230
[2] Dino Mandrioli, Stefano Ceri, Licia Sbattella, Paolo Cremonesi, Gianpaolo Cugola, “Informatica: Arte e Mestiere  4° Ed.”, McGraw-Hill,, 2014. ISBN: 9788838668487.
[3] Dispense fornite dal docente presenti nellap piattaforma formazioneonline (si rimanda alla sezione "metodi didattici" per l'indicazione del link alla piattaforma)

FONDAMENTI DI INFORMATICA I (ING-INF/05)
MOBILE APPLICATIONS DEVELOPMENT

Degree course DIGITAL HUMANITIES

Subject area ING-INF/05

Course type Laurea Magistrale

Credits 6.0

Teaching hours Ore totali di attività frontale: 42.0

For matriculated on 2020/2021

Year taught 2020/2021

Course year 1

Semestre Primo Semestre (dal 21/09/2020 al 15/01/2021)

Language INGLESE

Subject matter COMUNE/GENERICO (999)

There are no prerequisites; indeed, the course is meant for students without previous programming experience.

The course covers all of the fundamental aspects related to the development of a mobile application using Apple iOS. Meant for students without previous programming experience, the course starts covering the new programming language Swift, using the integrated development environment Xcode. After introducing the Swift programming language and the use of Xcode to develop a simple application, the students will create a basic prototype application, and, gradually, they will implement the application by adding new features until they implement a real, usable application.

The course aims to provide students with the skills required to develop a mobile application using Apple iOS. Therefore, at the end of this course the students will know:

  • The programming language Swift;
  • The integrated development environment Xcode;
  • The fundamental iOS frameworks and their related APIs.

Moreover, at the end of this course the students will acquire the following expertise and technical capabilities:

  • Develop, starting from an initial project idea, a mobile application using Apple iOS;
  • Problem solving;
  • Reading technical documentation;
  • Team working.

– Classroom lectures;
– Laboratory exercises;
– Team work.

The course is based on classroom lectures and laboratory exercises (for a total of 42 hours), in which the students are directly involved. Moreover, there will be some team work assigned, in order for the students to solve exercises and small homework projects. Attending the lectures is strongly advised, since the course is mainly based on the hands on approach.

The lectures can be also given through the platform Microsft Teams at the following link:

https://teams.microsoft.com/l/team/19%3ab79bb99079484236b17f116d3fe160c6%40thread.tacv2/conversations?groupId=1cf8388e-bc1c-4c54-9750-c462ba328895&tenantId=8d49eb30-429e-4944-8349-dee009bdd7da

Students will be evaluated through an oral exam. The students will be required to discuss a project assigned to them. The exam will evaluate how much the students have reached the following didactic aims:

  • Knowledge of the Swift programming language;
  • Ability to design and implement a mobile application using Apple iOS.

Evaluation will take into account the assigned project, the exposition, the formal correctness and the ability to argue and support the student’s theses.

The exam can be done also thorugh the Microsoft teams platform. Details on the connections can be found at the following link:
https://drive.google.com/file/d/11SVWGyWOnEoNwoPXwg5gsDmQuhj68gVy/view

The exam sessions are available through this link: exam sessions

Swift Playgrounds
Build First App
Introduction to Auto Layout
Designing UI Using StackViews
Introduction to Prototyping
Creating a SimpleTable-based App
Using UI AlertController
Introduction to NavigationController and Segue
Introductionto Object-Oriented Programming
Self Sizing Cells and Dynamic Type
Working with Maps
Introduction to StaticTableViews, UIImagePickerController and NSLayoutConstraint
Working with CoreData

Textbook:

Simon Ng, Beginning iOS 10 Programming with Swift. AppCoda

http://www.appcoda.com/swift/

 

Additional, useful references:

The Swift Programming Language. Apple Inc.

Simon Ng, Intermediate Swift and iOS 10 Programming. AppCoda

http://www.appcoda.com/intermediate-swift-programming-book/

MOBILE APPLICATIONS DEVELOPMENT (ING-INF/05)
FONDAMENTI DI INFORMATICA I

Corso di laurea INGEGNERIA DELL'INFORMAZIONE

Settore Scientifico Disciplinare ING-INF/05

Tipo corso di studio Laurea

Crediti 6.0

Ripartizione oraria Ore totali di attività frontale: 54.0

Per immatricolati nel 2019/2020

Anno accademico di erogazione 2019/2020

Anno di corso 1

Semestre Secondo Semestre (dal 02/03/2020 al 05/06/2020)

Lingua ITALIANO

Percorso PERCORSO COMUNE (999)

Sede Lecce

Non vi è alcuna propedeuticità.

Per l'analisi della complessità computazionele degli algoritmi sono richieste conoscenze di analisi matematica quali:
- studio di funzioni e analisi asintotica,
- serie numeriche.

Il corso mira a fornire sia elementi di teoria dell’informatica che i principi e le basi per la programmazione. Partendo dal concetto di macchina programmabile in grado di svolgere operazioni seguendo una sequenza codificata di istruzioni elementari si passa alla strutturazione di un algoritmo e quindi alla competenze che permettono di scomporre un problema “complesso” per la macchina in una sequenza di operazioni “elementari”. Durante il corso verranno inoltre studiati gli algoritmi di ordinamento e di ricerca più noti con l’obiettivo di illustrare come differenti scelte nella risoluzione di uno stesso problema possano incidere sull’efficienza di un algoritmo e sui tempi di esecuzione al calcolatore.

Strutturare i dati in modo opportuno è uno dei principali fattori che influenzano l’efficienza di un algoritmo. Durante il corso si studieranno le strutture dati base quali le liste. Infine il corso fornirà gli strumenti per lo sviluppo di applicazioni attraverso ambienti di programmazione integrati IDE utilizzando il linguaggio C e alcuni cenni sull’analisi della complessità computazionale degli algoritmi.

Conoscenze e comprensione
I risultati attesi di apprendimento prevedono che al termine del corso gli studenti siano in grado di:

1) illustrare le principali caratteristiche dell’architettura di un calcolatore;
2) comprendere le metodologie di rappresentazione e codifica dell’informazione;
3) progettare e implementare un algoritmo;
4) riconoscere ed applicare gli elementi caratterizzanti un linguaggio di programmazione procedurale strutturato (tipi dato, strutture di controllo, funzioni e procedure, gestione dei file e strutture dinamiche);
5) riconoscere le principali strutture dati dinamiche (liste, code, alberi) e i principali algoritmi di oridnamento e di ricerca;
6) effettuare l'analisi della complessità computazionale di un algoritmo;
7) analizzare, interpretare, comprendere e produrre listati di codice in linguaggio C utilizzando degli appositi ambienti di programmazione (IDE).

Capacità di applicare conoscenze e comprensione
Gli studenti saranno in grado di applicare le conoscenze acquisite in diversi ambiti appicativi ed in generale per la risoluzione al computer di processi e sistemi. 

Autonomia di giudizio
Il corso favorisce l'autonomia di giudizio degli studenti attraverso l'analisi critica di problemi computazionali per i quali trovare soluzioni software in grado di risolverlo. Diverse soluzioni proposte dagli studenti sono poste a confronto e valutate criticamente dagli studenti stessi.

Abilità comunicative
È fondamentale che gli studenti siano in grado di comunicare con un pubblico vario e composito, non omogeneo culturalmente, in modo chiaro, logico ed efficace, utilizzando gli strumenti metodologici acquisiti e le loro conoscenze scientifiche e, in particolar modo, il lessico di specialità.
Il corso favorisce lo sviluppo delle abilità inerenti le capacità di esporre in termini precisi e formali le proprietà e le caratteristiche di aloritmi; le analisi su complessità computazionali di codice sorgente in linguaggio C; descrizione di possibili soluzioni algoritmiche a problemi reali.

Le lezioni teoriche si svolgeranno in aula utilizzando slide con esempi alla lavagna. Le esercitazioni si svolgeranno in laboratorio informatico con esercizi svolti direttamente al computer inerenti la programmazione in linguaggio C.

Le slide del corso saranno disponibili sulla piattaforma moodle all'indirizzo: http://sara.unisalento.it/moodle
Utilizzare l'accesso "come ospite" e password "fondainfo"

L’esame è composto da una prova scritta durante la quale si verificheranno le capacità acquisite nella progettazione di un algoritmo, nel riconoscimento delle principali strutture dati e degli algoritmi di base visti a lezione e nell'analisi della complessità computazionale di un algoritmo oltre agli aspetti teorici affrontati nel corso. Durante la prova scritta non sarà consentito l’uso di manuali nè altro materiale di supporto.

Oltre alla prova scritta ci sarà una prova orale/programmazione alla quale si accede solo dopo aver superato la prova scritta. Durante la prova di programmazione verrà valutata la capacità pratica nello sviluppare un semplice programma eseguibile al calcolatore in linguaggio C. La prova di programmazione dura 1 ora, il programma realizzato durante la prova di programmazione verra’ quindi discusso appena terminata la prova. Durante la prova di programmazione si può usare il proprio computer e tutti i manuali e le fonti online utili a risolvere l’esercizio assegnato.

 

Sessione straordinaria Marzo 2020 - Esame On-Line

Solo per la sessione straordinaria di Marzo 2020 l'esame si svolera' online secondo le modalita' di seguito descritte:

 

Connessione
-----------
Per sostenere l'esame e' necessario collegarsi al Team appositamente creato per l'esame attraverso il seguente link

https://teams.microsoft.com/l/team/19%3adc47a9aec5154b69b3c984f5f32f6236@thread.tacv2/conversations?groupId=f6a6a806-3539-4462-a204-be5c73c34752&tenantId=8d49eb30-429e-4944-8349-dee009bdd7da

il Team e' aperto al pubblico e quindi tutti coloro che hanno il link potranno assistere all'esame.

All'orario prestabilito per l'esame si procede con l'appello degli studenti candidati (solo coloro che sono prenotati sul sistema ESSE3 potranno sostenere l'esame) nel seguente modo: il presidente della commissione contatterà' ad uno ad uno in una chiamata privata i singoli candidati che dovranno attivare microfono e telecamera, ed esibire documento di riconoscimento davanti alla telecamera. In caso di non riconoscimento del volto, l’esame non avrà luogo.

Dopo il riconoscimento si interrompe la chiamata privata e si procede con l'esame all'interno del Team e quindi alla "presenza" di tutti coloro che sono collegati.

Durante tutto lo svolgimento dell'esame e' richiesto che la telecamera e il microfono dei candidati restino sempre attivi, mentre coloro che assistono all'esame dovranno disabilitare microfono e telecamera.

Alla fine della seduta d’esame il docente comunicherà, sempre in chiamata privata, come nel caso del riconoscimento, il voto al candidato e procederà regolarmente con la verbalizzazione online.

NON E' ASSOLUTAMENTE CONSENTITA LA REGISTRAZIONE DELL'ESAME IN NESSUN MOMENTO.

Argomenti e svolgimento dell'esame
----------------------------------
L'esame si svolgerà' alla stessa stregua della prova pratica svolta in laboratorio, i candidati si dovranno collegare con un browser web al link, che verra' comunicato dal docente durante l'esame, dal quale scaricare la traccia di programmazione. Si ha a disposizione un'ora di tempo per realizzare un programma scritto in c che risponda al quesito della traccia. Durante tutto lo svolgimento dell'esame bisogna restare collegati al Team con videocamera e microfono attivati. La consegna del file sorgente in C avverrà' sempre attraverso la pagina web dell'esame; si procedera' quindi all'analisi degli elaborati e all'interrogazione dei candidati, uno alla volta in sessione pubblica.
 

 

Le date degli appelli d'esame sono disponibili al seguente link: calendario esami di profitto

- Architettura di Von Neumann, concetto di algoritmo, macchina astratta (4 ore)
- Rapresentazione delle informazioni (10 ore)
- Strutturare un algoritmo (6 ore)
- Costrutti del linguaggio C, variabili e tipi di dato, funzioni, array puntatori e gestione dinamica della memoria (10 ore)
- Funzioni ricorsive (2 ore)
- Tipi di dato astratto: Pila, Coda, Lista (8 ore)
- Cenni su analisi della complessità computazionale (4 ore)
- Algoritmi di ordinamento: insertion sort, selection sort, bubble sort, merge sort, quick sort (6 ore)
- Algoritmi di ricerca: ricerca esaustiva, ricerca dicotomica (4 ore)

[1] B. W. Kernighan, D. M. Ritchie, “Il linguaggio C. Principi di programmazione e manuale di riferimento. Ediz. MyLab. Con Contenuto digitale per download e accesso on line”, ISBN-13: 978-8891908230
[2] Dino Mandrioli, Stefano Ceri, Licia Sbattella, Paolo Cremonesi, Gianpaolo Cugola, “Informatica: Arte e Mestiere  4° Ed.”, McGraw-Hill,, 2014. ISBN: 9788838668487.
[3] Dispense fornite dal docente all’indirizzo http://sara.unisalento.it/moodle

FONDAMENTI DI INFORMATICA I (ING-INF/05)
MOBILE APPLICATIONS DEVELOPMENT

Degree course EUROPEAN HERITAGE, DIGITAL MEDIA AND THE INFORMATION SOCIETY

Subject area ING-INF/05

Course type Laurea Magistrale

Credits 6.0

Teaching hours Ore totali di attività frontale: 42.0

For matriculated on 2019/2020

Year taught 2019/2020

Course year 1

Semestre Primo Semestre (dal 23/09/2019 al 17/01/2020)

Language INGLESE

Subject matter INTERNAZIONALE (A56)

There are no prerequisites; indeed, the course is meant for students without previous programming experience.

The course covers all of the fundamental aspects related to the development of a mobile application using Apple iOS. Meant for students without previous programming experience, the course starts covering the new programming language Swift, using the integrated development environment Xcode. After introducing the Swift programming language and the use of Xcode to develop a simple application, the students will create a basic prototype application, and, gradually, they will implement the application by adding new features until they implement a real, usable application.

The course aims to provide students with the skills required to develop a mobile application using Apple iOS. Therefore, at the end of this course the students will know:

  • The programming language Swift;
  • The integrated development environment Xcode;
  • The fundamental iOS frameworks and their related APIs.

Moreover, at the end of this course the students will acquire the following expertise and technical capabilities:

  • Develop, starting from an initial project idea, a mobile application using Apple iOS;
  • Problem solving;
  • Reading technical documentation;
  • Team working.

– Classroom lectures;
– Laboratory exercises;
– Team work.

The course is based on classroom lectures and laboratory exercises (for a total of 42 hours), in which the students are directly involved. Moreover, there will be some team work assigned, in order for the students to solve exercises and small homework projects. Attending the lectures is strongly advised, since the course is mainly based on the hands on approach.

Students will be evaluated through an oral exam. The students will be required to discuss a project assigned to them. The exam will evaluate how much the students have reached the following didactic aims:

  • Knowledge of the Swift programming language;
  • Ability to design and implement a mobile application using Apple iOS.

Evaluation will take into account the assigned project, the exposition, the formal correctness and the ability to argue and support the student’s theses.

The exam sessions are available through this link: exam sessions

Swift Playgrounds
Build First App
Introduction to Auto Layout
Designing UI Using StackViews
Introduction to Prototyping
Creating a SimpleTable-based App
Using UI AlertController
Introduction to NavigationController and Segue
Introductionto Object-Oriented Programming
Self Sizing Cells and Dynamic Type
Working with Maps
Introduction to StaticTableViews, UIImagePickerController and NSLayoutConstraint
Working with CoreData

Textbook:

Simon Ng, Beginning iOS 10 Programming with Swift. AppCoda

http://www.appcoda.com/swift/

 

Additional, useful references:

The Swift Programming Language. Apple Inc.

Simon Ng, Intermediate Swift and iOS 10 Programming. AppCoda

http://www.appcoda.com/intermediate-swift-programming-book/

MOBILE APPLICATIONS DEVELOPMENT (ING-INF/05)
FONDAMENTI DI INFORMATICA

Corso di laurea INGEGNERIA DELL'INFORMAZIONE

Settore Scientifico Disciplinare ING-INF/05

Tipo corso di studio Laurea

Crediti 7.0

Docente titolare Italo EPICOCO

Ripartizione oraria Ore totali di attività frontale: 63.0

  Ore erogate dal docente Italo EPICOCO: 54.0

Per immatricolati nel 2018/2019

Anno accademico di erogazione 2018/2019

Anno di corso 1

Semestre Secondo Semestre (dal 04/03/2019 al 04/06/2019)

Lingua ITALIANO

Percorso PERCORSO COMUNE (999)

Sede Lecce

Non vi è alcuna propedeuticità.

Per l'analisi della complessità computazionele degli algoritmi sono richieste conoscenze di analisi matematica quali:
- studio di funzioni e analisi asintotica,
- serie numeriche.

Il corso mira a fornire sia elementi di teoria dell’informatica che i principi e le basi per la programmazione. Partendo dal concetto di macchina programmabile in grado di svolgere operazioni seguendo una sequenza codificata di istruzioni elementari si passa alla strutturazione di un algoritmo e quindi alla competenze che permettono di scomporre un problema “complesso” per la macchina in una sequenza di operazioni “elementari”. Durante il corso verranno inoltre studiati gli algoritmi di ordinamento e di ricerca più noti con l’obiettivo di illustrare come differenti scelte nella risoluzione di uno stesso problema possano incidere sull’efficienza di un algoritmo e sui tempi di esecuzione al calcolatore.

Strutturare i dati in modo opportuno è uno dei principali fattori che influenzano l’efficienza di un algoritmo. Durante il corso si studieranno le strutture dati base quali le liste e gli alberi. Infine il corso fornirà gli strumenti per lo sviluppo di applicazioni attraverso ambienti di programmazione integrati IDE utilizzando il linguaggio C e alcuni cenni sull’analisi della complessità computazionale degli algoritmi.

Conoscenze e comprensione
I risultati attesi di apprendimento prevedono che al termine del corso gli studenti siano in grado di:

1) illustrare le principali caratteristiche dell’architettura di un calcolatore;
2) comprendere le metodologie di rappresentazione e codifica dell’informazione;
3) progettare e implementare un algoritmo;
4) riconoscere ed applicare gli elementi caratterizzanti un linguaggio di programmazione procedurale strutturato (tipi dato, strutture di controllo, funzioni e procedure, gestione dei file e strutture dinamiche);
5) riconoscere le principali strutture dati dinamiche (liste, code, alberi) e i principali algoritmi di oridnamento e di ricerca;
6) effettuare l'analisi della complessità computazionale di un algoritmo;
7) analizzare, interpretare, comprendere e produrre listati di codice in linguaggio C utilizzando degli appositi ambienti di programmazione (IDE).

Capacità di applicare conoscenze e comprensione
Gli studenti saranno in grado di applicare le conoscenze acquisite in diversi ambiti appicativi ed in generale per la risoluzione al computer di processi e sistemi. 

Autonomia di giudizio
Il corso favorisce l'autonomia di giudizio degli studenti attraverso l'analisi critica di problemi computazionali per i quali trovare soluzioni software in grado di risolverlo. Diverse soluzioni proposte dagli studenti sono poste a confronto e valutate criticamente dagli studenti stessi.

Abilità comunicative
È fondamentale che gli studenti siano in grado di comunicare con un pubblico vario e composito, non omogeneo culturalmente, in modo chiaro, logico ed efficace, utilizzando gli strumenti metodologici acquisiti e le loro conoscenze scientifiche e, in particolar modo, il lessico di specialità.
Il corso favorisce lo sviluppo delle abilità inerenti le capacità di esporre in termini precisi e formali le proprietà e le caratteristiche di aloritmi; le analisi su complessità computazionali di codice sorgente in linguaggio C; descrizione di possibili soluzioni algoritmiche a problemi reali.

Le lezioni teoriche si svolgeranno in aula utilizzando slide con esempi alla lavagna. Le esercitazioni si svolgeranno in laboratorio informatico con esercizi svolti direttamente al computer inerenti la programmazione in linguaggio C.

Le slide del corso saranno disponibili sulla piattaforma moodle all'indirizzo: http://sara.unisalento.it/moodle
Utilizzare l'accesso "come ospite" e password "fondainfo"

L’esame è composto da una prova scritta durante la quale si verificheranno le capacità acquisite nella progettazione di un algoritmo, nel riconoscimento delle principali strutture dati e degli algoritmi di base visti a lezione e nell'analisi della complessità computazionale di un algoritmo oltre agli aspetti teorici affrontati nel corso. Durante la prova scritta non sarà consentito l’uso di manuali nè altro materiale di supporto.

Oltre alla prova scritta ci sarà una prova orale/programmazione alla quale si accede solo dopo aver superato la prova scritta. Durante la prova di programmazione verrà valutata la capacità pratica nello sviluppare un semplice programma eseguibile al calcolatore in linguaggio C. La prova di programmazione dura 1 ora, il programma realizzato durante la prova di programmazione verra’ quindi discusso appena terminata la prova. Durante la prova di programmazione si può usare il proprio computer e tutti i manuali e le fonti online utili a risolvere l’esercizio assegnato.

 

Sessione straordianria Marzo 2020 - Esame online

Solo per la sessione straordinaria di Marzo 2020 l'esame si svolgera' online secondo le modalita' di seguito indicate:

 

Connessione
-----------
Per sostenere l'esame e' necessario collegarsi al Team appositamente creato per l'esame attraverso il seguente link

https://teams.microsoft.com/l/team/19%3a828a043ba8494e919376de7c9b3314b1%40thread.tacv2/conversations?groupId=6f273141-fde8-4870-abb7-62648fbdb7d6&tenantId=8d49eb30-429e-4944-8349-dee009bdd7da

il Team e' aperto al pubblico e quindi tutti coloro che hanno il link potranno assistere all'esame.

All'orario prestabilito per l'esame si procede con l'appello degli studenti candidati (solo coloro che sono prenotati sul sistema ESSE3 potranno sostenere l'esame) nel seguente modo: il presidente della commissione contatterà' ad uno ad uno in una chiamata privata i singoli candidati che dovranno attivare microfono e telecamera, ed esibire documento di riconoscimento davanti alla telecamera. In caso di non riconoscimento del volto, l’esame non avrà luogo.

Dopo il riconoscimento si interrompe la chiamata privata e si procede con l'esame all'interno del Team e quindi alla "presenza" di tutti coloro che sono collegati.

Durante tutto lo svolgimento dell'esame e' richiesto che la telecamera e il microfono dei candidati restino sempre attivi, mentre coloro che assistono all'esame dovranno disabilitare microfono e telecamera.

Alla fine della seduta d’esame il docente comunicherà, sempre in chiamata privata, come nel caso del riconoscimento, il voto al candidato e procederà regolarmente con la verbalizzazione online.

NON E' ASSOLUTAMENTE CONSENTITA LA REGISTRAZIONE DELL'ESAME IN NESSUN MOMENTO.

Argomenti e svolgimento dell'esame
----------------------------------
L'esame si svolgerà' alla stessa stregua della prova pratica svolta in laboratorio, i candidati si dovranno collegare con un browser web al link, che verra' comunicato dal docente durante l'esame, dal quale scaricare la traccia. Si ha a disposizione un'ora di tempo per svolgere un esercizio a scelta tra Word oppure Excel. Durante tutto lo svolgimento dell'esame bisogna restare collegati al Team con videocamera e microfono attivati. La consegna del file (.doc oppure .xls) avverrà' sempre attraverso la pagina web dell'esame; si procedera' quindi all'analisi degli elaborati e all'interrogazione dei candidati, uno alla volta in sessione pubblica.

Le date degli appelli d'esame sono disponibili al seguente link: calendario esami di profitto

- Macchina di Turing, architettura di Von Neumann, concetto di algoritmo, macchina astratta (4 ore)
- Rapresentazione delle informazioni (10 ore)
- Strutturare un algoritmo (6 ore)
- Costrutti del linguaggio C, variabili e tipi di dato, funzioni, array puntatori e gestione dinamica della memoria (12 ore)
- Funzioni ricorsive (2 ore)
- Tipi di dato astratto: Pila, Coda, Lista (8 ore)
- Cenni su analisi della complessità computazionale (4 ore)
- Algoritmi di ordinamento: insertion sort, selection sort, bubble sort, merge sort, quick sort (8 ore)
- Algoritmi di ricerca: ricerca esaustiva, ricerca dicotomica (4 ore)
- Alberi binari di ricerca (2 ore)
- Alberi Heap (3 ore)

[1] Cormen, Leiserson, Rivest, Stein, “Introduction to Algorithms. Third edition”, The MIT Press.
[2] Dino Mandrioli, Stefano Ceri, Licia Sbattella, Paolo Cremonesi, Gianpaolo Cugola, “Informatica: Arte e Mestiere  4° Ed.”, McGraw-Hill,, 2014. ISBN: 9788838668487.
[3] B. W. Kernighan, D. M. Ritchie, “Il linguaggio C. Principi di programmazione e manuale di riferimento”, Pearson, 2 edizione 2004, ISBN: 887192200X
[4] Dispense fornite dal docente all’indirizzo http://sara.unisalento.it/moodle

FONDAMENTI DI INFORMATICA (ING-INF/05)
INFORMATICA DI BASE

Corso di laurea LETTERE

Settore Scientifico Disciplinare ING-INF/05

Tipo corso di studio Laurea

Crediti 6.0

Ripartizione oraria Ore totali di attività frontale: 30.0

Per immatricolati nel 2016/2017

Anno accademico di erogazione 2018/2019

Anno di corso 3

Semestre Secondo Semestre (dal 25/02/2019 al 24/05/2019)

Lingua ITALIANO

Percorso PERCORSO COMUNE (999)

Non vi sono prerequisiti specifici

Il corso fornisce gli elementi di base sull’architettura hardware e software di un computer. Verranno inoltre presentati i software applicativi per l’elaborazione dei testi e per l’elaborazione dei dati attraverso un foglio di calcolo.

Il programma del corso e’ il seguente:

L'infrastruttura hardware (3 ore)
      la CPU, La memoria, le periferiche
L’informazione e la sua codifica e cenni sui sistemi operativi (3 ore)
     la rappresentazione digitale dell'informazione
Word Processor (15 ore)
Foglio di Calcolo (9 ore)

Lo studente acquisirà dimestichezza nell’uso dei software applicativi oggetti del corso specificatamente applicativo di elaborazione testo e formattzione avanzata ed applicativo per la gestione di foglio di calcolo per problemi di elaborazione statistica di base dei dati

Le lezioni teoriche si svolgeranno in aula con proiezione di slide. Le lezioni pratiche si svolgeranno in laboratorio e qualora la numerosità degli studenti frequentanti non consenta l'accesso al laboratorio si consigliera' agli studenti di portare un proprio computer portatile in aula.

 

E' inoltre attivo il seguente canale Telegram sul quale verranno inviati messaggi inerenti l'organizzazione del corso e dei relativi esami.

https://t.me/joinchat/AAAAAEnHae3_eZmTcQJsSw

L’esame consiste in una prova pratica della durata di un'ora con la risoluzione di un esercizio da svolgere al computer utilizzando gli applicativi visti durante il corso.

La prova d'esame potrà essere svolta utilizzando il proprio computer o un computer disponbile in laboratorio.

Nel caso si usi il proprio computer è necessario che lo stesso sia configurato per accedere alla rete universitaria "Eduroam" oppure "UNISALENTO" e che siano installati i seguenti software:
- Microsoft word 2007 o superiore / LibreOffice Writer
- Microsoft excel 2007 o superiore / LibreOffice Calc

Le date degli appelli d'esame sono disponibili al seguente link: calendario esami di profitto

Introduzione al corso, Architettura hardware, il processore, la gerarchia della memoria – reti di calcolatori
rappresentazione informazioni e sistema operativo
Word: proprieta' caratteri, paragrafi, sessioni
Word: elenchi strutturati, tabelle, immagini
Word: Stili, sommari, campi
Word: campi, riferimenti incrociati
Word: correttore orgtogtrafico e strumenti di revisione
Excel: tipi di dato, formule e riferimenti
Excel: utilizzo delle funzioni e tipi di grafico
Excel: funzioni statistiche

Gian Luca Rossetti - Elementi di informatica - McGraw Hill - ISBN: 9788838643590
Dennis P. Curtin, Kim Foley, Kunal Sen, Cathleen Morin - Informatica di base 4/ed - McGraw Hill - ISBN: 9788838664151
Slide del corso e dispense su word ed excel disponibili nella sezione "Materiale Didattico"

Pacchetto applicativo Microsoft Office 365 (Licenza Education disponbilie per tutti gli studenti Unisalento)
Accedi

Pacchetto applicatiovo LibreOffice (Open Source)
Accedi

INFORMATICA DI BASE (ING-INF/05)
MOBILE APPLICATIONS DEVELOPMENT

Degree course EUROPEAN HERITAGE, DIGITAL MEDIA AND THE INFORMATION SOCIETY

Subject area ING-INF/05

Course type Laurea Magistrale

Credits 6.0

Teaching hours Ore totali di attività frontale: 42.0

For matriculated on 2018/2019

Year taught 2018/2019

Course year 1

Semestre Primo Semestre (dal 24/09/2018 al 25/01/2019)

Language INGLESE

Subject matter INTERNAZIONALE (A56)

There are no prerequisites; indeed, the course is meant for students without previous programming experience.

The course covers all of the fundamental aspects related to the development of a mobile application using Apple iOS. Meant for students without previous programming experience, the course starts covering the new programming language Swift, using the integrated development environment Xcode. After introducing the Swift programming language and the use of Xcode to develop a simple application, the students will create a basic prototype application, and, gradually, they will implement the application by adding new features until they implement a real, usable application.

The course aims to provide students with the skills required to develop a mobile application using Apple iOS. Therefore, at the end of this course the students will know:

  • The programming language Swift;
  • The integrated development environment Xcode;
  • The fundamental iOS frameworks and their related APIs.

Moreover, at the end of this course the students will acquire the following expertise and technical capabilities:

  • Develop, starting from an initial project idea, a mobile application using Apple iOS;
  • Problem solving;
  • Reading technical documentation;
  • Team working.

– Classroom lectures;
– Laboratory exercises;
– Team work.

The course is based on classroom lectures and laboratory exercises (for a total of 42 hours), in which the students are directly involved. Moreover, there will be some team work assigned, in order for the students to solve exercises and small homework projects. Attending the lectures is strongly advised, since the course is mainly based on the hands on approach.

Students will be evaluated through an oral exam. The students will be required to discuss a project assigned to them. The exam will evaluate how much the students have reached the following didactic aims:

  • Knowledge of the Swift programming language;
  • Ability to design and implement a mobile application using Apple iOS.

Evaluation will take into account the assigned project, the exposition, the formal correctness and the ability to argue and support the student’s theses.

The exam sessions are available through this link: exam sessions

Swift Playgrounds
Build First App
Introduction to Auto Layout
Designing UI Using StackViews
Introduction to Prototyping
Creating a SimpleTable-based App
Using UI AlertController
Introduction to NavigationController and Segue
Introductionto Object-Oriented Programming
Self Sizing Cells and Dynamic Type
Working with Maps
Introduction to StaticTableViews, UIImagePickerController and NSLayoutConstraint
Working with CoreData

Textbook:

Simon Ng, Beginning iOS 10 Programming with Swift. AppCoda

http://www.appcoda.com/swift/

 

Additional, useful references:

The Swift Programming Language. Apple Inc.

Simon Ng, Intermediate Swift and iOS 10 Programming. AppCoda

http://www.appcoda.com/intermediate-swift-programming-book/

MOBILE APPLICATIONS DEVELOPMENT (ING-INF/05)
FONDAMENTI DI INFORMATICA

Corso di laurea INGEGNERIA DELL'INFORMAZIONE

Settore Scientifico Disciplinare ING-INF/05

Tipo corso di studio Laurea

Crediti 7.0

Ripartizione oraria Ore totali di attività frontale: 0.0

Per immatricolati nel 2017/2018

Anno accademico di erogazione 2017/2018

Anno di corso 1

Semestre Secondo Semestre (dal 01/03/2018 al 01/06/2018)

Lingua ITALIANO

Percorso PERCORSO COMUNE (999)

Sede Lecce

Non vi è alcuna propedeuticità.

Per l'analisi della complessità computazionele degli algoritmi sono richieste conoscenze di analisi matematica quali:
- studio di funzioni e analisi asintotica,
- serie numeriche.

Il corso mira a fornire sia elementi di teoria dell’informatica che i principi e le basi per la programmazione. Partendo dal concetto di macchina programmabile in grado di svolgere operazioni seguendo una sequenza codificata di istruzioni elementari si passa alla strutturazione di un algoritmo e quindi alla competenze che permettono di scomporre un problema “complesso” per la macchina in una sequenza di operazioni “elementari”. Durante il corso verranno inoltre studiati gli algoritmi di ordinamento e di ricerca più noti con l’obiettivo di illustrare come differenti scelte nella risoluzione di uno stesso problema possano incidere sull’efficienza di un algoritmo e sui tempi di esecuzione al calcolatore.

Strutturare i dati in modo opportuno è uno dei principali fattori che influenzano l’efficienza di un algoritmo. Durante il corso si studieranno le strutture dati base quali le liste e gli alberi. Infine il corso fornirà gli strumenti per lo sviluppo di applicazioni attraverso ambienti di programmazione integrati IDE utilizzando il linguaggio C e alcuni cenni sull’analisi della complessità computazionale degli algoritmi.

I risultati attesi di apprendimento prevedono che al termine del corso gli studenti siano in grado di:

1) illustrare le principali caratteristiche dell’architettura di un calcolatore;
2) comprendere le metodologie di rappresentazione e codifica dell’informazione;
3) progettare e implementare un algoritmo;
4) riconoscere ed applicare gli elementi caratterizzanti un linguaggio di programmazione procedurale strutturato (tipi dato, strutture di controllo, funzioni e procedure, gestione dei file e strutture dinamiche);
5) riconoscere le principali strutture dati dinamiche (liste, code, alberi) e i principali algoritmi di oridnamento e di ricerca;
6) effettuare l'analisi della complessità computazionale di un algoritmo;
7) analizzare, interpretare, comprendere e produrre listati di codice in linguaggio C utilizzando degli appositi ambienti di programmazione (IDE).

Le lezioni teoriche si svolgeranno in aula utilizzando slide con esempi alla lavagna. Le esercitazioni si svolgeranno in laboratorio informatico con esercizi svolti direttamente al computer inerenti la programmazione in linguaggio C.

Le slide del corso saranno disponibili sulla piattaforma moodle all'indirizzo: http://sara.unisalento.it/moodle
Utilizzare l'accesso "come ospite" e password "fondainfo"

L’esame è composto da una prova scritta durante la quale si verificheranno le capacità acquisite nella progettazione di un algoritmo, nel riconoscimento delle principali strutture dati e degli algoritmi di base visti a lezione e nell'analisi della complessità computazionale di un algoritmo oltre agli aspetti teorici affrontati nel corso. Durante la prova scritta non sarà consentito l’uso di manuali nè altro materiale di supporto.

Oltre alla prova scritta ci sarà una prova orale e di programmazione alla quale si accede solo dopo aver superato la prova scritta. Durante la prova di programmazione verrà valutata la capacità pratica nello sviluppare un semplice programma eseguibile al calcolatore in linguaggio C. La prova di programmazione dura 1 ora, il programma realizzato durante la prova di programmazione verra’ quindi discusso appena terminata la prova. Durante la prova di programmazione si può usare il proprio computer e tutti i manuali e le fonti online utili a risolvere l’esercizio assegnato.

- Macchina di Turing, architettura di Von Neumann, concetto di algoritmo, macchina astratta (4 ore)
- Rapresentazione delle informazioni (10 ore)
- Strutturare un algoritmo (6 ore)
- Costrutti del linguaggio C, variabili e tipi di dato, funzioni, array puntatori e gestione dinamica della memoria (12 ore)
- Funzioni ricorsive (2 ore)
- Tipi di dato astratto: Pila, Coda, Lista (8 ore)
- Cenni su analisi della complessità computazionale (4 ore)
- Algoritmi di ordinamento: insertion sort, selection sort, bubble sort, merge sort, quick sort (8 ore)
- Algoritmi di ricerca: ricerca sequenziale, ricerca dicotomica (4 ore)
- Alberi binari di ricerca (2 ore)
- Alberi Heap (3 ore)

FONDAMENTI DI INFORMATICA (ING-INF/05)
INFORMATICA DI BASE

Corso di laurea LETTERE

Settore Scientifico Disciplinare ING-INF/05

Tipo corso di studio Laurea

Crediti 6.0

Ripartizione oraria Ore totali di attività frontale: 30.0

Per immatricolati nel 2015/2016

Anno accademico di erogazione 2017/2018

Anno di corso 3

Semestre Secondo Semestre (dal 26/02/2018 al 25/05/2018)

Lingua ITALIANO

Percorso PERCORSO COMUNE (999)

Non vi sono prerequisiti specifici

Il corso fornisce gli elementi di base sull’architettura hardware e software di un computer. Verranno inoltre presentati i software applicativi per l’elaborazione dei testi e per l’elaborazione dei dati attraverso un foglio di calcolo.

Il programma del corso e’ il seguente:

L'infrastruttura hardware (3 ore)
      la CPU, La memoria, le periferiche
L’informazione e la sua codifica e cenni sui sistemi operativi (3 ore)
     la rappresentazione digitale dell'informazione
Word Processor (15 ore)
Foglio di Calcolo (9 ore)

Lo studente acquisirà dimestichezza nell’uso dei software applicativi oggetti del corso specificatamente applicativo di elaborazione testo e formattzione avanzata ed applicativo per la gestione di foglio di calcolo per problemi di elaborazione statistica di base dei dati

Le lezioni teoriche si svolgeranno in aula con proiezione di slide. Le lezioni pratiche si svolgeranno in laboratorio e qualora la numerosità degli studenti frequentanti non consenta l'accesso al laboratorio si consigliera' agli studenti di portare un proprio computer portatile in aula.

L’esame consiste in una prova pratica della durata di un'ora con la risoluzione di un esercizio da svolgere al computer utilizzando gli applicativi visti durante il corso.

La prova d'esame potrà essere svolta utilizzando il proprio computer o un computer disponbile in laboratorio.

Nel caso si usi il proprio computer è necessario che lo stesso sia configurato per accedere alla rete universitaria "Eduroam" oppure "UNISALENTO" e che siano installati i seguenti software:
- Microsoft word 2007 o superiore / LibreOffice Writer
- Microsoft excel 2007 o superiore / LibreOffice Calc

Introduzione al corso, Architettura hardware, il processore, la gerarchia della memoria – reti di calcolatori
rappresentazione informazioni e sistema operativo
Word: proprieta' caratteri, paragrafi, sessioni
Word: elenchi strutturati, tabelle, immagini
Word: Stili, sommari, campi
Word: campi, riferimenti incrociati
Word: correttore orgtogtrafico e strumenti di revisione
Excel: tipi di dato, formule e riferimenti
Excel: utilizzo delle funzioni e tipi di grafico
Excel: funzioni statistiche

Gian Luca Rossetti - Elementi di informatica - McGraw Hill - ISBN: 9788838643590
Dennis P. Curtin, Kim Foley, Kunal Sen, Cathleen Morin - Informatica di base 4/ed - McGraw Hill - ISBN: 9788838664151
Slide del corso e dispense su word ed excel disponibili nella sezione "Materiale Didattico"

Pacchetto applicativo Microsoft Office 365 (Licenza Education disponbilie per tutti gli studenti Unisalento)
Accedi

Pacchetto applicatiovo LibreOffice (Open Source)
Accedi

INFORMATICA DI BASE (ING-INF/05)
MOBILE APPLICATIONS DEVELOPMENT

Degree course EUROPEAN HERITAGE,DIGITAL MEDIA AND THE INFORMATION SOCIETY

Subject area ING-INF/05

Course type Laurea Magistrale

Credits 6.0

Teaching hours Ore totali di attività frontale: 0.0

For matriculated on 2017/2018

Year taught 2017/2018

Course year 1

Semestre Primo Semestre (dal 25/09/2017 al 19/01/2018)

Language INGLESE

Subject matter INTERNAZIONALE (A56)

MOBILE APPLICATIONS DEVELOPMENT (ING-INF/05)
FONDAMENTI DI INFORMATICA

Corso di laurea INGEGNERIA DELL'INFORMAZIONE

Settore Scientifico Disciplinare ING-INF/05

Tipo corso di studio Laurea

Crediti 7.0

Docente titolare Italo EPICOCO

Ripartizione oraria Ore totali di attività frontale: 63.0

  Ore erogate dal docente Italo EPICOCO: 54.0

Per immatricolati nel 2016/2017

Anno accademico di erogazione 2016/2017

Anno di corso 1

Semestre Secondo Semestre (dal 01/03/2017 al 02/06/2017)

Lingua ITALIANO

Percorso PERCORSO COMUNE (999)

Sede Lecce

nessun prerequisito

Il corso mira a fornire sia elementi di teoria dell’informatica che i principi e le basi per la programmazione. Partendo dal concetto di macchina programmabile in grado di svolgere operazioni seguendo una sequenza codificata di istruzioni elementari si passa alla strutturazione di un algoritmo e quindi alla competenze che permettono di scomporre un problema “complesso” per la macchina in una sequenza di operazioni “elementari”. Durante il corso verranno inoltre studiati gli algoritmi di ordinamento e di ricerca più noti con l’obiettivo di illustrare come differenti scelte nella risoluzione di uno stesso problema possano incidere sull’efficienza di un algoritmo e sui tempi di esecuzione al calcolatore.

Strutturare i dati in modo opportuno è uno dei principali fattori che influenzano l’efficienza di un algoritmo. Durante il corso si studieranno le strutture dati base quali le liste e gli alberi. Infine il corso fornirà gli strumenti per lo sviluppo di applicazioni attraverso ambienti di programmazione integrati IDE utilizzando il linguaggio C e alcuni cenni sull’analisi della complessità computazionale degli algoritmi.

Macchina di Turing, architettura di Von Neumann, concetto di algoritmo, macchina astratta (4 ore)

Rapresentazione delle informazioni (10 ore)

Strutturare un algoritmo (6 ore)

Costrutti del linguaggio C, variabili e tipi di dato, funzioni, array puntatori e gestione dinamica della memoria (12 ore)

Funzioni ricorsive (2 ore)

Tipi di dato astratto: Pila, Coda, Lista (8 ore)

Cenni su analisi della complessità computazionale (4 ore)

Algoritmi di ordinamento: insertion sort, selection sort, bubble sort, merge sort, quick sort (8 ore)

Algoritmi di ricerca: ricerca sequenziale, ricerca dicotomica (4 ore)

Alberi binari di ricerca (2 ore)

Alberi Heap (3 ore)

FONDAMENTI DI INFORMATICA (ING-INF/05)
INFORMATICA DI BASE

Corso di laurea LETTERE

Settore Scientifico Disciplinare ING-INF/05

Tipo corso di studio Laurea

Crediti 6.0

Ripartizione oraria Ore totali di attività frontale: 0.0

Per immatricolati nel 2014/2015

Anno accademico di erogazione 2016/2017

Anno di corso 3

Semestre Secondo Semestre (dal 20/02/2017 al 20/05/2017)

Lingua

Percorso PERCORSO COMUNE (999)

INFORMATICA DI BASE (ING-INF/05)
FONDAMENTI DI INFORMATICA

Corso di laurea INGEGNERIA DELL'INFORMAZIONE

Settore Scientifico Disciplinare ING-INF/05

Tipo corso di studio Laurea

Crediti 7.0

Docente titolare Italo EPICOCO

Ripartizione oraria Ore totali di attività frontale: 63.0

  Ore erogate dal docente Italo EPICOCO: 54.0

Per immatricolati nel 2015/2016

Anno accademico di erogazione 2015/2016

Anno di corso 1

Semestre Secondo Semestre (dal 29/02/2016 al 03/06/2016)

Lingua ITALIANO

Percorso PERCORSO COMUNE (999)

Sede Lecce

FONDAMENTI DI INFORMATICA (ING-INF/05)
INFORMATICA

Corso di laurea SCIENZE BIOLOGICHE

Settore Scientifico Disciplinare ING-INF/05

Tipo corso di studio Laurea

Crediti 6.0

Ripartizione oraria Ore totali di attività frontale: 56.0

Per immatricolati nel 2015/2016

Anno accademico di erogazione 2015/2016

Anno di corso 1

Semestre Secondo Semestre (dal 14/03/2016 al 10/06/2016)

Lingua ITALIANO

Percorso PERCORSO GENERICO/COMUNE (PDS0-2008)

Sede Lecce

INFORMATICA (ING-INF/05)
INFORMATICA DI BASE

Corso di laurea LETTERE

Settore Scientifico Disciplinare ING-INF/05

Tipo corso di studio Laurea

Crediti 6.0

Ripartizione oraria Ore totali di attività frontale: 0.0

Per immatricolati nel 2013/2014

Anno accademico di erogazione 2015/2016

Anno di corso 3

Semestre Secondo Semestre (dal 22/02/2016 al 21/05/2016)

Lingua

Percorso PERCORSO COMUNE (999)

INFORMATICA DI BASE (ING-INF/05)
INFORMATICA

Corso di laurea SCIENZE BIOLOGICHE

Settore Scientifico Disciplinare ING-INF/05

Tipo corso di studio Laurea

Crediti 6.0

Ripartizione oraria Ore totali di attività frontale: 0.0

Per immatricolati nel 2014/2015

Anno accademico di erogazione 2014/2015

Anno di corso 1

Semestre Secondo Semestre (dal 16/03/2015 al 12/06/2015)

Lingua

Percorso PERCORSO GENERICO/COMUNE (PDS0-2008)

Sede Lecce - Università degli Studi

INFORMATICA (ING-INF/05)
INFORMATICA

Corso di laurea SCIENZE BIOLOGICHE

Settore Scientifico Disciplinare ING-INF/05

Tipo corso di studio Laurea

Crediti 6.0

Ripartizione oraria Ore totali di attività frontale: 0.0

Per immatricolati nel 2013/2014

Anno accademico di erogazione 2013/2014

Anno di corso 1

Semestre Secondo Semestre (dal 17/03/2014 al 13/06/2014)

Lingua

Percorso PERCORSO GENERICO/COMUNE (PDS0-2008)

Sede Lecce - Università degli Studi

INFORMATICA (ING-INF/05)

Pubblicazioni

Book Chapter

 


M. Mirto, M. Passante, I. Epicoco, G. Aloisio “An Interoperable Grid Workflow Management System” book chapter in “Managed Grids and Cloud Systems in the Asia- Pacific Research Community”, Editors: Simon C. Lin; Eric Yen, Publisher: Springer- Verlag New York Inc (2010)

M. Mirto, I. Epicoco, M. Cafaro, S. Fiore, M. Passante, A. negro and G. Aloisio, “ProGenGrid: A Grid Problem Solving Environment for Bioinformatics”, in Handbook of Research on Computational Grid Technologies for Life Sciences, Biomedicine, and Healthcare, Mario Cannataro (Editor), pp. 577-613, IGI Global, 2009

I. Epicoco et al., “The LIBI Grid Platform for Bioinformatics”, in Handbook of Research on Computational Grid Technologies for Life Sciences, Biomedicine, and Healthcare, Mario Cannataro (Editor), pp. 577,-613, , IGI Global, 2009

M. Cafaro, I. Epicoco, G. Quarta, Sandro Fiore, G. Aloisio, “Design and Implementation of a Grid Computing Environment for Remote Sensing”, in “High-Performance Computing in Remote Sensing”, A. Plaza and C. Chang (Eds), pp. 281-308, Chapman & Hall/CRC, 2008

G. Aloisio, M. Cafaro, I. Epicoco, "A Grid Software Process", in "Grid Computing: Software Environments and Tools", Jose C. Cunha and Omer F. Rana (Eds), pp. 75-98, Springer-Verlag, 2006

G. Aloisio, M. Cafaro, I. Epicoco, J. Nabrzyski, "The EU GridLab Project: A Grid Application Toolkit and Testbed", in "Engineering the Grid: Status and Perspective", pp. 123-138, L. T. Yang, Jack Dongarra, Adolfy Hoisie, Beniamino Di Martino and Hans Zima (Eds), American Scientific Publisher 2006

Journals

M. Cafaro, I. Epicoco, S. Fiore, D. Lezzi, S. Mocavero, G. Aloisio, “Near Real-Time Parallel Processing and Advanced Data Management of SAR Images in Grid Environments”, Journal of Real-Time Image Processing, Special issue on architectures and techniques for real-time processing of remotely sensed images, Volume 4, Number 3, pp. 219-227

M. Cafaro, I. Epicoco, M. Mirto, D. Lezzi, G. Aloisio, "The Grid Resource Broker Workflow Engine", Concurrency and Computation: Practice and Experience, Special Issue: 2nd International Workshop on Workflow Management and Applications in Grid Environments (WaGe2007), Volume 20, Issue 15, pp. 1725 - 1739

M. Mirto, S. Fiore, I. Epicoco, M. Cafaro, S. Mocavero, E. Blasi, G. Aloisio, "A Bioinfomatics Grid Alignment Toolkit", Future Generation Computer Systems, Elsevier, Volume 24, Number 7, pp. 752-762, 2008

G. Aloisio, M. Cafaro, G. Carteni, I. Epicoco, S. Fiore, D. Lezzi, M. Mirto , S. Mocavero, "The Grid Resource Broker Portal", Concurrency and Computation: Practice and Experience, Special Issue on Grid Computing Environments, Volume 19, Issue 12 (2007), pp. 1663-1670

G. Aloisio, M. Cafaro, S. Fiore, I. Epicoco, M. Mirto, S. Mocavero, "Performance Analysis of Information Services in a Grid Environment", in the Journal of Systemics, Cybernetics and Informatics (JSCI), Volume 2, Number 5 (2002)

G. Aloisio, M. Cafaro, I. Epicoco, "Early experiences with the GrifFTP protocol using the GRB-GSIFTP library", Future Generation Computer Systems, Volume 18, Number 8 (2002), pp. 1053-1059, Special Issue on Grid Computing: Towards a New Computing Infrastructure, North-Holland

G. Aloisio, M. Cafaro, E. Blasi, I. Epicoco, "The Grid Resource Broker, a Ubiquitous Grid Computing Framework", Journal of Scientific Programming, Volume 10, Number 2 (2002), pp. 113-119, Special Issue on Grid Computing, IOS Press, Amsterdam

Proceedings

I. Epicoco, S. Mocavero, G. Aloisio "Experience on the parallelization of the OASIS3 coupler" Proceedings of 8th Australasian Symposium on Parallel and Distributed Computing (AusPDC 2010), 18-22 January 2010

I. Epicoco, S. Mocavero, G. Aloisio “Oasis3: an MPI1/2 per-field parallel approach” Proceedings of the OASIS User meeting 2009, Toulouse, France, May 25-26, 2009

M. Mirto, M. Cafaro, I. Epicoco, G. Aloisio, "Advances in the ProGenGrid Workflow Management System", IEEE Proceedings of the 1st International Workshop on High Performance Data Grid (HPDataGrid'08), held in conjunction with the 9th International Conference on Parallel and Distributed Computing, Applications and Technologies (PDCAT'08), 1-4 December 2008 - Dunedin, New Zealand, pp. 538-543

 

 

Risorse correlate

Documenti