logo-polimi
Loading...
Risorse bibliografiche
Risorsa bibliografica obbligatoria
Risorsa bibliografica facoltativa
Scheda Riassuntiva
Anno Accademico 2019/2020
Scuola Scuola di Ingegneria Industriale e dell'Informazione
Insegnamento 082746 - FONDAMENTI DI INFORMATICA
Docente Matera Maristella
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) - MI (349) INGEGNERIA ELETTRICA*AZZZZ083559 - INFORMATICA B
PEZSAZ082746 - FONDAMENTI DI INFORMATICA
Ing Ind - Inf (1 liv.)(ord. 270) - MI (355) INGEGNERIA DELL'AUTOMAZIONE*PEZSAZ082746 - FONDAMENTI DI INFORMATICA
Ing Ind - Inf (1 liv.)(ord. 270) - MI (356) INGEGNERIA DELLE TELECOMUNICAZIONI*PEZSAZ082746 - FONDAMENTI DI INFORMATICA
Ing Ind - Inf (1 liv.)(ord. 270) - MI (357) INGEGNERIA ELETTRONICA*PEZSAZ082746 - FONDAMENTI DI INFORMATICA
Ing Ind - Inf (1 liv.)(ord. 270) - MI (358) INGEGNERIA INFORMATICAI1APEZSAZ082746 - FONDAMENTI DI INFORMATICA
I1TPEZSAZ082746 - FONDAMENTI DI INFORMATICA
IT1PEZSAZ082746 - FONDAMENTI DI INFORMATICA

Obiettivi dell'insegnamento

Corso di introduzione agli aspetti fondamentali dell’informatica, ossia alla risoluzione dei problemi e alla programmazione in linguaggio C, con riferimento all’architettura di massima dei sistemi di calcolo. L’obiettivo del corso è fare in modo che lo studente/la studentessa sia in grado di risolvere problemi mediante lo sviluppo di programmi, avendo acquisito le conoscenze di base (tecniche di astrazione, tipi di dati fondamentali e strutture di controllo, sottoprogrammi, strutture dati dinamiche, cenni di programmazione modulare e cenni di ricorsione). L’attenzione è posta in egual misura agli aspetti concettuali e a quelli sperimentali. L'insegnamento non adotta modalità di didattica innovativa.


Risultati di apprendimento attesi

DdD1. Conoscenza e comprensione

  • Comprensione dei meccanismi di codifica dell’informazione all’interno di un calcolatore
  • Conoscenza degli elementi basilari dell’architettura di un calcolatore
  • Comprensione degli elementi di sintassi e semantica del linguaggio di programmazione C
  • Conoscenza dei principali costrutti usati nei linguaggi di programmazione imperativi per la rappresentazione e manipolazione dei dati

DdD2. Capacità di applicare conoscenze e comprensione

  • Progettazione di strutture dati nella memoria del calcolatore allo scopo di rappresentare efficacemente i dati di uno specifico problema
  • Progettazione di semplici algoritmi a partire dalla specifica di un problema
  • Realizzazione dell’algoritmo mediante un programma in linguaggio C
  • Selezione di schemi di computazione noti e loro applicazione per la soluzione di nuovi problemi

DdD3. Autonomia di giudizio

  • Valutazione della correttezza degli algoritmi progettati
  • Individuazione di strutture dati e algoritmi più adatti a specifici problemi
  • Confronto benefici e svantaggi di diversi approcci algoritmici alla soluzione di un problema dato

DdD5. Capacità di apprendimento

  • Essere in grado di apprendere nuovi linguaggi e paradigmi di programmazione
  • Essere in grado di utilizzare le conoscenze e competenze apprese per affrontare in maniera metodologica problemi complessi

Argomenti trattati
  1. Concetti introduttivi: Algoritmi, programmi e linguaggi - Struttura di massima di un calcolatore e di un sistema informatico (hardware, software, Sistema Operativo) - Catena di programmazione.
  2. Logica e codifica binaria dell’informazione (logica proposizionale, operatori logici AND, OR, NOT, leggi di De Morgan), rappresentazione dei numeri interi (base 2, 16, notazione in complemento alla base 2), aritmetica binaria, rappresentazione dei numeri reali (notazione in virgola fissa e in virgola mobile), codifica dei caratteri.
  3. Aspetti fondamentali della programmazione (con riferimento al linguaggio C): il linguaggio di programmazione e le esigenze di astrazione, la sintassi, struttura di un programma monomodulo, astrazione sui dati (concetto di tipo e tipi base del linguaggio, operatori e compatibilità, i costruttori di tipo array, struct,puntatori), astrazione sul controllo dell'esecuzione (strutture di controllo condizionali, di selezione, iterative).
  4. Sottoprogrammi: sottoprogrammi come astrazione per la realizzazione modulare dei programmi, 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).
  5. Strutture dati dinamiche, liste collegate a puntatori.
  6. Strutture dati persistenti: i file (concetti, operazioni, organizzazione logica), integrazione tra strutture dati in memoria centrale e su file.

Attività di laboratorio

L’attività del laboratorio ha lo scopo di rendere familiare allo studente sia l’utilizzo pratico del calcolatore sia i metodi e le tecniche utilizzate nella programmazione dei calcolatori.

La frequenza al laboratorio è facoltativa e costituisce un’attività particolarmente importante ai fini dell’apprendimento della materia.

L'insegnamento non adotta modalità di didattica innovativa.


Prerequisiti

Nozioni di base sulle caratteristiche e l'uso del personal computer: interfaccia utente, Internet (uso del browser), posta elettronica.


Modalità di valutazione

L’esame prevede una verifica scritta di circa due ore su tutti gli argomenti dell'insegnamento. In particolare, l'esame prevede: 

  • la risoluzione di problemi numerici sulla codifica dell’informazione (Descrittore Dublino DdD1);
  • domande di carattere teorico a risposta aperta (Descrittori Dublino DdD1, DdD2,DdD3,DdD5);
  • progettazione di semplici strutture dati e algoritmi (Descrittore Dublino DdD2);
  • identificazione e valutazione di algoritmi alternativi per risolvere un problema dato (Descrittore Dublino DdD3);
  • implementazione di programmi in linguaggio C (Descrittori Dublino DdD1, DdD2, DdD3, DdD5).

L'attività di laboratorio non contribuisce alla valutazione dell'esame.


Bibliografia
Risorsa bibliografica facoltativaKim N. King, Programmazione in C, Editore: Apogeo
Risorsa bibliografica facoltativaP. Deitel, H Deitel, IL linguaggio C, Editore: Pearson
Risorsa bibliografica facoltativaJeri R. Hanly, Elliot B. Koffmann, Problem solving e programmazione in C, Editore: Apogeo
Risorsa bibliografica facoltativaIra Pohl, Al Kelley, C: didattica e programmazione, Editore: Pearson

Forme didattiche
Tipo Forma Didattica Ore di attività svolte in aula
(hh:mm)
Ore di studio autonome
(hh:mm)
Lezione
52:00
78:00
Esercitazione
40:00
60:00
Laboratorio Informatico
16:00
4:00
Laboratorio Sperimentale
0:00
0:00
Laboratorio Di Progetto
0:00
0:00
Totale 108:00 142:00

Informazioni in lingua inglese a supporto dell'internazionalizzazione
Insegnamento erogato in lingua Italiano
Disponibilità di libri di testo/bibliografia in lingua inglese
Disponibilità di supporto didattico in lingua inglese
schedaincarico v. 1.6.2 / 1.6.2
Area Servizi ICT
04/06/2020