fondamenti di informatica

Scuola di Ingegneria Industriale e dell’Informazione
A. A. 2017-2018

informazioni generali

Cristiana Bolchini
Phone: (02 2399) 3619
Email: cristiana DOT bolchini AT polimi DOT it

Lorenzo Di Tucci
Email: lorenzo DOT ditucci AT polimi DOT it

Matteo Luperto
Email: matteo DOT luperto AT polimi DOT it

Andrea Romanoni
Email: andrea DOT romanoni AT polimi DOT it

orario del corso

lezione ed esercitazione in aula

Lunedì 9:15 - 11:15
Martedì 8:15 - 11:15
Giovedì 10:15 - 13:15

ricevimento studenti

Venerdì 14:15 - 17:15 ufficio DEIB

esercitazione con il calcolatore (laboratorio)

Mercoledì 9:15 - 12:15 (arrivare in aula per le 9:00)

Nota: Le sessioni di laboratorio non si terranno tutti i mercoledì ma nelle date qui riportate.

04/10* - 11/10 - 18/10 - 22/11 - 29/11 - 6/12 - 13/12.
*: lezione introduttiva all'ambiente di sviluppo (ambiente linux, compilatore gcc, debugger gdb)

obiettivi del corso

Corso introduttivo alla risoluzione di problemi e programmazione in linguaggio C. L'obiettivo del corso è fare in modo che al termine del corso lo studente sia in grado di:

Queste conoscenze verranno in parte approfondite in corsi successivi.

programma del corso

Gli argomenti che verranno trattati all'interno del corso sono i seguenti:

Un riepilogo degli argomenti trattati è riportato nel <a href='http://home.deib.polimi.it/bolchini/docs/syllabus.pdf''>syllabus</a>

testi di riferimento

Manuali del linguaggio C (in alternativa tra loro)

* argomenti trattati in un ordine/modo simile a quanto fatto nel corso
** molto bello il modo di spiegare come individuare un algoritmo dato il problema da risolvere (parte di problem solving)

ambiente di sviluppo: linux/unix

In laboratorio l'ambiente di sviluppo adottato (consigliato anche a fronte dei corsi degli anni successivi) è un ambiente linux, dove il codice viene compilato da linea di comando.

È stata preparata inoltre una VirtualBox identica a quella utilizzata per le esercitazioni con il calcolatore, con tutto il software necessario, ed è scaricabile all'indirizzo http://poseidon.ws.dei.polimi.it/repository/fondinfo2012.ova (1.06GB). L'ambiente della virtual machine è una distribuzione Ubuntu non aggiornata (per limitare la dimensione del file): se desiderate aggiornare il software, la password dell'utente è nopassword.

Coloro che possiedeno un mac non hanno bisogno di installare VirtualBox: possono lavorare direttamente utilizzando il sistema operativo a disposizione, tramite terminale. Il compilatore gcc è già installato. Per il debugger, è disponibile lldb.

materiale di supporto

modalità d'esame

Riferite al regolamento didattico valido per tutti i corsi di Fondamenti di Informatica

L'esame prevede una verifica scritta con eventuale discussione orale (esclusivamente nel caso di verifica scritta ampiamente sufficiente) su richiesta del docente.

attività di laboratorio -- esercitazioni con il calcolatore

L'attività di laboratorio consiste nello svolgimento autonomo di esercizi proposti con il calcolatore: in ogni sessione verranno proposti alcuni esercizi e gli studenti dovranno provare a risolverli (nel caso lo studente non faccia in tempo a risolvere tutti gli esercizi, rimarranno come spunti da risolvere a casa). Gli esercizi risolti non devono essere consegnati: verrà però utilizzato un sistema di validazione automatica del codice sviluppato, che permette di sottomettere il proprio codice e vedere se il comportamento del programma rispetta le specifiche date (nessuna valutazione sulla qualità della soluzione proposta). L'utilizzo di questo strumento è del tutto volontario.
Durante l'attività di laboratorio è presente in aula un responsabile che potrà dare supporto in caso di difficoltà.

siti web

Oltre a questa pagina web che riporta le informazioni generali del corso, si farà uso dei seguenti siti:

