FONDAMENTI DI INFORMATICA

FONDAMENTI DI INFORMATICA

_
iten
Codice
66054
ANNO ACCADEMICO
2019/2020
CFU
9 cfu al 1° anno di 8719 INGEGNERIA INFORMATICA (L-8) GENOVA
SETTORE SCIENTIFICO DISCIPLINARE
ING-INF/05
LINGUA
Italiano
SEDE
GENOVA (INGEGNERIA INFORMATICA )
periodo
Annuale
materiale didattico

PRESENTAZIONE

La progettazione e lo sviluppo di software rappresenta uno dei cardini dell’odierna ingegneria e dello sviluppo di sistemi complessi. Fondamenti di Informatica è un corso introduttivo che descrive diversi concetti base in modo semplice ed organico. Il corso affronta sia argomenti teorici sia aspetti pratici, questi ultimi legati allo sviluppo di codice C/C++.

OBIETTIVI E CONTENUTI

OBIETTIVI FORMATIVI

Obiettivi: fornire metodologie di progettazione software secondo il paradigma procedurale e il paradigma orientato agli oggetti. Contenuti. Architettura di un calcolatore, strutture dati, analisi di problemi, loro risoluzione algoritmica, prestazioni degli algoritmi, programmazione procedurale strutturata e orientata agli oggetti col C++.

OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO

Gli obiettivi formativi specifici sono articolati lungo tre direttrici:

1. Comprensione di aspetti di informatica teorica di base, legati alla matematica discreta.

2. Concettualizzazione di aspetti legati alle fondamenta della programmazione.

3. Estensione di tali concetti al caso della programmazione modulare e a tipi di dati astratti.

Alla fine del corso gli studenti saranno in grado di tradurre specifiche in un programma scritto in linguaggio C/C++ strutturandolo seguendo una serie di linee guida definite nel corso.

PREREQUISITI

Nessuno

Modalità didattiche

Il corso prevede lezioni frontali e lezioni pratiche. Le lezioni pratiche implicano una serie di esercitazioni che gli studenti devono svolgere in autonomia, e nel caso abbiano dubbi e osservazioni chiedere assistenza agli esercitatori, con ritmo settimanale.

PROGRAMMA/CONTENUTO

Il programma del corso si articola su tre argomenti:

1. Elementi di matematica discreta: teoria degli insiemi, relazioni e funzioni, strutture algebriche di base, introduzione al calcolo combinatorio.

2. Fondamenti di programmazione: introduzione all’informatica (architettura dei calcolatori, codifica dell’informazione), introduzione alla programmazione (algoritmi, programmi e linguaggi di programmazione), programmazione strutturata in linguaggio C++ (variabili, costanti, tipi, operatori, espressioni, condizioni, cicli, funzioni, array mono-dimensionali, stringhe di caratteri, array multi-dimensionali, flussi e file, strutture, array di strutture), programmazione avanzata in linguaggio C++ (puntatori e riferimenti, allocazione dinamica della memoria, funzioni ricorsive, template di funzioni).

3. Programmazione modulare e tipi di dato astratti: classi e oggetti (metodi e attributi, controllo di accesso ai membri, tipologie di metodi: costruttori, distruttore, selettori, modificatori, operatori, e overload di operatori, template di classi), astrazione sui dati (information hiding, tipi di dato astratti, principio di indipendenza dalla rappresentazione), applicazione dei tipi di dato astratti per la realizzazione di strutture dati (liste, pile, code).

TESTI/BIBLIOGRAFIA

Il materiale didattico comprende:

- i lucidi presentati a lezione, disponibili in tre diversi formati: 2 lucidi per pagina, 4 lucidi per pagina, 6 lucidi per pagina;

- il materiale relativo alle esercitazioni, che sarà reso disponibile contestualmente ad ogni esercitazione.

Per chi volesse seguire un libro di testo si consiglia:

Per la marte di matematica discreta: C. Delizia, P. Longobardi, M. Maj, C. Nicotera. Matematica Discreta, McGraw-Hill (qualunque edizione).

Per la parte di programmazione: L. J. Aguilar. Fondamenti di Programmazione in C++. McGraw-Hill (qualunque edizione). 

DOCENTI E COMMISSIONI

Ricevimento: Il docente è disponibile su appuntamento. Per prendere un appuntamento inviare una e-mail a gualtiero.volpe@unige.it, oppure telefonare allo 0103536542 (ufficio) o allo 0102758252 (laboratorio presso Casa Paganini).

Ricevimento: Il docente è disponibile per appuntamento previa email: nel suo ufficio al secondo piano del Padiglione E, Via Opera 13, 16145, Genova, in EMAROlab, Viale Causa 18, 16145, Genova.

Commissione d'esame

GUALTIERO VOLPE (Presidente)

FULVIO MASTROGIOVANNI (Presidente)

RENATO UGO RAFFAELE ZACCARIA

TULLIO VERNAZZA

PIERPAOLO BAGLIETTO

LEZIONI

Modalità didattiche

Il corso prevede lezioni frontali e lezioni pratiche. Le lezioni pratiche implicano una serie di esercitazioni che gli studenti devono svolgere in autonomia, e nel caso abbiano dubbi e osservazioni chiedere assistenza agli esercitatori, con ritmo settimanale.

ORARI

L'orario di tutti gli insegnamenti è consultabile su EasyAcademy.

Vedi anche:

FONDAMENTI DI INFORMATICA

ESAMI

Modalità d'esame

L’esame di compone di una prova pratica e di una prova orale. La prova pratica si può sostenere, a scelta dello studente, secondo due modalità diverse: un’unica prova pratica alla fine del secondo semestre oppure due prove intermedie, una dopo la fine del primo semestre, e una dopo la fine del secondo semestre.

Modalità di accertamento

La prova pratica consiste di un esame al calcolatore, e può dare fino a 20 punti. Per chi sceglie le prove parziali, ogni prova può dare fino a 10 punti. Sono ammessi alla prova orale soltanto gli studenti che superano la prova pratica (o le due prove parziali), in particolare secondo una soglia che può essere definita di volta in volta e in base all’esame. L’esame orale fornisce fino a 10 punti.

Calendario appelli

Data Ora Luogo Tipologia Note
15/01/2020 09:00 GENOVA Prova pratica
15/01/2020 09:00 GENOVA Compitino
04/02/2020 09:00 GENOVA Prova pratica
04/02/2020 09:00 GENOVA Compitino
12/06/2020 09:00 GENOVA Prova pratica
03/07/2020 09:00 GENOVA Prova pratica
20/07/2020 09:00 GENOVA Prova pratica
07/09/2020 09:00 GENOVA Prova pratica

ALTRE INFORMAZIONI

Nessuna