Facoltà di Ingegneria - Guida degli insegnamenti (Syllabus)

Programma

Nuova ricerca Nuova ricerca    Stampa scheda Stampa scheda

Fondamenti di Informatica (INF)
Fundamentals of Computer Science
Aldo Franco Dragoni

Sede Ingegneria
A.A. 2016/2017
Crediti 9
Ore 72
Periodo II
Lingua ITA

Prerequisiti
Nessuno

Risultati di apprendimento attesi
CONOSCENZE E COMPRENSIONE:
L'insegnamento mira a dare le basi dell'Informatica e della programmazione di un elaboratore elettronico digitale. Esso si pone due obiettivi: 1. introdurre consapevolmente lo studente ai concetti base dell’architettura di un calcolatore e della rappresentazione binaria dell’informazione. 2. spiegare come si elabora l'informazione digitale, cioè fornire i rudimenti della programmazione di un elaboratore digitale e dei linguaggi di programmazione utilizzando il paradigma imperativo e introducendo gli elementi di quello ad oggetti e del linguaggio Assembly.
CAPACITA' DI APPLICARE LE CONOSCENZE:
Alla conclusione del corso gli studenti saranno in grado di codificare correttamente l'informazione in formato digitale e formulare semplici problemi computazionali in forma di algoritmi e tradurli in programmi usando correttamente la sintassi di un linguaggio di programmazione
COMPETENZE TRASVERSALI:
la capacità di pianificare i passi da svolgere per risolvere un problema contribuiranno a sviluppare l'autonomia di giudizio e il pensiero comutazionale degli studenti.

Programma
Codifica binaria dei testi: ASCII, ISO_8859/1-15, UNICODE, UTF-8. Codifica binaria dei suoni, delle immagini e dei video. Codifica dei numeri Naturali, Interi e Reali. Principali operazioni aritmetiche. Architettura di Von Neumann. Architettura funzionale di un microprocessore (IA-32). Memorie di Massa. Programmazione in Assembly: operandi, istruzioni, direttive dati, etichette, sottoprogrammi, Stack, "call" e "ret", programmazione modulare, I/O, compilazione. Evoluzione dei Linguaggi Imperativi e Programmazione strutturata. Software, copyright e copyleft. Tipi di dato fondamentali. Conversioni di tipo. Funzioni di libreria. Assegnamento. Operatori aritmetici, logici e relazionali. Il concetto di I/O-stream e file-stream. Istruzioni condizionali. Istruzioni ripetitive. Istruzioni di salto. Teorema di Bohm-Jacopini. Il concetto di funzione. Funzioni ricorsive. Puntatori e riferimenti. Passaggio argomenti per valore e per riferimento. Array. Stringhe. Array come argomenti di funzioni. Il tipo struct. Memoria dinamica: new e delete. Liste semplici e principali operazioni con le liste. Object Oriented Programming, classe, definizione di classe, specificatori di accesso, information hiding / incapsulamento, oggetti, attributi e metodi, funzioni inline e offline, header files ed intestazioni di classe, costruttori e distruttori, Standard Runtime Library, header file, compilazione condizionale, header guards, argomenti del main(). Classi derivate, tipi di ereditarietà, ereditarietà multipla, binding dinamico, polimorfismo. Programmazione generica. templates di funzione. templates di classe. Modelli di compilazione (per inclusione, separata).

Modalità di svolgimento dell'esame
METODI DI VALUTAZIONE DELL'APPRENDIMENTO
L'esame si svolge in due prove: una prova di programmazione in C++ ed una prova scritta con domande sui fondamenti dell'informatica e piccoli problemi di "debugging" di algoritmi, sempre in C++

CRITERI DI VALUTAZIONE DELL'APPRENDIMENTO
La valutazione verte sulla pratica: lo studente deve dimostrare di saper programmare in C++ secondo i principi della "programmazione strutturata". La conoscenza dei principi della digitalizzazione delle informazioni serve come valutazione complementare.

CRITERI DI MISURAZIONE DELL'APPRENDIMENTO
Normalmente la prova di programmazione vale 18/30 e quella di teoria vale 12/30.

CRITERI DI ATTRIBUZIONE DEL VOTO FINALE
per la valutazione finale si sommano i voti riportati nelle due prove

Testi consigliati
Luis Joyanes Aguilar, "Fondamenti di programmazione in C++", The McGraw-Hill Companies. John R. Hubbard, "Programmare in C++, seconda edizione, (470 esercizi svolti)", The McGraw-Hill Companies

Corsi di laurea
  • Ingegneria Informatica e dell'Automazione (Corso di Laurea Triennale (DM 270/04))




Università Politecnica delle Marche
P.zza Roma 22, 60121 Ancona
Tel (+39) 071.220.1, Fax (+39) 071.220.2324
P.I. 00382520427