Insegnamento FONDAMENTI DI INFORMATICA E LABORATORIO
Nome del corso | Ingegneria informatica ed elettronica |
---|---|
Codice insegnamento | 70A00085 |
Curriculum | Comune a tutti i curricula |
Docente responsabile | Emilio Di Giacomo |
Docenti |
|
Ore |
|
CFU | 9 |
Regolamento | Coorte 2021 |
Erogato | Erogato nel 2021/22 |
Attività | Base |
Ambito | Matematica, informatica e statistica |
Settore | ING-INF/05 |
Tipo insegnamento | Obbligatorio (Required) |
Tipo attività | Attività formativa monodisciplinare |
Lingua insegnamento | ITALIANO |
Contenuti | CONCETTI PRELIMINARI PROGRAMMAZIONE IMPERATIVA (Linguaggio C) PROGRAMMAZIONE ORIENTATA AGLI OGGETTI (Linguaggio Java) RICORSIONE ARGOMENTI AVANZATI IN JAVA |
Testi di riferimento | E. Di Giacomo, W. Didimo "Fondamenti di Informatica in Java" Maggioli Editore Deitel & Deitel "Il linguaggio C, fondamenti e tecniche di programmazione", Pearson |
Obiettivi formativi | Il corso rappresenta il primo insegnameno di informatica e fornisce le nozioni di base di tale disciplina. La prima parte del corso è rivolto ad insegnare gli elementi di base della programmazione. Vengono introdotte sia la programmazione imperativa, con il linguaggio C, che la programmazione orientata agli oggetti, con il linguaggio Java. Viene poi introdotto l'uso della ricorsione. L'ultima parte del corso, infine, introduce argomenti avanzati del linguaggio Java: classi innestate, tipi generici, tipi enumerativi, gestione degli errori e flussi di input/output. Al termine del corso ci si aspetta che lo studente abbia le seguenti conoscenze: - conoscenza delle rappresentazioni binarie dell'informazione (codifica di interi, codifica di numeri reali in virgola mobile, codifica di caratteri) - conoscenza dei concetti di base della programmazione (tipo di dato, variabile, parametro, strutture di controllo, array) - conoscenza dei concetti di base della programmazione orientata agli oggetti (classe, oggetto, ereditarietà, polimorfismo) Al termine del corso ci si aspetta che lo studente abbia le seguenti abilità: - capacità di programmare utilizzando gli strumenti di base del linguaggio C - capacità di programmare utilizzando gli strumenti di base del linguaggio Java - capacità di utilizzare la ricorsione - capacità di utilizzare gli strumenti avanzati del linguaggio Java |
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 (36 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. |
Altre informazioni | |
Modalità di verifica dell'apprendimento | L'esame consiste nelle due prove di seguito elencate. Esame scritto di natura teorica e applicativa Durata:120 minuti Punteggio: 30/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: 30/30 Obiettivo: accertare la capacità dello studente di scrivere semplici programmi Java, tipicamente costituiti da un paio di classi. Il punteggio complessivo è ottenuto come media dei punteggi ottenuti nelle due prove ed è considerato sufficiente a patto che i voti di entrambe le prove siano sufficienti. I risultati delle prove sono presentate allo studente durante un breve colloquio, in cui lo studente e il docente si confrontano sul quanto presentato dallo studente e sui giudizi formulati dal docente. 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 | Programma: CONCETTI PRELIMINARI + Architettura del calcolatore + Rappresentazione dell’informazione + Algoritmi, Linguaggi e Programmi PROGRAMMAZIONE IMPERATIVA (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 + Uso di file in C 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 RICORSIONE (C e Java) + Pila e record di attivazione + La ricorsione + Tipi ricorsivi + Ricorsione e iterazione ARGOMENTI AVANZATI IN JAVA + Classi innesttate + Tipi generici + Java Collection Framework + Tipi enumerativi + Gestione degli errori + Flussi di Input/Output |