Insegnamento FONDAMENTI DI INFORMATICA E LABORATORIO

Corso
Ingegneria informatica ed elettronica
Codice insegnamento
70A00085
Curriculum
Comune a tutti i curricula
Docente
Emilio Di Giacomo
Docenti
  • Emilio Di Giacomo
Ore
  • 90 ore - Emilio Di Giacomo
CFU
9
Regolamento
Coorte 2021
Erogato
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
Condividi su