Per accedere a Piazza è necessario registrarsi, per l'altro l'accesso avviene tramite il sistema di autenticazione unica del Politecnico (assicurarsi di non aver problemi con tale autenticazione o non sarà possibile svolgere e consegnare gli esercizi di laboratorio e di casa. È quindi fondamentale disporre dell'autenticazione unica del Politecnico entro la prima sessione di laboratorio).

contatti

È stato attivato uno spazio su piazza.com per le interazioni con i docenti. Ogni studente iscritto al corso verrà invitato a registrarsi al corso per poter accedere al forum/chat. In questo modo verrà anche condiviso materiale e altre informazioni di interesse generale. È quindi preferibile utilizzare questo strumento (ci sono anche le app per smartphone).
È anche possibile contattare i docenti mediante posta elettronica. I messaggi devono avere nel campo subject [FINFO] e devono essere firmati. Qualsiasi messaggio che non rispetta questo formato non verrà preso in considerazione.

È possibile scaricare il volantino del corso che riporta queste informazioni: volantino (198 KB).

Elenco degli argomenti delle lezioni per l'anno accademico 2017-2018 (aggiornato di volta in volta ...)

  • argomentodettaglio
  • rappresentazione dell'informazione i numeri naturali e i numeri relativi
  • rappresentazione dell'informazione i numeri reali in virgola mobile, il codice ASCII
  • algoritmi dal problema all'algoritmo
  • algoritmi introduzione agli algoritmi ed esempi
  • programmazione in C introduzione al C
  • programmazione in C cast, costrutto di selezione if, condizioni, espressioni
  • laboratorio ambiente di lavoro
  • programmazione in C costrutti ciclici while e do-while
  • programmazione in C esercizi fino ai cicli
  • programmazione in C array monodimensionali e costrutto for
  • laboratorio costrutti di controllo
  • programmazione in C esercizi fino agli array
  • programmazione in C array bidimensionali e strutture e typedef
  • programmazione in C esercizi array mono e bidimensionali, strutture
  • laboratorio array
  • programmazione in C stringhe
  • programmazione in C esercizi stringhe
  • programmazione in C sottoprogrammi
  • programmazione in C sottoprogrammi: passaggio parametri
  • programmazione in C esercizi sottoprogrammi base
  • programmazione in C esercizi sottoprogrammi avanzati
  • programmazione in C ricorsione (e relativi esercizi)
  • programmazione in C file
  • programmazione in C esercizi file

Elenco degli argomenti delle lezioni per l'anno accademico 2016-2017 (per farsi un'idea...)

  • argomentodettaglio
  • rappresentazione dell'informazione i numeri naturali e i numeri relativi
  • rappresentazione dell'informazione i numeri relativi e la base esadecimale
  • rappresentazione dell'informazione i numeri reali in virgola mobile, il codice ASCII
    introduzione agli algoritmi
  • algoritmi algoritmi
  • algoritmi algoritmi e introduzione al C
  • programmazione in C cast, costrutto di selezione if, condizioni, espressioni
  • programmazione in C costrutti ciclici while e do-while
  • programmazione in C esercizi fino al costrutto di selezione
  • programmazione in C esercizi su costrutti ciclici
  • programmazione in C array e costrutto for
  • laboratorio ambiente di lavoro
  • programmazione in C esercizi su array mono e bi-dimensionali
  • programmazione in C stringhe e struct
  • laboratorio costrutti di controllo
  • programmazione in C esercitazione sulle stringhe e struct
  • programmazione in C esercizi su array mono/bi-dimensionali
  • programmazione in C file di testo
  • laboratorio costrutti di controllo
  • programmazione in C esercizi vari
  • programmazione in C file binari
  • programmazione in C esercizi su file
  • assembly e architettura della CPU il linguaggio assembly
  • laboratorio array mono e bi-dimensionali, stringhe
  • programmazione in C esercizi di ripasso prima prova
  • programmazione in C sottoprogrammi
  • laboratorio array mono e bi-dimensionali, stringhe, file
  • programmazione in C sottoprogrammi e passaggio parametri
  • programmazione in C sottoprogrammi, passaggio parametri e argomenti da linea di comando
  • programmazione in C sottoprogrammi
  • programmazione in C ricorsione
  • programmazione in C ricorsione
  • laboratorio sottoprogrammi
  • programmazione in C allocazione dinamica
  • programmazione in C liste concatenate semplici
  • programmazione in C liste concatenate semplici
  • architettura del calcolatore architettura del calcolatore hw e sw
  • programmazione in C esercizi sulle liste concatenate
  • programmazione in C esercizi di ripasso
  • programmazione in python introduzione a python
  • programmazione in python python e C
  • esercitazione di ripasso esercizi di ripasso