Laboratorio di programmazione (A.A. 2010/2011)

Questa è la pagina del modulo di laboratorio dell’‘insegnamento di Programmazione I del Corso di laurea triennale Informatica Musicale.

Il modulo di teoria del corso, tenuto dal prof. Paolo Boldi, ha una pagina web dedicata; in particolare, per le modalità di esame, si rimanda all’apposita sezione di tale pagina.

Informazioni generali

Le lezioni si svolgono di norma il venerdì dalle 9:15 alle 12:15 in aula Sigma

Le informazioni sul rapporto docente/studenti spiegano, tra l’altro, come contattare il docente del modulo di laboratorio per avere un supporto nello studio degli argomenti del corso.

Gli avvisi relativi al modulo di laboratorio saranno raggiungibili a partire dalla pagina degli avvisi (con particolare riferimento alle sezioni insegnamenti ed esami del sito del Coordinamento didattico di Scienze e tecnologie informatiche

Gli studenti sono caldamente invitati ad iscriversi al “Supporto alla didattica, Massimo Santini” Google di discussione “Supporto alla didattica”, come illustrato nella pagina sul rapporto docente/studenti.

Uso delle risorse e istruzioni per la prova individuale di programmazione

L’uso delle risorse di calcolo del SILab (il laboratorio didattico di Via Comelico) richiede la creazione di un account che si consiglia caldamente di effettuare prima dell’inizio del corso.

Una volta ottenuto l’account, potete apprendere come utilizzare le risorse a vostra disposizione tramite la guida Uso delle risorse di calcolo del SILab, oltre all’Introduzione a GNU/Linux.

Prima di svolgere la parte d’esame riguardante il laboratorio (come descritto nelle modalità di esame), si consiglia di prendere visione delle Istruzioni per lo svolgimento della prova individuale di programmazione in laboratorio (e alla guida sull’Input/output (ed altro) con la libreria standard in C).

Traccia delle lezioni

In questa sezione sarà presente una tabella contenente informazioni circa le attività svolte durante le lezioni e gli esercizi da svolgere a casa.

Lezione Da svolgere in classe Da svolgere a casa
Numero Data Argomento Esercizi Progetti Esercizi Progetti
1 22 ottobre Introduzione a GNU/Linux        
2 29 ottobre I primi programmi; 2.{1, 3, 4} 2.{1, 7} 2.{2, 5} 2.{5, 6}
3 5 novembre I/O formattato ed espressioni 3.6 3.{2, 4, 6}; 4.{1, 3, 6} 3.{1, 2}; 4.{2, 9} 3.5; 4.2
4 12 novembre Selezione e tipi base 5.4; 7.4 5.{5, 7, 9}; 7.{7, 9} 5.{2, 10}; 7.{3, 10, 12} 5.{4, 6, 10}; 7.6
5 19 novembre Cicli e vettori 6.14; 8.5 6.{1, 5, 8, 10}; 8.{1, 6, 11, 14} 6.{4, 10, 12}; 8.{1, 2, 7} 6.{2, 3, 4, 6}; 8.{2, 5, 8}
6 26 novembre Stringhe e funzioni 13.{6, 12}; 9.{2, 3, 5} 8.{7, 16}; 13.1; 9.{4, 7} 13.{4, 17}; 9.{4, 6, 10} 8.{9, 15}; 13.{4, 6}; 9.{3, 6}
7 3 dicembre Esercizi di ripasso 8.11; 9.{13, 17}; 13.13 6.11; 7.{4, 13, 14}; 9.1; 13.{13, 14} 7.14 9.{15, 19}; 13.{10, 15} 7.{1, 15}; 8.17; 13.11
8 10 dicembre Ancora ripasso e ricorsione 9.{11, 18} 13.{5, 18} 9.5 13.{12, 18} 9.{12, 14} 13.9 9.8 13.{2, 5}
9 17 dicembre Puntatori, strutture e unioni 11.4; 12.{2, 9}; 16.{3, 7} 11.3; 12.{2, 5}; 16.1 11.6; 12.{6, 8}; 16.{4, 10} 11.1; 12.{1,4}; 16.5
10 14 gennaio Miscellanea 14.{1, 3, 6} 15.5: 18.11 15.4; 16.6 14.{2, 4, 5} 15.{2, 6}; 18.{8, 10} 15.3; 16.{2, 3};
11 21 gennaio Debugging        
12 28 gennaio Ripasso e preparazione all’esame        

Durante la lezione potete accedere alla lavagna virtuale contenente i suggerimenti e le osservazioni fatte in classe dal docente.

Soluzioni ed esempi

Di seguito trovate alcune soluzioni proposte dal docente agli esercizi assegnati ed alcuni esempi di programma mostrati a lezione:

  • Capitolo 3: 2, 5.
  • Capitolo 5: 5.
  • Capitolo 6: 5.
  • Capitolo 7: 17.
  • Capitolo 8: 7, 14, 16.
  • Capitolo 12: 9.
  • Capitolo 13: 1, 6, 12.

Perché i listati sorgenti sono immagini?

Il formato grafico, in sostituzione di quello testuale, è stato scelto per spingere gli studenti ad affrontare lo sforzo derivante dalla loro trascrizione in formato testo, che implica una lettura (attenta) dei medesimi. L’esperienza prova che, quando i listati sono offerti viceversa in formato testuale, gli studenti (e spesso proprio i meno preparati) si limitano a scaricarli, compilarli ed eseguirli, non traendo da tale attività alcun beneficio.

I sorgenti C raggiungibili da questa pagina sono protetti dalle leggi sul copyright e dalle disposizioni dei trattati internazionali. Il materiale in oggetto può essere copiato (o comunque riprodotto) ed utilizzato liberamente dagli studenti, dagli istituti di ricerca, scolastici ed universitari afferenti ai Ministeri della Pubblica Istruzione e dell’Università e della Ricerca Scientifica e Tecnologica per scopi istituzionali, non a fine di lucro. Ogni riproduzione deve rispettare il formato qui scelto, in particolare è vietata la distribuzione in forma testuale. Ogni altro utilizzo o riproduzione (ivi incluse, ma non limitatamente a, le riproduzioni a mezzo stampa, su supporti magnetici o su reti di calcolatori) in toto o in parte è vietata, se non esplicitamente autorizzata per iscritto, a priori, da parte dell’autore.

L’informazione contenuta nei sorgenti è ritenuta essere accurata alla data della pubblicazione. Essa è fornita per scopi meramente didattici e non per essere utilizzata in progetti di impianti, prodotti, ecc. Tale informazione è soggetta a cambiamenti senza preavviso. L’autore non si assume alcuna responsabilità per il contenuto di queste pagine (ivi incluse, ma non limitatamente a, la correttezza, completezza, applicabilità ed aggiornamento dell’informazione). In ogni caso non può essere dichiarata conformità all’informazione in oggetto. In ogni caso questa nota di copyright non deve mai essere rimossa e deve essere riportata anche in utilizzi parziali.

© Massimo Santini 2008

Materiale didattico

Questa sezione contiene una indicazione circa il materiale didattico di supporto al laboratorio e di lettura facoltativa.

Libro di testo

Attenzione! Il libro di testo contiene diversi errori dovuti in buona parte ad un editing trascurato della traduzione dalla lingua inglese, in particolar modo nel codice sorgente degli esempi, degli esercizi e negli esempi di I/O. Siete invitati ad usare la form di segnalazione degli errori per riportarli voi stessi e a prendere visione dell’elenco di errori già raccolti e verificati dal docente

Materiale di supporto

Per la parte di laboratorio potete fare riferimento a:

Per gli argomenti aggiuntivi potete fare riferimento a:

Letture consigliate (facoltative)

Altri testi sono elencati sullo scaffale del programmatore.

Puntatori a siti di interesse

Documentazione

Oltre al comando man, ci sono varie possibilità per reperire informazioni sulle funzioni della libreria C:

Software

Il principale software di cui avrete bisogno è un compilatore, nel corso si farà riferimento al GCC, compilatore della GNU. Potete reperirlo per i vari sistemi operativi:

Per il corso, sarà sufficiente il compilatore ed un editor di testo; per utilizzi più avanzati, può essere utile uno ambiente di sviluppo integrato (IDE), una buona scelta potrebbe essere Eclipse, con il relativo plugin CDT.

Chi di voi è nuovo a GNU/Linux e vuole provare ad utilizzarlo sul proprio computer può seguire i suggerimenti di Sebastiano Vigna riguardo l’ambiente di laboratorio del suo corso.

Una soluzione simile può essere ottenuta usando la versione di VirtualBox per il proprio sistema operativo e quindi installando nella macchina virtuale messa a disposizione da tale software una qualunque distribuzione moderna di GNU/Linux, come ad eempio Ubuntu.

F.A.Q.

Potete reperire alcune informazioni aggiuntive tramite le varie F.A.Q. presenti in rete, le più note sono:</p>