Insegnamento FONDAMENTI DI INFORMATICA

Nome del corso di laurea Ingegneria informatica ed elettronica
Codice insegnamento A003124
Curriculum Ingegneria informatica
Docente responsabile Emilio Di Giacomo
CFU 12
Regolamento Coorte 2025
Erogato Erogato nel 2025/26
Erogato altro regolamento
Anno 1
Periodo Annuale
Tipo insegnamento Obbligatorio (Required)
Tipo attività Attività formativa integrata
Suddivisione

MODULO 1 LINGUAGGIO C

Codice A003125
CFU 6
Docente responsabile Emilio Di Giacomo
Docenti
  • Emilio Di Giacomo
Ore
  • 81 Ore - Emilio Di Giacomo
Attività Caratterizzante
Ambito Ingegneria informatica
Settore ING-INF/05
Tipo insegnamento Obbligatorio (Required)
Lingua insegnamento Italiano
Contenuti Parte in comune con il primo modulo del corso di Fondamenti di Informatica: - CONCETTI PRELIMINARI - PROGRAMMAZIONE PROCEDURALE (Linguaggio C) - RICORSIONE Parte esclusiva per il corso di Fondamenti di Informatica per l'Elettronica: - CENNI ALL'ANALISI DI COMPLESSITA' - RICERCA E ORDINAMENTO
Testi di riferimento Deitel and Deitel “Il linguaggio C, fondamenti e tecniche di programmazione”, Pearson
Obiettivi formativi Dopo una breve introduzione sulla rappresentazione dell'Informazione, viene introdotta la programmazione procedurale, con il linguaggio C. Oltre ad introdurre i costrutti del lingugaggio, viene spiegato agli studenti come affrontare e risolvere semplici problemi di calcolo allo scopo di sviluppare il pensiero computazionale e l'approccio algoritmico alla soluzione dei problemi. A questos copo veien anche introdotta la ricorsione, una tecnica algoritmica fondamentale in informatica. Nella parte esclusiva del corso riservata ai soli studenti del curriculum di elettronica, vengono introdotti brevemente l'analisi id complessità e il problema della ricerca e dell'ordinamento. Al termine del corso ci si aspetta che lo studente abbia le seguenti conoscenze: - conoscenza dei concetti di base della programmazione (tipo di dato, variabile, parametro, strutture di controllo, array) - conoscenza dei costrutti del linguaggio C (funzioni, puntatori, strutture) Al termine del corso ci si aspetta che lo studente abbia le seguenti abilità: - capacità di individuare soluzioni algoritmiche a semplici problemi di calcolo, eventualmente utilizzando la ricorsione; - capacità di implementare tali soluzioni utilizzando il linguaggio C
Prerequisiti Il corso non assume particolari conoscenze preliminari.
Metodi didattici Il corso è organizzato nel seguente modo: 1- Lezioni frontali (54 ore, 6CFU) in cui vengono spiegati i vari argomenti del corso e in cui si svolgono alcuni esercizi per aiutare la comprensione degli argomenti e come preparazione all'esame. 2- Esercitazioni in laboratorio (27 ore, 3CFU) con uso del calcolatore. Gli studenti, supportati dal docente, mettono in pratica, programmando sul calcolatore, i concetti imparati durante le lezioni teoriche. Queste esercitazioni rappresentano anche una preparazione per affrontare la prova pratica di programmazione durante l'esame.
Modalità di verifica dell'apprendimento L'esame consiste nelle due prove di seguito elencate. Esame scritto con test a risposta multipla. Durata:60 minuti Punteggio: 10/30 Obiettivo: accertare la conoscenza dei concetti teorici impartiti nell'insegnamento e la capacità di comprendere ed utilizzare i costrutti del linguaggio C appresi nel corso Prova pratica di programmazione Durata: 120 minuti Punteggio: 20/30 Obiettivo: accertare la capacità dello studente di scrivere semplici programmi in C. Si accede alla prova pratica soltanto se il risultato della prova scritta è sufficiente. Il punteggio complessivo è ottenuto come somma dei punteggi delle due prove. Per informazioni sui servizi di supporto agli studenti con disabilità e/o DSA visita la pagina http://www.unipg.it/disabilita-e-dsa
Programma esteso CONCETTI PRELIMINARI + Rappresentazione dell’informazione (cenni) + Algoritmi, Linguaggi e Programmi PROGRAMMAZIONE PROCEDURALE (Linguaggio C) + Il linguaggio C + Tipi di dato, Variabili, Espressioni + Istruzioni di controllo + Funzioni + Array e Puntatori + Caratteri e stringhe + Input e output + Strutture, unioni e enumerazioni RICORSIONE + Pila e record di attivazione + La ricorsione + Tipi ricorsivi + Ricorsione e iterazione CENNI ALL'ANALISI DI COMPLESSITA' + Efficienza dei programmi + Funzione di costo + Caso migliore, peggiore e medio + Notazione asintotica + Regole per l'analisi id complessità RICERCA E ORDINAMENTO + Il problema della ricerca + Ricerca sequenziale e ricerca binaria + Il problema dell'ordinamento + Esempi di algoritmi di ordinamento

