Strumenti Utente

Strumenti Sito


informatica:prl:start

Programmazione I e laboratorio

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

Docenti laboratorio: Davide Bacciu, Roberta Gori, Nadia Pisanti, Giovanna Rosone

Supporto alla didattica laboratorio: TBD

Lezioni Programmazione I:

Corso A Corso B
Giorno Ora Aula Giorno Ora Aula
Lunedì 9-11 A Martedì 11-13 A
Mercoledì 11-13 A Mercoledì 16-18 A
Giovedì 16-18 A Venerdì 9-11 A

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. 2017/18)

Comunicazioni

(06/11/2017) ANTICIPO LEZIONE LABORATORIO GRUPPO A3 La lezione del gruppo A3 del giorno 15/11/2017 verrà anticipata a VENERDI'10/11/2017, dalle 14:00 alle 16:00 in aula M. La lezione del giorno 08/11/2017 si terrà senza variazioni.

(18/10/2017) CAMBIO SLOT GRUPPO B1 e B3 Dalla prossima lezione, gli studenti del gruppo B1 faranno la lezione il martedì dalle 14:00, mentre gli studenti del gruppo B3 la faranno mercoledì dalle 11:00 (vedi tabella sotto per maggiori dettagli).

(10/10/2017) PROVA DI LABORATORIO APPELLO STRAORDINARIO DI NOVEMBRE La prova di laboratorio per coloro che superano lo scritto dell'appello straordinario di Novembre si terrà il giorno Venerdi 10/XI alle ore 14:00 in aula H.

(3/10/2017) RECUPERO LEZIONE LABORATORIO GRUPPO A1 La lezione del gruppo A1 (saltata il 26 Settembre per i test CINECA, poi prevista il 6 ottobre e annullata dal blocco della didattica), sarà recuperata il VENERDI 20 Ottobre dalle 14:00 alle 16:00 in aula M.

(3/10/2017) RECUPERO LEZIONE LABORATORIO GRUPPO B3 La lezione prevista il 6 ottobre del gruppo B3 sarà recuperata il 5 ottobre dalle 14:00 alle 16:00 - aula H.

(2/10/2017) SOSPENSIONE DELLA DIDATTICA VENERDI' 6 OTTOBRE A causa della stessa, le previste lezioni di recupero dei gruppi A1 e B3 sono rimandate a data da definirsi e che verra' comunicata appena possibile.

(24/09/2017) SECONDA LEZIONE LABORATORIO - GRUPPO B2 Si ricorda che la seconda lezione del Laboratorio per il gruppo B2 è anticipata a Lunedì 25 Settembre 2017, alle ore 11, in aula H. I gruppi A1 e B3 recupereranno il Giorno 03 Ottobre alle ore 14.

(15/09/2017) PRIMA LEZIONE LABORATORIO La prima lezione del Laboratorio di Programmazione si terrà Martedì 19 e Mercoledì 20 Settembre 2017, aule H ed M, seguendo le fasce orarie individuate nella suddivisione in gruppi riportata nella sezione sottostante.

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
  • ricorsione

Suddivisione in gruppi con assegnazione slot in laboratorio

Corso Gruppo Studenti Docente Aula Orario
A A1 Da AAA a FIL Nadia Pisanti H Martedì 11:00 - 13:00
A A2 Da FIM a MUN Roberta Gori H Mercoledì 14:00 - 16:00
A A3 Da MUO a ZZZ Davide Bacciu M Mercoledì 14:00 - 16:00
B B1 Da AAA a DE P Roberta Gori H M Mercoledì 11:00 - 13:00 Martedì 14:00 - 16:00
B B2 Da DE Q a PAG Nadia Pisanti H Martedì 14:00 - 16:00
B B3 Da PAH a ZZZ Giovanna Rosone M H Martedì 14:00 - 16:00 Mercoledì 11:00 - 13:00

Calendario lezioni

Lezione Gruppo Data Aula Argomento
1 A1 19/09/17 11-13 H Introduzione a UNIX e alla Shell ( slides - rubrica per esercitazione)
A2 20/09/17 14-16 H
A3 20/09/17 14-16 M
B1 20/09/17 11-13 H
B2 19/09/17 14-16 H
B3 19/09/17 14-16 M
2 A1 03/10/17 11-13 H Introduzione alla Programmazione in C ( slides, Esercizio aggiuntivo)
A2 27/09/17 14-16 H
A3 27/09/17 14-16 M
B1 27/09/17 11-13 H
B2 25/09/17 11-13 H
B3 03/10/17 14-16 M
3 A1 10/10/17 11-13 H Variabili, Tipi Primitivi, e Costrutti Condizionali ( slides)
A2 04/10/17 14-16 H
A3 04/10/17 14-16 M
B1 04/10/17 11-13 H
B2 03/10/17 14-16 H
B3 05/10/17 14-16 H
4 A1 17/10/17 11-13 H Costrutti Iterativi e array ( slides)
A2 11/10/17 14-16 H
A3 11/10/17 14-16 M
B1 11/10/17 11-13 H
B2 10/10/17 14-16 H
B3 10/10/17 14-16 M
5 A1 20/10/17 14-16 M Funzioni, Stack e Visibilità delle Variabili in C ( slides) Approfondimento sulla compilazione separata
A2 18/10/17 14-16 H
A3 18/10/17 14-16 M
B1 18/10/17 11-13 H
B2 17/10/17 14-16 H
B3 17/10/17 14-16 M
6 A1 24/10/17 11-13 H Puntatori e Aritmetica dei Puntatori (lect6-slides.pdf)
A2 25/10/17 14-16 H
A3 25/10/17 14-16 M
B1 24/10/17 14-16 M
B2 24/10/17 14-16 H
B3 25/10/17 11-13 H
7 A1 07/11/17 11-13 H Tipi di dato utente (lect7-slides.pdf aggiornato)
A2 08/11/17 14-16 H
A3 08/11/17 14-16 M
B1 07/11/17 14-16 M
B2 07/11/17 14-16 H
B3 08/11/17 11-13 H
8 A1 14/11/17 11-13 H Liste concatenate e allocazione dinamica lect8-slides_aggiunte2slide.pdf approfondimento operazioni liste|) liste bauli)
A2 15/11/17 14-16 H
A3 10/11/17 14-16 M
B1 14/11/17 14-16 M
B2 14/11/17 14-16 H
B3 15/11/17 11-13 H
9 A1 21/11/17 11-13 H Debugging slide
A2 22/11/17 14-16 H
A3 22/11/17 14-16 M
B1 21/11/17 14-16 M
B2 21/11/17 14-16 H
B3 22/11/17 11-13 H

Materiale Didattico

Macchina Virtuale Linux

E' stata predisposta una macchina virtuale Ubuntu 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: 22/11/2017 alle 11:00 (3 giorni fa) da Giovanna Rosone