Corso introduttivo alla risoluzione di problemi e programmazione in linguaggio C. L'obiettivo del corso è fare in modo che al termine lo studente sia in grado di:
Queste conoscenze verranno in parte approfondite in corsi successivi.
Cristiana Bolchini
Telefono: (02 2399) 3619
Email: cristiana . bolchini @ polimi . it
Isabella Poles
Email: isabella . poles @ polimi . it
lunedì 10:15 - 12:15 | 3.0.3
martedì 10:15 - 13:15 | 9.0.1
giovedì 10:15 - 13:15 | T.2.1
giovedì 14:00 - 16:00 (concordato)
venerdì 14:15 - 18:15 | T.1.1 (inizio ore 14:15)
Le sessioni di laboratorio non si terranno tutti i venerdì ma nelle date qui riportate.
23/09* - 21/10 - 11/11 — 25/11 — 16/12.
*: lezione introduttiva all'ambiente di sviluppo (ambiente linux, compilatore gcc, debugger gdb).
La lezione è consigliata a coloro che non hanno mai utilizzato un ambiente di programmazione o sono abituati ad utilizzare ambienti di sviluppo integrati.
Gli argomenti che verranno trattati all'interno del corso sono i seguenti:
Un riepilogo degli argomenti trattati è riportato nel syllabus .
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)
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.
La prova si svolge senza l'uso del calcolatore.
L'attività di laboratorio consiste nello svolgimento autonomo di esercizi. Non si tratta di un'esercitazione guidata, quanto di un momento in cui ogni studente in modo autonomo risolve gli esercizi proposti e chiede aiuto nel caso in cui si trovi in difficoltà al responsabile o ai tutor.
Si tratta di un'opportunità per risolvere problemi simili a quelli proposti in aula durante le lezioni ed esercitazioni (talvolta un po' più articolati vista la modalità di lavoro e il tempo a disposizione) avendo la possibilità di essere supportati.
Lo studente può anche risolvere esercizi diversi da quelli proposti (esercizi presentati a lezione e/o esercitazione, o tratti da precedenti temi d'esame), purchè inerenti il corso.
Ad ogni sessione di laboratorio viene proposta una lista di esercizi che coprono gli argomenti trattati in aula fino a quel momento, pertanto è opportuno aver studiato tali argomenti per utilizzare al meglio il tempo e beneficiare della presenza di persone competenti.
Sono previste 4 sessioni: nei giorni in cui non c'è attività di laboratorio, a meno che non venga comunicato diversamente (ad esempio per recuperare ore perse a causa di sospensioni) non c'è alcun altro tipo di didattica.
Sebbene la prova d'esame si svolga risolvendo esercizi senza l'uso del calcolatore, lo studente al termine del corso deve essere in grado di scrivere il programma, compilarlo ed eseguirlo. Questa capacità non viene direttamente valutata durante le sessioni di laboratorio, ma emerge comunque dalla prova scritta. Si suggerisce quindi di frequentare le sessioni e compilare ed eseguire sempre gli esercizi proposti in aula.
In laboratorio l'ambiente di sviluppo adottato (consigliato anche a fronte dei corsi degli anni successivi) è un ambiente linux, dove il codice viene compilato ed eseguito da linea di comando.
Qualsiasi distribuzione linux va bene.
Coloro che possiedeno un mac possono lavorare direttamente utilizzando il sistema operativo a disposizione, tramite terminale. Il compilatore gcc è già installato. Per il debugger, è disponibile lldb (google: "gcc su mac" oppure google: "come installare Xcode Command Line Tools").
Per coloro che possiedono un pc con Windows 10, una comoda opzione è l'installazione di Ubuntu dal Windows Store (https://tutorials.ubuntu.com/tutorial/tutorial-ubuntu-on-windows#0 oppure google: "ubuntu terminal su windows 10").
Oltre a questa pagina web che riporta le informazioni generali del corso, si farà uso del seguente sito:
Per domande, dubbi e chiarimenti che possono essere di interesse di molti, per favore utilizzate WeBEEP o usufruite dei momenti di ricevimenti.
È anche possibile contattarmi mediante posta elettronica. I messaggi devono avere nel campo oggetto [FINFO] e devono essere firmati. Qualsiasi messaggio che non rispetta questo formato non verrà preso in considerazione.