MODULO 2 - LINGUAGGIO JAVA

Codice A003126
CFU 6
Docente responsabile Emilio Di Giacomo
Docenti
  • Emilio Di Giacomo
Ore
  • 54 Ore - Emilio Di Giacomo
Attività Caratterizzante
Ambito Ingegneria informatica
Settore ING-INF/05
Tipo insegnamento Obbligatorio (Required)
Lingua insegnamento ITALIANO
Contenuti - PROGRAMMAZIONE ORIENTATA AGLI OGGETTI (Linguaggio Java) - COLLEZIONI IN JAVA - INTRODUZIONE ALL'ANALISI DI COMPLESSITA'
Testi di riferimento E. Di Giacomo, W. Didimo "Fondamenti di Informatica in Java" Maggioli Editore
Obiettivi formativi Viene prima introdotta la programmazione orientata agli oggetti, con il linguaggio Java. Oltre ad introdurre i costrutti del linguaggio, vengono spiegati ed illustarti con esempi ed esercizi i concetti propri della programmazione ad oggetti (classe e oggetto, informatio hiding, ereditarietà e polimorfismo). Viene introdotta brevemente l'analisi di complessità, la quale viene illustrata anche con esempi relativi al problema della ricerca e dell'rodinamento. Infine, viene introdotto il Java Collection Framework e illustrato l'uso delle collezioni in Java. Al termine del corso ci si aspetta che lo studente abbia le seguenti conoscenze: - conoscenza dei concetti di base della programmazione orientata agli oggetti (classe, oggetto, ereditarietà, polimorfismo) - conoscenza dei costrutti del linguaggio Java (class, interface, tipi generici, collezioni) - conoscenza dei concetti principali relativi all'analisi dicomplesità Al termine del corso ci si aspetta che lo studente abbia le seguenti abilità: - capacità di programmare utilizzando gli strumenti di base del linguaggio Java - capacità di utilizzare le collezioni Java - capacità di valutare la complessità di semplici codici
Prerequisiti Il corso non assume particolari conoscenze preliminari. Il secondo modulo assume che lo studente abbia seguito il primo.
Metodi didattici Il corso è organizzato nel seguente modo: 1- Lezioni frontali (36 ore, 4CFU) in cui vengono spiegati i vari argomenti del corso e in cui si svolgono alcuni esercizi per aiutare la comprensione degli argomenti e come preparazione all'esame. 2- Esercitazioni in laboratorio (18 ore, 2CFU) con uso del calcolatore. Gli studenti, supportati dal docente, mettono in pratica, programmando sul calcolatore, i concetti imparati durante le lezioni teoriche. Queste esercitazioni rappresentano anche una preparazione per affrontare la prova pratica di programmazione durante l'esame.
Modalità di verifica dell'apprendimento L'esame consiste nelle due prove di seguito elencate. Esame scritto con test a risposta multipla. Durata:60 minuti Punteggio: 10/30 Obiettivo: accertare la conoscenza dei concetti teorici impartiti nell'insegnamento e la capacità di comprendere ed utilizzare i costrutti del linguaggio Java appresi nel corso Prova pratica di programmazione Durata: 120 minuti Punteggio: 20/30 Obiettivo: accertare la capacità dello studente di scrivere semplici programmi in Java. Si accede alla prova pratica soltanto se il risultato della prova scritta è sufficiente. Il punteggio complessivo è ottenuto come somma dei punteggi delle due prove. Per informazioni sui servizi di supporto agli studenti con disabilità e/o DSA visita la pagina http://www.unipg.it/disabilita-e-dsa
Programma esteso PROGRAMMAZIONE ORIENTATA AGLI OGGETTI (Linguaggio Java) + Programmazione orientata agli oggetti + Tipi di dato, variabili, espressioni + Realizzazione di classi + Istruzioni di controllo + Array + Ereditarietà e polimorfismo COLLEZIONI IN JAVA + Tipi generici + Java Collection Framework + Collection, Set, List, e Map INTRODUZIONE ALL'ANALISI DI COMPLESSITA' Efficienza dei programmi + Funzione di costo + Caso migliore, peggiore e medio + Notazione asintotica + Regole per l'analisi di complessità + Esempi su ricerca e ordinamento
Condividi su