logo-polimi
Loading...
Risorse bibliografiche
Risorsa bibliografica obbligatoria
Risorsa bibliografica facoltativa
Scheda Riassuntiva
Anno Accademico 2017/2018
Scuola Scuola di Ingegneria Industriale e dell'Informazione
Insegnamento 082746 - FONDAMENTI DI INFORMATICA
Docente Della Vigna Pierluigi
Cfu 10.00 Tipo insegnamento Monodisciplinare

Corso di Studi Codice Piano di Studio preventivamente approvato Da (compreso) A (escluso) Insegnamento
Ing Ind - Inf (1 liv.)(ord. 270) - CO (360) INGEGNERIA INFORMATICAIOLAZZZZ082823 - COMPLEMENTI DI INFORMATICA
082746 - FONDAMENTI DI INFORMATICA
IORAZZZZ082746 - FONDAMENTI DI INFORMATICA

Programma dettagliato e risultati di apprendimento attesi

 

Obiettivi

 

Il corso ha come obiettivo la comprensione dell'architettura del calcolatore e l'apprendimento dei principi della programmazione. 

 

Argomenti

Introduzione ai sistemi di calcolo e alla soluzione di problemi mediante programmi

Organizzazione di un sistema di calcolo

  • architettura di Von Neumann, ciclo fetch-decode-execute, la rappresentazione dell’informazione.

Il sistema di calcolo

  • visione astratta: dispositivi fisici, microarchitettura, linguaggio macchina, software di sistema (sistema operativo, editor, compilatore, interprete comandi), software applicativo
  • hardware: CPU, memoria principale (di lavoro) e secondaria (di massa), la gerarchia di memoria, dispositivi di ingresso/uscita, la struttura del bus, organizzazione della CPU
  • sistema operativo: tipologia, modello a strati, kernel, gestore della memoria, gestore delle periferiche, file system, meccanismi e politiche di gestione delle risorse.

La rappresentazione dell’informazione

  • sistemi numerici: sistema binario, sistema ottale, decimale e esadecimale
  • numeri naturali: rappresentazione nei sistemi binario, ottale, decimale ed esadecimale,
  • conversione da un sistema ad un altro.
  • numeri relativi: rappresentazione nei sistemi binario, notazione in modulo e segno, notazione in complemento alla base (sistema binario, notazione in complemento a 2)
  • numeri razionali: rappresentazione nel sistema binario, notazione virgola fissa, notazione virgola mobile (standard IEEE 754).

La soluzione del problema: introduzione agli algoritmi

  • algoritmi e diagrammi di flusso
  • I linguaggi di programmazione
  • linguaggio macchina, assembly e linguaggi di alto livello (il linguaggio C++)

Il linguaggio C++

  • aspetti di base: la struttura di un programma, direttive al preprocessore (#define, #include), i tipi di dato fondamentali (int, float e char), variabili semplici e strutturate (array e strutture), costrutto di assegnamento, operatori e espressioni aritmetiche (+ - * / %), operatori e espressioni logiche (== != > >= < <=) acquisizione dati (istream) e visualizzazione risultati (ostream), il controllo dell’esecuzione (if, if else, while, do while, switch, for).
  • sottoprogrammi e ricorsione: passaggio dei parametri, dati locali, regole di visibilità, sviluppo top-down per raffinamento, ricorsione, supporto a run-time per la gestione della chiamata e ritorno da sottoprogramma (record di attivazione, stack e stack pointer).
  • strutture dati dinamiche: allocazione dinamica della memoria e liste concatenate. gli alberi
  • strutture dati persistenti: i file (concetti, operazioni, organizzazione logica), integrazione tra strutture dati in memoria centrale e su file.
  • fondamenti della programmazione ad oggetti: classi, dati membro e funzioni membro
  • le librerie standard 

Il linguaggio C

  • Differenze tra C e C++; programmazione in C

Gli ambienti di programmazione

  • Sistemi integrati di sviluppo di programmi
  • Repository di codice sorgente

Note Sulla Modalità di valutazione

Per lo studente del corso in presenza

La valutazione avviene tramite: 1) sviluppo di un programma in aula informatica, sia durante la prova in itinere sia negli appelli di esame; 2) sviluppo di un progetto di programmazione assegnato all'inizio del corso e consegnato in concomitanza dell'appello d'esame; 3) un esame orale svolto durante l'appello d'esame. ***Indicativamente***, la valutazione attribuice peso pari al 50% agli scritti svolti in aula informatica e pari al  25% all'orale e al progetto.Inoltre sarà valutato lo sviluppo di soluzioni a problemi di programmazione assegnati e consegnati durante lo svolgimento del corso; tale valutazione contribuirà (in modo positivo o in negativo) a determinare il giudizio complessivo dell'esame. Le soluzioni a problemi e assegnamenti di programmazione devono essere realizzate e consegnate secondo gli standard tecnici resi noti all'inizio del corso.

Per lo studente del corso on line

Durante il corso saranno effettuate delle prove in itinere, che saranno valutate con un giudizio in scala crescente: insufficiente, scarso, sufficiente, discreto, buono, ottimo. L'esame, che si svolge in presenza, prevede una prova scritta, che avrà il duplice scopo di confermare le competenze dimostrate a distanza durante il corso e di permettere il recupero di eventuali carenze evidenziate nelle prove in itinere. Un colloquio finale conclude l'esame.


Bibliografia
Risorsa bibliografica facoltativaStanley B. Lippman , JosÂe Lajoie , Barbara E. Moo, C++ Primer , Editore: Addison-Wesley Professional
Risorsa bibliografica facoltativaDeitel & Deitel, C++ Fondamenti di programmazione , Editore: Apogeo
Risorsa bibliografica obbligatoria(per gli alunni del corso in presenza) G. Cabodi, P. E. Camurati e altri, Dal Problema al Programma, Editore: Maggioli Editore
Risorsa bibliografica obbligatoria(per gli alunni del corso on line) Materiale didattico (lezioni ed esercizi) sul portale corsiOnLine

Mix Forme Didattiche
Tipo Forma Didattica Ore didattiche
lezione
52.0
esercitazione
40.0
laboratorio informatico
24.0
laboratorio sperimentale
0.0
progetto
0.0
laboratorio di progetto
0.0

Informazioni in lingua inglese a supporto dell'internazionalizzazione
Insegnamento erogato in lingua Italiano
Disponibilità di materiale didattico/slides in lingua inglese
Disponibilità di libri di testo/bibliografia in lingua inglese
Possibilità di sostenere l'esame in lingua inglese
Disponibilità di supporto didattico in lingua inglese
schedaincarico v. 1.6.5 / 1.6.5
Area Servizi ICT
27/09/2020