Strumenti Utente

Strumenti Sito


informatica:prl:start

Programmazione I e laboratorio

Docenti: Corso A: Roberto Barbuti, Corso B: Fabio Gadducci, Paolo Milazzo

Docenti laboratorio: Davide Bacciu, Nadia Pisanti, Alina Sirbu

Supporto alla didattica laboratorio: Pasquale Bove (bovepas@di.unipi.it), Marco Cornolti, Marco Grandi, Rita Pucci

Lezioni Programmazione I:

Corso A Corso B
Giorno Ora Aula Giorno Ora Aula
Lunedì 9-11 B Lunedì 9-11 C
Martedì 9-11 B Martedì 9-11 C
Giovedì 9-11 B Giovedì 9-11 C

Pagina ufficiale del corso (appunti delle lezioni, materiale didattico, avvisi, esercitazioni, ecc.) qui

Programma del corso

Obiettivi di apprendimento Introduzione alla risoluzione di problemi e alla programmazione con esercitazioni in laboratorio.

Programma

  • Grammatiche libere
  • Presentazione del Linguaggio funzionale Caml
  • Programmazione funzionale
  • Presentazione del Linguaggio imperativo C (rappresentazione numerica, funzioni, procedure, parametri, puntatori)
  • Programmazione imperativa (array, liste, ecc.)
  • Definizione di un interprete in Caml del Linguaggio Imperativo

Laboratorio di Programmazione C (A.A. 2016/17)

Comunicazioni

(30/12/2016) ESERCITAZIONI APPELLO

Sono disponibili sulla piattaforma di autovalutazione alcune esercitazioni di prova in vista degli appelli invernali (incluso il testo della prova del 14 Dicembre 2016).

(05/12/2016) LABORATORI DEL 7/12

Il giorno 7/12/2016 il laboratorio del Gruppo AB delle 14 in aula M non avra' luogo. Gli studenti di questo gruppo potranno seguire la lezione di Laboratorio alle ore 16 in aula H o in aula M distribuendosi adeguatamente. Ci scusiamo per il disagio.

(04/12/2016) PROVA GENERALE ESAME DI LABORATORIO

Il giorno 14/12/2016 offriremo l'opportunita' di fare una simulazione di prova d'esame di laboratorio. Cio' avverra' nelle aule e nell'orario usato dai vari gruppi nel corso del semestre.

(30/11/2016) CALENDARIO ESAMI SESSIONE INVERNALE

