PROGRAMMING AND DATA STRUCTURES

Teaching in italian
PROGRAMMAZIONE E STRUTTURE DI DATI
Teaching
PROGRAMMING AND DATA STRUCTURES
Subject area
INF/01
Reference degree course
MANAGEMENT ENGINEERING
Course type
Bachelor's Degree
Credits
6.0
Teaching hours
Frontal Hours: 54.0
Academic year
2025/2026
Year taught
2025/2026
Course year
1
Language
ITALIAN
Curriculum
PERCORSO COMUNE
Reference professor for teaching
MAINETTI LUCA
Location
Lecce

Teaching description

Non vi è alcuna propedeuticità per il corso.

Il corso affronta i temi introduttivi alla programmazione: organizzazione dei sistemi di calcolo, concetto di algoritmo, elementi della programmazione strutturata, introduzione ai linguaggi di programmazione, introduzione alla strutturazione dei dati, elementi di base del linguaggio Java.

Il corpus principale del corso intende fornire conoscenze di programmazione orientata agli oggetti e sviluppare le competenze necessarie per progettare, sviluppare e collaudare semplici programmi Java, anche grazie all’uso dell’intelligenza artificiale. Ogni concetto è sperimentato in modo pratico, 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 gli aspetti generali del linguaggio Java cioè oggetti, classi, tipi di dati fondamentali, strutture di controllo, ereditarietà, interfacce; (c) comprenderanno le tecniche di codifica in Java di algoritmi; (d) conosceranno le principali strutture dati e l’organizzazione delle basi di dati; (e) comprenderanno come utilizzare i principali ambienti di sviluppo Java anche in relazione delle singole necessità rappresentate nei requisiti del software e nella strutturazione dei dati e comprenderanno il ruolo dell’intelligenza artificiale nel processo di sviluppo e collaudo 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 e intelligenza artificiale generativa per lo sviluppo del software).

Lezioni frontali, esercitazioni pratiche svolte con l’uso del personal computer, elaborazione individuale di semplici programmi Java. Alle esercitazioni è dato moltissimo spazio durante il corso poiché il 75% delle lezioni affronta la materia in modo pratico.

Le modalità d’esame sono discusse a inizio corso. Nell’intenzione del docente, 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.

www.dii.unisalento.it

www.unisalento.it/people/luca.mainetti

Presentazione del corso e delle modalità d’esame (1 ora). Struttura dei sistemi di calcolo (2 ore). Raccogliere e rappresentare i requisiti funzionali (3 ore). Definire l'architettura dei dati (2 ore). Introduzione al linguaggio Java e all’ambiente di sviluppo (2 ore). Utilizzare oggetti Java (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 (2 ore). Ereditarietà (4 ore). Interfacce (4 ore). Ingresso/uscita e gestione delle eccezioni (4 ore). Ricorsione (2 ore). Ordinamento e ricerca (4 ore). Introduzione a Java Collections Framework (4 ore). Intelligenza artificiale e sviluppo del software (2 ore).

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

Semester
Second Semester (dal 03/03/2026 al 12/06/2026)

Exam type
Compulsory

Type of assessment
Oral - Final grade

Course timetable
https://easyroom.unisalento.it/Orario

Component by
PROGRAMMING AND DATA STRUCTURES (LB09R)

Download teaching card (Apre una nuova finestra)(Apre una nuova finestra)