logo-polimi
Loading...
Risorse bibliografiche
Risorsa bibliografica obbligatoria
Risorsa bibliografica facoltativa
Scheda Riassuntiva
Anno Accademico 2018/2019
Scuola Scuola di Ingegneria Industriale e dell'Informazione
Insegnamento 082746 - FONDAMENTI DI INFORMATICA
Docente Negri Mauro
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*CD082746 - FONDAMENTI DI INFORMATICA
Ing Ind - Inf (1 liv.)(ord. 270) - MI (355) INGEGNERIA DELL'AUTOMAZIONE*CD082746 - FONDAMENTI DI INFORMATICA
Ing Ind - Inf (1 liv.)(ord. 270) - MI (356) INGEGNERIA DELLE TELECOMUNICAZIONI*CD082746 - FONDAMENTI DI INFORMATICA
Ing Ind - Inf (1 liv.)(ord. 270) - MI (357) INGEGNERIA ELETTRONICA*CD082746 - FONDAMENTI DI INFORMATICA
Ing Ind - Inf (1 liv.)(ord. 270) - MI (358) INGEGNERIA INFORMATICAI1ACD082746 - FONDAMENTI DI INFORMATICA
I1TCD082746 - FONDAMENTI DI INFORMATICA
IT1CD082746 - FONDAMENTI DI INFORMATICA

Obiettivi dell'insegnamento

Presentare allo studente gli aspetti fondamentali dell'informatica (algoritmi, programmi, struttura di massima dei calcolatori e dei sistemi informatici). Impartire nozioni basilari sulla programmazione dei calcolatori (linguaggi di programmazione, tecniche di astrazione, tipi di dati fondamentali e strutture di controllo, sottoprogrammi e ricorsione, strutture dati dinamiche, cenni sulla programmazione modulare) approfondendone in egual misura gli aspetti concettuali e sperimentali. L'insegnamento non adotta modalità di didattica innovativa. 


Risultati di apprendimento attesi

Knowledge and understanding

·       Comprendere i meccanismi di codifica dell’informazione all’interno di un calcolatore

·       Conoscere gli elementi basilari dell’architettura di un calcolatore

·       Comprendere gli elementi sintattici e semantica di un linguaggio di programmazione

·       Conoscere i principali costrutti usati nei linguaggi di programmazione imperativi per la rappresentazione e manipolazione dei dati

Applying knowledge and understanding

  • Progettare le strutture dati nella memoria del calcolatore allo scopo di rappresentare efficacemente i dati di uno specifico problema
  • Progettare semplici algoritmi a partire dalla specifica di un problema
  • Selezionare schemi di computazione noti e applicarli per la soluzione di nuovi problemi
  • Implementare algoritmi in linguaggio C

Making judgements

  • Valutare la correttezza degli algoritmi progettati
  • Individuare le strutture dati e gli algoritmi più adatti a specifici problemi
  • Confrontare i benefici e gli svantaggi di diversi approcci algoritmici alla soluzione di un problema dato (e.g., approccio ricorsivo rispetto ad un approccio iterativo)

Lifelong learning skills

  • 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, 8, 16, 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 dei linguaggi, 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 e ricorsione: sottoprogrammi come astrazione sul controllo a livello di unità, 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, sebbene non obbligatoria, assume una particolare importanza 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: componenti della macchina, interfaccia utente, Internet (uso del browser), posta elettronica, applicativi di videoscrittura e fogli elettronici.


Modalità di valutazione

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

·             la risoluzione di problemi numerici (codifica dell’informazione);

·           domande di carattere teorico a risposta aperta;

Esercizi di tipo progettuale:

·       progettazione di semplici strutture dati

·       identificazione e valutazione di algoritmi alternativi per risolvere un problema dato

·       implementazione di un algoritmo in linguaggio C

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.5 / 1.6.5
Area Servizi ICT
11/08/2020