Il secondo compitino si terra' il giorno 20/12/2016 alle ore 9:00 nelle aule Fib A, Fib B, Fib C, Fib A1, Fib C1. La prova di laboratorio per coloro che hanno superato lo scritto con i compitini si terra' il giorno 9/1/2017 nelle aule Fib H e Fib M a partire dalle ore 11:00 (ci saranno probabilmente almeno due turni di cui solo il primo avra' luogo al mattino). Seguiranno gli orali.

Primo appello: Compito scritto 19/01/2017 ore 14:00 aule Fib A, Fib A1, Fib B, Fib C. Prova di Laboratorio per coloro che hanno superato lo scritto 27/1/2017 ore 14:00 aule Fib H e Fib M. Seguiranno gli orali.

Secondo appello: Compito scritto 9/02/2017 ore 14:00 aule Fib A, Fib A1, Fib B, Fib C. Prova di Laboratorio per coloro che hanno superato lo scritto 17/2/2017 ore 14:00 aule Fib H e Fib M. Seguiranno gli orali.

Per partecipare ad una prova di esame, compito o compitino o laboratorio che sia, e' necessario iscriversi !!

(09/11/2016) NO LEZIONE DI LABORATORIO IL 16/11 Si ricorda che, come da calendario comunicato alla prima lezione, il giorno Mercoledi' 16/11 non si terranno lezioni di laboratorio. Queste riprenderanno il 23/11: grande occasione per mettersi in pari con gli esercizi!!!

(18/10/2016) PIATTAFORMA AUTOVALUTAZIONE ONLINE La piattaforma di autovalutazione è ora online. Si raccomanda di registrarsi con username che seguano la sintassi cognome.nome.corso (ad esempio: bacciu.davide.A1). E' stato predisposto anche un forum per discutere lezioni ed esercitazioni di laboratorio. Per poter postare sul forum è necessario che l'utente sia loggato sulla piattaforma di autovalutazione.

(19/09/2016) PRIMA LEZIONE LABORATORIO La prima lezione del Laboratorio di Programmazione si terrà Mercoledì 05 Ottobre 2016, aule H ed M, nelle fasce orarie 11-13, 14-16 e 16-18. Maggiori dettagli sulla suddivisione degli studenti in gruppi verranno comunicati su questa stessa pagina nelle prossime settimane.

Organizzazione e Lezioni

Programma

  • struttura di un programma e compilazione
  • elementi del linguaggio: tipi di dato primitivi e definiti dall'utente, espressioni
  • input/output
  • operatori di controllo del flusso
  • memoria: algebra dei puntatori ed allocazione dinamica
  • strutture dati: array, struct e liste

Suddivisione in gruppi con NUOVA (dal 13/10/2016) assegnazione slot in laboratorio

Corso Gruppo Studenti Docente Aula Orario
A&B AB Da AAAAA a CARFORA corso A, da AAAAA a CADEDDU corso B Nadia Pisanti M Mercoledì 14:00 - 16:00
A A1 Da CARNACCIOLI a LOMBARDO Davide Bacciu H Mercoledì 14:00 - 16:00
A A2 Da MAGNANINI a ZZZZZ Nadia Pisanti H Mercoledì 11:00 - 13:00
B B1 Da CALIFANO a MACIS Davide Bacciu H Mercoledì 16:00 - 18:00
B B2 Da MAGRINI a ZZZZZ Alina Sirbu M Mercoledì 16:00 - 18:00

Calendario lezioni

Lezione Gruppo Data Aula Argomento
1 A1 05/10/16 14-16 H Introduzione a UNIX e alla Shell ( slides - rubrica per esercitazione)
A2 05/10/16 14-16 M
B1 05/10/16 16-18 H
B2 05/10/16 16-18 M
AB 05/10/16 11-13 H
2 A1 12/10/16 14-16 H Introduzione alla Programmazione in C ( slides, Esercizio aggiuntivo, Soluzione esercizio aggiuntivo)
A2 12/10/16 14-16 M
B1 12/10/16 16-18 H
B2 12/10/16 16-18 M
AB 12/10/16 11-13 H
3 A1 19/10/16 14-16 H Tipi primitivi e costrutti condizionali ( slides)
A2 19/10/16 11-13 H
B1 19/10/16 16-18 H
B2 19/10/16 16-18 M
AB 19/10/16 14-16 M
4 A1 26/10/16 14-16 H Costrutti iterativi ed array ( slides)
A2 26/10/16 11-13 H
B1 26/10/16 16-18 H
B2 26/10/16 16-18 M
AB 26/10/16 14-16 M
5 A1 09/11/16 14-16 H Funzioni, stack e visibilita' delle variabili ( slides)
A2 09/11/16 11-13 H
B1 09/11/16 16-18 H
B2 09/11/16 16-18 M
AB 09/11/16 14-16 M
6 A1 23/11/16 14-16 H Puntatori, allocazione e gestione della memoria ( slides)
A2 23/11/16 11-13 H
B1 23/11/16 16-18 H
B2 23/11/16 16-18 M
AB 23/11/16 14-16 M
7 A1 30/11/16 14-16 H Tipi di dato utente ( slides)
A2 30/11/16 11-13 H
B1 30/11/16 16-18 H
B2 30/11/16 16-18 M
AB 30/11/16 14-16 M
8 A1 07/12/16 14-16 H Liste concatenate in C ( slides)
A2 07/12/16 11-13 H
B1 07/12/16 16-18 H
B2 07/12/16 16-18 M
AB 07/12/16 16-18 H/M
9 A1 14/12/16 14-16 H Simulazione prova pratica
A2 14/12/16 11-13 H
B1 14/12/16 16-18 H
B2 14/12/16 16-18 M
AB 14/12/16 14-16 M

Materiale Didattico

Macchina Virtuale Linux

E' stata predisposta una macchina virtuale Debian per coloro che volessero svolgere le esercitazioni di laboratorio sul proprio PC/MAC senza installare Linux in una partizione del disco. Un tutorial che ne descrive l'installazione passo-passo può essere scaricato qui. Il tutorial contiene un link per scaricare la macchina virtuale già configurata per le esigenze del laboratorio.

Se riscontrate problemi nell'utilizzo della macchina virtuale su sistemi Windows provvedete ad attivare le opzioni di virtualizzazione. A tal fine accedete al BIOS della macchina: il sistema cambia a seconda dell'hardware ma tipicamente richiede la pressione di un tasto funzione, esc, canc, etc, all'avvio della macchina. Nel menù del BIOS cercate l'opzione Virtualization Technology (tipicamente si trova in Advanced (Chipset) Settings, vedi screenshot) e abilitatela selezionando enabled. Salvate e riavviate: a questo punto la macchina virtuale dovrebbe essere utilizzabile senza problemi.

Materiali online

Buona parte dei contenuti del Laboratorio sono trattati in questa dispensa. Per il corso sono di particolare interesse i Capitoli 1-7.

Link utili

Libri di Riferimento

  Dennis M. Ritchie, Brian W. Kernighan
  Il linguaggio C Principi di programmazione e manuale di riferimento
  Pearson Italia
  ISBN: 9788871922003
  Al Kelley, Ira Pohl
  C. Didattica e programmazione
  Pearson Italia
  ISBN: 8871922190

Il seguente è un libro di riferimento per l'utilizzo di Linux da terminale. Gli argomenti del corso sono trattati nella Parte 1. Essendo pubblicato sotto licenza Creative Commons, può essere scaricato gratuitamente.

  William Shotts
  The Linux Command Line
  No Starch Press
  ISBN: 9781593273897
informatica/prl/start.txt · Ultima modifica: 30/12/2016 alle 16:39 (4 mesi fa) da Davide Bacciu