FONDAMENTI DI INFORMATICA II

Insegnamento
FONDAMENTI DI INFORMATICA II
Insegnamento in inglese
FOUNDATION OF COMPUTER SCIENCE II
Settore disciplinare
ING-INF/05
Corso di studi di riferimento
INGEGNERIA DELL'INFORMAZIONE
Tipo corso di studio
Laurea
Crediti
6.0
Ripartizione oraria
Ore Attività frontale: 54.0
Anno accademico
2020/2021
Anno di erogazione
2021/2022
Anno di corso
2
Lingua
ITALIANO
Percorso
PERCORSO COMUNE

Descrizione dell'insegnamento

Il programma dell'insegnamento è provvisorio e potrebbe subire delle modifiche

Elementi di teoria dell’informatica. Principi e basi per la programmazione. Esecuzione di operazioni seguendo una sequenza codificata di istruzioni elementari. Concetto di algoritmo. Algoritmi di base e strutture dati.

Non vi è alcuna propedeuticità ma sono suggerite le conoscenze di Fondamenti di Informatica I.

Il corso intende fornire conoscenze di programmazione orientata agli oggetti e sviluppare le competenze necessarie per progettare e sviluppare semplici programmi. E’ la naturale prosecuzione del corso di Fondamenti di Informatica I, benché i contenuti siano pienamente autonomi.

Nel concreto, il corso affronta in profondità il linguaggio di programmazione Java, analizzandolo in tutti i suoi dettagli. Ogni concetto esposto è sperimentato in modo pratico insieme agli studenti, utilizzando il personal computer e strumenti di sviluppo moderni e ampiamente diffusi nel mondo industriale.

Conoscenze e comprensione. Al termine del corso gli studenti: (a) conosceranno i principi della programmazione orientata agli oggetti, in relazione alle caratteristiche del software; (b) conosceranno nel dettaglio il linguaggio Java cioè oggetti, classi, tipi di dati fondamentali, strutture di controllo, ereditarietà, interfacce e librerie; (c) comprenderanno le tecniche di codifica in Java di algoritmi; (d) comprenderanno come utilizzare i principali ambienti di sviluppo Java anche in relazione delle singole necessità rappresentate nei requisiti del software.

Capacità di applicare conoscenze e comprensione. Gli studenti saranno in grado di applicare le conoscenze acquisite in diversi ambiti applicativi e, in generale, per la codifica al computer in linguaggio Java di logica di business.

Autonomia di giudizio. Il corso favorisce l'autonomia di giudizio degli studenti attraverso l'analisi critica di problemi di modellazione del software da requisiti funzionali e non funzionali, per i quali trovare le soluzioni adeguate a risolverli in linguaggio Java. Diverse soluzioni proposte interattivamente dagli studenti saranno poste a confronto e valutate criticamente dagli studenti stessi.

Abilità comunicative. Gli studenti apprenderanno come comunicare adeguatamente e con il corretto livello di formalismo le scelte di design adottate e le strategie di implementazione scelte. Il metodo di insegnamento interattivo e teorico/pratico favorirà momenti di confronto in cui mettere in pratica tali abilità comunicative.

Capacità di apprendimento. La materia in costante evoluzione (sia le tecniche di sviluppo orientate agli oggetti, sia i linguaggi che le implementano) richiederà agli studenti la capacità di aggiornarsi e di ricercare materiale on-line, valutandone anche la qualità. Il metodo didattico favorirà l’approfondimento autonomo da parte degli studenti, incuriosendoli su tecniche di sviluppo evolute (vedi i design pattern) che saranno oggetto del corso di Principi di Ingegneria del Software.

Lezioni on-line o frontali, esercitazioni pratiche svolte preferibilmente con l’uso del personal computer, elaborazione individuale di semplici programmi Java.

L'esame prevede una prova orale per la verifica dell'apprendimento dei concetti teorici (verifica delle conoscenze) e della capacità di applicazione dei medesimi, in particolare per la codifica autonoma di semplici programmi Java (verifica delle competenze). Durante l’esame lo studente dovrà usare preferibilmente il proprio personal computer, configurato con gli ambienti di sviluppo illustrati e utilizzati durante il corso.

Si veda www.ing.unisalento.it.

www.unisalento.it/people/luca.mainetti

Presentazione dettagliata del corso e delle modalità d’esame (2 ore). Dalla programmazione procedurale alla programmazione orientata agli oggetti (2 ore). Introduzione al linguaggio Java (2 ore). Utilizzare oggetti (2 ore). Realizzare classi Java (2 ore). Tipi di dati fondamentali Java (2 ore). Decisioni (4 ore). Iterazioni (4 ore). Array e vettori (4 ore). Progettare le classi (4 ore). Ereditarietà (4 ore). Interfacce (4 ore). Ingresso/uscita e gestione delle eccezioni (4 ore). Ricorsione (4 ore). Ordinamento e ricerca (4 ore). Introduzione a Java Collections Framework (4 ore). Cenni su analisi della complessità computazionale (2 ore).

Cay Horstmann, “Concetti di Informatica e Fondamenti di Java”, Settima Edizione, Apogeo Education, Maggioli Editore, 2020.

Semestre

Tipo esame
Obbligatorio

Valutazione
Orale - Voto Finale

Orario dell'insegnamento
https://easyroom.unisalento.it/Orario

Scarica scheda insegnamento (Opens New Window)(Opens New Window)