Questa è la pagina del modulo di laboratorio dell’‘insegnamento di Programmazione I del Corso di laurea triennale Informatica Musicale.
Contenuto della pagina
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.
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.
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).
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.
Di seguito trovate alcune soluzioni proposte dal docente agli esercizi assegnati ed alcuni esempi di programma mostrati a lezione:
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
Questa sezione contiene una indicazione circa il materiale didattico di supporto al laboratorio e di lettura facoltativa.
Per la parte di laboratorio potete fare riferimento a:
Per gli argomenti aggiuntivi potete fare riferimento a:
Altri testi sono elencati sullo scaffale del programmatore.
Oltre al comando man, ci sono varie possibilità per reperire informazioni sulle funzioni della libreria C:
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.
Potete reperire alcune informazioni aggiuntive tramite le varie F.A.Q. presenti in rete, le più note sono:</p>