logo-polimi
Loading...
Risorse bibliografiche
Risorsa bibliografica obbligatoria
Risorsa bibliografica facoltativa
Scheda Riassuntiva
Anno Accademico 2014/2015
Scuola Scuola di Ingegneria Industriale e dell'Informazione
Insegnamento 082746 - FONDAMENTI DI INFORMATICA
Docente Bolchini Cristiana
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 (358) INGEGNERIA INFORMATICAI1AAE082746 - FONDAMENTI DI INFORMATICA
082823 - COMPLEMENTI DI INFORMATICA

Programma dettagliato e risultati di apprendimento attesi

Obiettivi del corso di Fondamenti di Informatica

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.

 

Programma delle lezioni e delle esercitazioni

1. Concetti introduttivi: Algoritmi, programmi e linguaggi - Struttura di massima di un calcolatore e di un sistema informatico (hardware, software, Sistema Operativo, reti) - 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: codifica e aritmetica), codifica dei numeri reali, codifica di caratteri e dati multimediali). Cenni di aritmetica binaria.

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.

7. I processi e le funzioni per la loro gestione: creazione dei processi, spazio di memoria e contesto di un processo (semplificato), esecuzione programmi e controllo variabili e sincronizzazione padre e figli.

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. 

Per l'attività di laboratorio gli studenti saranno divisi in squadre, che svolgono lo stesso lavoro.

La valutazione dallo studente viene effettuata sul complesso del lavoro svolto e deriva dalla frequente interazione informale docente/discente. Ogni sessione di laboratorio costituisce pertanto un momento congiunto di didattica e di valutazione. La frequenza al laboratorio assume pertanto una particolare importanza.

 

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.


Note Sulla Modalità di valutazione

L’esame prevede una verifica scritta con eventuale discussione orale su richiesta del docente. Durante l'anno si terranno due prove in itinere il cui superamento sostituisce la prova scritta.

L'attività di laboratorio viene svolta solo nel semestre del corso e non prevede recupero: per conseguire una valutazione che contribuisca al punteggio finale è necessario dimostrare di saper risolvere semplici problemi mediante lo sviluppo di un programma e la sua esecuzione.

La prova d'esame e la valutazione del laboratorio contribuiscono indicativamente al voto finale nel seguente modo

90% verifica scritta (prove in itinere o appello singolo)

10% attività di laboratorio


Bibliografia
Risorsa bibliografica facoltativaS.Ceri, D.Mandrioli, et al, Informatica: Programmazione
Risorsa bibliografica facoltativaA. Bellini, A. Guidi, Linguaggio C - Guida alla programmazione
Risorsa bibliografica facoltativaB. Kernighan, D. Ritchie, Linguaggio C [ANSI C]
Risorsa bibliografica facoltativaS.Ceri, D.Mandrioli, et al, Informatica: arte e mestiere
Risorsa bibliografica facoltativaD. Braga, D. Martinenghi, Fondamenti di Informatica: Esercizi tratti da Temi d'Esame
Risorsa bibliografica facoltativaKim N. King, Programmazione in C, Editore: Apogeo, ISBN: 8850328699
Risorsa bibliografica facoltativaJeri R. Hanly, Elliot B. Koffmann, Problem solving e programmazione in C, Editore: Apogeo, Anno edizione: 2013, ISBN: 8838786410

Software utilizzato
Nessun software richiesto

Mix Forme Didattiche
Tipo Forma Didattica Ore didattiche
lezione
54.0
esercitazione
40.0
laboratorio informatico
20.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
Possibilità di sostenere l'esame in lingua inglese
Disponibilità di supporto didattico in lingua inglese
schedaincarico v. 1.8.3 / 1.8.3
Area Servizi ICT
28/09/2023