<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="it">
	<id>https://wiki.dsy.it/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Smirne</id>
	<title>WikiDsy - Contributi utente [it]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.dsy.it/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Smirne"/>
	<link rel="alternate" type="text/html" href="https://wiki.dsy.it/w/Speciale:Contributi/Smirne"/>
	<updated>2026-05-23T15:18:22Z</updated>
	<subtitle>Contributi utente</subtitle>
	<generator>MediaWiki 1.31.16</generator>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Discussioni_utente:Smirne&amp;diff=17229</id>
		<title>Discussioni utente:Smirne</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Discussioni_utente:Smirne&amp;diff=17229"/>
		<updated>2007-03-26T18:02:09Z</updated>

		<summary type="html">&lt;p&gt;Smirne: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ciao! :D --[[Utente:Yoruno|&amp;lt;i&amp;gt;&amp;lt;font color=&amp;quot;#666666&amp;quot;&amp;gt;yoruno&amp;lt;/font&amp;gt;&amp;lt;/i&amp;gt; ]][[Discussioni utente:Yoruno|&amp;lt;i&amp;gt;&amp;lt;sup&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;e&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;#FF9900&amp;quot;&amp;gt;v&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;#FFFF00&amp;quot;&amp;gt;o&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;#00FF00&amp;quot;&amp;gt;c&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;#00FFFF&amp;quot;&amp;gt;a&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;m&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;#FF00FF&amp;quot;&amp;gt;i&amp;lt;/font&amp;gt;&amp;lt;/sup&amp;gt;&amp;lt;/i&amp;gt;]] 16:47, 13 Mar 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
'sera ;)&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Utente:Smirne&amp;diff=17076</id>
		<title>Utente:Smirne</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Utente:Smirne&amp;diff=17076"/>
		<updated>2007-03-13T14:35:38Z</updated>

		<summary type="html">&lt;p&gt;Smirne: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ciao :)&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16803</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16803"/>
		<updated>2007-02-13T09:31:26Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* News */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
*28 febbraio 2007&lt;br /&gt;
La prova di laboratorio si terrà a partire dalle ore 14.45 presso l'aula Sigma di via Comelico.&lt;br /&gt;
&lt;br /&gt;
* Pubblicate le [http://homes.dico.unimi.it/prog/turno3-06/esami/ modalità d'esame].&lt;br /&gt;
&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/compitini/quadro.txt Quadro riassuntivo] dei risultati dei compitini e delle prove di laboratorio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prove in itinere ===&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 17 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione2.pdf Soluzione] -  [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati2.pdf Risultati])&lt;br /&gt;
*'''Seconda Prova in itinere (lab)''' 19 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab12.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati2itinere.pdf Risultati])&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/compitini/quadro.txt Quadro riassuntivo] dei risultati e degli esoneri.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
Sul sito di [http://homes.dico.unimi.it/prog/turno3-06/lab/index.php?page=lezioni laboratorio] sono disponibili invece le tracce svolte a lezione.&lt;br /&gt;
&lt;br /&gt;
===Appelli Ordinari===&lt;br /&gt;
&lt;br /&gt;
Per l'anno accademico 2006/2007 gli appelli d'esame sono previsti nelle seguenti date:&lt;br /&gt;
&lt;br /&gt;
* 29 gennaio 2007 ([http://homes.dico.unimi.it/prog/turno3-06/esami/gennaio07.pdf testo] - [http://homes.dico.unimi.it/prog/turno3-06/esami/risultatiGennaio.txt risultati])&lt;br /&gt;
* 28 febbraio 2007 &lt;br /&gt;
La prova di laboratorio si terrà a partire dalle ore 14.45 presso l'aula Sigma di via Comelico.&lt;br /&gt;
* 11 giugno 2007&lt;br /&gt;
* 9 luglio 2007&lt;br /&gt;
* 21 settembre 2007&lt;br /&gt;
&lt;br /&gt;
Le date indicano l'inizio dell'appello (prova di laboratorio). Gli orali si svolgeranno il giorno stesso o alcuni giorni dopo, secondo quanto verrà comunicato in tempo utile sul [http://homes.dico.unimi.it/prog/turno3-06/esami/ sito del prof].&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
*''[http://pighizzini.dico.unimi.it/jb/doc/ ProgDoc] documentazione del package Prog''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-05/lab/temi.html temi di lab 2005/06]&lt;br /&gt;
=== Dal DSY ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab9.pdf Traccia 9]&lt;br /&gt;
 &lt;br /&gt;
* Estendere la classe Persona del package labprog.&lt;br /&gt;
* La classe Vector&lt;br /&gt;
* Implementazione di un package d'utilità per l'aritmetica in precisione illimitata.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 18-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Esempio: calcolatrice in notazione postfissa; studio e gestione delle situazioni anomale. &lt;br /&gt;
* Come sollevare le eccezioni: l'istruzione throw. &lt;br /&gt;
* Come definire nuove eccezioni. &lt;br /&gt;
* Classificazione delle eccezioni: eccezioni controllate e non controllate. &lt;br /&gt;
* Come delegare le eccezioni (throws).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 20-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab10.pdf Traccia 10]&lt;br /&gt;
&lt;br /&gt;
* Intercettare le eccezioni non controllate per gestire gli errori in fase d'esecuzione. &lt;br /&gt;
* Lettura di un file con il package prog: gestione degli errori. &lt;br /&gt;
* Copia di un file di testo: gestione degli errori.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 08-01-2007 ===&lt;br /&gt;
&lt;br /&gt;
* L'input/output standard (package java.io). &lt;br /&gt;
* Stream di caratteri: le classi Reader, FileReader, BufferedReader (VisualizzaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-0.java mediante uso di FileReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-1.java mediante uso di BufferedReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile.java con una semplice gestione delle eccezioni]); &lt;br /&gt;
* le classi Writer, FileWriter, BufferedWriter (CopiaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile.java mediante FileWriter], [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile-0.java mediante BufferedWriter]). &lt;br /&gt;
* Stream di byte: InputStream, Outputstream ed esempi di sottoclassi. &lt;br /&gt;
* I riferimenti predefiniti System.in, System.err, System.out (ContaLettere.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere-0.java lettura da tastiera], [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere.java lettura da file o da tastiera]).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 10-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab11.pdf Traccia 11]&lt;br /&gt;
&lt;br /&gt;
* Input e output di base con le librerie standard di Java. &lt;br /&gt;
* Un esercizio complessivo ([http://homes.dico.unimi.it/prog/turno3-05/lab/progettosetgen/minishell.pdf MiniShell]) sugli stream e le eccezioni.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 12-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Metodi ricorsivi. &lt;br /&gt;
* Invocazione dei metori e passaggio dei parametri. &lt;br /&gt;
* Passaggio per valore. &lt;br /&gt;
* Cenni ad altri meccanismi di passaggio dei parametri. &lt;br /&gt;
* Organizzazione della memoria durante l'esecuzione: memoria statica, stack, heap. &lt;br /&gt;
* Gestione dello stack durante l'esecuzione: record di attivazione e loro struttura. &lt;br /&gt;
* Chiamate e rientri dai metodi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 15-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Overloading e overriding: il ruolo del compilatore e quello dell'esecutore. &lt;br /&gt;
* Come avviene la scelta del metodo da eseguire. &lt;br /&gt;
* Come scrivere il metodo equals. &lt;br /&gt;
* Esercizi di ripasso.&lt;br /&gt;
&lt;br /&gt;
=== Compitino di mercoledì 17-01-2006 ===&lt;br /&gt;
Secondo Compitino teoria:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione2.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati2.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di venerdì 19-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
Seconda prova in itinere.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab12.pdf Traccia12]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati2itinere.pdf Risultati]&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16802</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16802"/>
		<updated>2007-02-13T09:30:51Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* Appelli Ordinari */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
* Pubblicate le [http://homes.dico.unimi.it/prog/turno3-06/esami/ modalità d'esame].&lt;br /&gt;
&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/compitini/quadro.txt Quadro riassuntivo] dei risultati dei compitini e delle prove di laboratorio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prove in itinere ===&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 17 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione2.pdf Soluzione] -  [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati2.pdf Risultati])&lt;br /&gt;
*'''Seconda Prova in itinere (lab)''' 19 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab12.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati2itinere.pdf Risultati])&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/compitini/quadro.txt Quadro riassuntivo] dei risultati e degli esoneri.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
Sul sito di [http://homes.dico.unimi.it/prog/turno3-06/lab/index.php?page=lezioni laboratorio] sono disponibili invece le tracce svolte a lezione.&lt;br /&gt;
&lt;br /&gt;
===Appelli Ordinari===&lt;br /&gt;
&lt;br /&gt;
Per l'anno accademico 2006/2007 gli appelli d'esame sono previsti nelle seguenti date:&lt;br /&gt;
&lt;br /&gt;
* 29 gennaio 2007 ([http://homes.dico.unimi.it/prog/turno3-06/esami/gennaio07.pdf testo] - [http://homes.dico.unimi.it/prog/turno3-06/esami/risultatiGennaio.txt risultati])&lt;br /&gt;
* 28 febbraio 2007 &lt;br /&gt;
La prova di laboratorio si terrà a partire dalle ore 14.45 presso l'aula Sigma di via Comelico.&lt;br /&gt;
* 11 giugno 2007&lt;br /&gt;
* 9 luglio 2007&lt;br /&gt;
* 21 settembre 2007&lt;br /&gt;
&lt;br /&gt;
Le date indicano l'inizio dell'appello (prova di laboratorio). Gli orali si svolgeranno il giorno stesso o alcuni giorni dopo, secondo quanto verrà comunicato in tempo utile sul [http://homes.dico.unimi.it/prog/turno3-06/esami/ sito del prof].&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
*''[http://pighizzini.dico.unimi.it/jb/doc/ ProgDoc] documentazione del package Prog''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-05/lab/temi.html temi di lab 2005/06]&lt;br /&gt;
=== Dal DSY ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab9.pdf Traccia 9]&lt;br /&gt;
 &lt;br /&gt;
* Estendere la classe Persona del package labprog.&lt;br /&gt;
* La classe Vector&lt;br /&gt;
* Implementazione di un package d'utilità per l'aritmetica in precisione illimitata.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 18-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Esempio: calcolatrice in notazione postfissa; studio e gestione delle situazioni anomale. &lt;br /&gt;
* Come sollevare le eccezioni: l'istruzione throw. &lt;br /&gt;
* Come definire nuove eccezioni. &lt;br /&gt;
* Classificazione delle eccezioni: eccezioni controllate e non controllate. &lt;br /&gt;
* Come delegare le eccezioni (throws).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 20-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab10.pdf Traccia 10]&lt;br /&gt;
&lt;br /&gt;
* Intercettare le eccezioni non controllate per gestire gli errori in fase d'esecuzione. &lt;br /&gt;
* Lettura di un file con il package prog: gestione degli errori. &lt;br /&gt;
* Copia di un file di testo: gestione degli errori.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 08-01-2007 ===&lt;br /&gt;
&lt;br /&gt;
* L'input/output standard (package java.io). &lt;br /&gt;
* Stream di caratteri: le classi Reader, FileReader, BufferedReader (VisualizzaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-0.java mediante uso di FileReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-1.java mediante uso di BufferedReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile.java con una semplice gestione delle eccezioni]); &lt;br /&gt;
* le classi Writer, FileWriter, BufferedWriter (CopiaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile.java mediante FileWriter], [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile-0.java mediante BufferedWriter]). &lt;br /&gt;
* Stream di byte: InputStream, Outputstream ed esempi di sottoclassi. &lt;br /&gt;
* I riferimenti predefiniti System.in, System.err, System.out (ContaLettere.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere-0.java lettura da tastiera], [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere.java lettura da file o da tastiera]).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 10-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab11.pdf Traccia 11]&lt;br /&gt;
&lt;br /&gt;
* Input e output di base con le librerie standard di Java. &lt;br /&gt;
* Un esercizio complessivo ([http://homes.dico.unimi.it/prog/turno3-05/lab/progettosetgen/minishell.pdf MiniShell]) sugli stream e le eccezioni.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 12-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Metodi ricorsivi. &lt;br /&gt;
* Invocazione dei metori e passaggio dei parametri. &lt;br /&gt;
* Passaggio per valore. &lt;br /&gt;
* Cenni ad altri meccanismi di passaggio dei parametri. &lt;br /&gt;
* Organizzazione della memoria durante l'esecuzione: memoria statica, stack, heap. &lt;br /&gt;
* Gestione dello stack durante l'esecuzione: record di attivazione e loro struttura. &lt;br /&gt;
* Chiamate e rientri dai metodi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 15-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Overloading e overriding: il ruolo del compilatore e quello dell'esecutore. &lt;br /&gt;
* Come avviene la scelta del metodo da eseguire. &lt;br /&gt;
* Come scrivere il metodo equals. &lt;br /&gt;
* Esercizi di ripasso.&lt;br /&gt;
&lt;br /&gt;
=== Compitino di mercoledì 17-01-2006 ===&lt;br /&gt;
Secondo Compitino teoria:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione2.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati2.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di venerdì 19-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
Seconda prova in itinere.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab12.pdf Traccia12]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati2itinere.pdf Risultati]&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16799</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16799"/>
		<updated>2007-02-09T11:26:49Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* Appelli Ordinari */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
* Pubblicate le [http://homes.dico.unimi.it/prog/turno3-06/esami/ modalità d'esame].&lt;br /&gt;
&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/compitini/quadro.txt Quadro riassuntivo] dei risultati dei compitini e delle prove di laboratorio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prove in itinere ===&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 17 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione2.pdf Soluzione] -  [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati2.pdf Risultati])&lt;br /&gt;
*'''Seconda Prova in itinere (lab)''' 19 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab12.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati2itinere.pdf Risultati])&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/compitini/quadro.txt Quadro riassuntivo] dei risultati e degli esoneri.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
Sul sito di [http://homes.dico.unimi.it/prog/turno3-06/lab/index.php?page=lezioni laboratorio] sono disponibili invece le tracce svolte a lezione.&lt;br /&gt;
&lt;br /&gt;
===Appelli Ordinari===&lt;br /&gt;
&lt;br /&gt;
Per l'anno accademico 2006/2007 gli appelli d'esame sono previsti nelle seguenti date:&lt;br /&gt;
&lt;br /&gt;
* 29 gennaio 2007 ([http://homes.dico.unimi.it/prog/turno3-06/esami/gennaio07.pdf testo] - [http://homes.dico.unimi.it/prog/turno3-06/esami/risultatiGennaio.txt risultati])&lt;br /&gt;
* 28 febbraio 2007&lt;br /&gt;
* 11 giugno 2007&lt;br /&gt;
* 9 luglio 2007&lt;br /&gt;
* 21 settembre 2007&lt;br /&gt;
&lt;br /&gt;
Le date indicano l'inizio dell'appello (prova di laboratorio). Gli orali si svolgeranno il giorno stesso o alcuni giorni dopo, secondo quanto verrà comunicato in tempo utile sul [http://homes.dico.unimi.it/prog/turno3-06/esami/ sito del prof].&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
*''[http://pighizzini.dico.unimi.it/jb/doc/ ProgDoc] documentazione del package Prog''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-05/lab/temi.html temi di lab 2005/06]&lt;br /&gt;
=== Dal DSY ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab9.pdf Traccia 9]&lt;br /&gt;
 &lt;br /&gt;
* Estendere la classe Persona del package labprog.&lt;br /&gt;
* La classe Vector&lt;br /&gt;
* Implementazione di un package d'utilità per l'aritmetica in precisione illimitata.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 18-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Esempio: calcolatrice in notazione postfissa; studio e gestione delle situazioni anomale. &lt;br /&gt;
* Come sollevare le eccezioni: l'istruzione throw. &lt;br /&gt;
* Come definire nuove eccezioni. &lt;br /&gt;
* Classificazione delle eccezioni: eccezioni controllate e non controllate. &lt;br /&gt;
* Come delegare le eccezioni (throws).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 20-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab10.pdf Traccia 10]&lt;br /&gt;
&lt;br /&gt;
* Intercettare le eccezioni non controllate per gestire gli errori in fase d'esecuzione. &lt;br /&gt;
* Lettura di un file con il package prog: gestione degli errori. &lt;br /&gt;
* Copia di un file di testo: gestione degli errori.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 08-01-2007 ===&lt;br /&gt;
&lt;br /&gt;
* L'input/output standard (package java.io). &lt;br /&gt;
* Stream di caratteri: le classi Reader, FileReader, BufferedReader (VisualizzaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-0.java mediante uso di FileReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-1.java mediante uso di BufferedReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile.java con una semplice gestione delle eccezioni]); &lt;br /&gt;
* le classi Writer, FileWriter, BufferedWriter (CopiaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile.java mediante FileWriter], [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile-0.java mediante BufferedWriter]). &lt;br /&gt;
* Stream di byte: InputStream, Outputstream ed esempi di sottoclassi. &lt;br /&gt;
* I riferimenti predefiniti System.in, System.err, System.out (ContaLettere.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere-0.java lettura da tastiera], [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere.java lettura da file o da tastiera]).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 10-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab11.pdf Traccia 11]&lt;br /&gt;
&lt;br /&gt;
* Input e output di base con le librerie standard di Java. &lt;br /&gt;
* Un esercizio complessivo ([http://homes.dico.unimi.it/prog/turno3-05/lab/progettosetgen/minishell.pdf MiniShell]) sugli stream e le eccezioni.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 12-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Metodi ricorsivi. &lt;br /&gt;
* Invocazione dei metori e passaggio dei parametri. &lt;br /&gt;
* Passaggio per valore. &lt;br /&gt;
* Cenni ad altri meccanismi di passaggio dei parametri. &lt;br /&gt;
* Organizzazione della memoria durante l'esecuzione: memoria statica, stack, heap. &lt;br /&gt;
* Gestione dello stack durante l'esecuzione: record di attivazione e loro struttura. &lt;br /&gt;
* Chiamate e rientri dai metodi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 15-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Overloading e overriding: il ruolo del compilatore e quello dell'esecutore. &lt;br /&gt;
* Come avviene la scelta del metodo da eseguire. &lt;br /&gt;
* Come scrivere il metodo equals. &lt;br /&gt;
* Esercizi di ripasso.&lt;br /&gt;
&lt;br /&gt;
=== Compitino di mercoledì 17-01-2006 ===&lt;br /&gt;
Secondo Compitino teoria:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione2.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati2.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di venerdì 19-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
Seconda prova in itinere.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab12.pdf Traccia12]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati2itinere.pdf Risultati]&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16798</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16798"/>
		<updated>2007-02-09T11:26:21Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* News */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
* Pubblicate le [http://homes.dico.unimi.it/prog/turno3-06/esami/ modalità d'esame].&lt;br /&gt;
&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/compitini/quadro.txt Quadro riassuntivo] dei risultati dei compitini e delle prove di laboratorio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prove in itinere ===&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 17 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione2.pdf Soluzione] -  [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati2.pdf Risultati])&lt;br /&gt;
*'''Seconda Prova in itinere (lab)''' 19 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab12.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati2itinere.pdf Risultati])&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/compitini/quadro.txt Quadro riassuntivo] dei risultati e degli esoneri.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
Sul sito di [http://homes.dico.unimi.it/prog/turno3-06/lab/index.php?page=lezioni laboratorio] sono disponibili invece le tracce svolte a lezione.&lt;br /&gt;
&lt;br /&gt;
===Appelli Ordinari===&lt;br /&gt;
&lt;br /&gt;
Per l'anno accademico 2006/2007 gli appelli d'esame sono previsti nelle seguenti date:&lt;br /&gt;
&lt;br /&gt;
* 29 gennaio 2007 ([http://homes.dico.unimi.it/prog/turno3-06/esami/gennaio07.pdf testo] - [http://homes.dico.unimi.it/prog/turno3-06/esami/risultatiGennaio.txt risultati])&lt;br /&gt;
* 28 febbraio 2007&lt;br /&gt;
* 11 giugno 2007&lt;br /&gt;
* 9 luglio 2007&lt;br /&gt;
* 21 settembre 2007&lt;br /&gt;
&lt;br /&gt;
Le date indicano l'inizio dell'appello (prova di laboratorio). Gli orali si svolgeranno il giorno stesso o alcuni giorni dopo, secondo quanto verrà comunicato in tempo utile sul [http://homes.dico.unimi.it/prog/turno3-06/esami/ sito del prof]).&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
*''[http://pighizzini.dico.unimi.it/jb/doc/ ProgDoc] documentazione del package Prog''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-05/lab/temi.html temi di lab 2005/06]&lt;br /&gt;
=== Dal DSY ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab9.pdf Traccia 9]&lt;br /&gt;
 &lt;br /&gt;
* Estendere la classe Persona del package labprog.&lt;br /&gt;
* La classe Vector&lt;br /&gt;
* Implementazione di un package d'utilità per l'aritmetica in precisione illimitata.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 18-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Esempio: calcolatrice in notazione postfissa; studio e gestione delle situazioni anomale. &lt;br /&gt;
* Come sollevare le eccezioni: l'istruzione throw. &lt;br /&gt;
* Come definire nuove eccezioni. &lt;br /&gt;
* Classificazione delle eccezioni: eccezioni controllate e non controllate. &lt;br /&gt;
* Come delegare le eccezioni (throws).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 20-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab10.pdf Traccia 10]&lt;br /&gt;
&lt;br /&gt;
* Intercettare le eccezioni non controllate per gestire gli errori in fase d'esecuzione. &lt;br /&gt;
* Lettura di un file con il package prog: gestione degli errori. &lt;br /&gt;
* Copia di un file di testo: gestione degli errori.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 08-01-2007 ===&lt;br /&gt;
&lt;br /&gt;
* L'input/output standard (package java.io). &lt;br /&gt;
* Stream di caratteri: le classi Reader, FileReader, BufferedReader (VisualizzaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-0.java mediante uso di FileReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-1.java mediante uso di BufferedReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile.java con una semplice gestione delle eccezioni]); &lt;br /&gt;
* le classi Writer, FileWriter, BufferedWriter (CopiaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile.java mediante FileWriter], [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile-0.java mediante BufferedWriter]). &lt;br /&gt;
* Stream di byte: InputStream, Outputstream ed esempi di sottoclassi. &lt;br /&gt;
* I riferimenti predefiniti System.in, System.err, System.out (ContaLettere.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere-0.java lettura da tastiera], [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere.java lettura da file o da tastiera]).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 10-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab11.pdf Traccia 11]&lt;br /&gt;
&lt;br /&gt;
* Input e output di base con le librerie standard di Java. &lt;br /&gt;
* Un esercizio complessivo ([http://homes.dico.unimi.it/prog/turno3-05/lab/progettosetgen/minishell.pdf MiniShell]) sugli stream e le eccezioni.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 12-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Metodi ricorsivi. &lt;br /&gt;
* Invocazione dei metori e passaggio dei parametri. &lt;br /&gt;
* Passaggio per valore. &lt;br /&gt;
* Cenni ad altri meccanismi di passaggio dei parametri. &lt;br /&gt;
* Organizzazione della memoria durante l'esecuzione: memoria statica, stack, heap. &lt;br /&gt;
* Gestione dello stack durante l'esecuzione: record di attivazione e loro struttura. &lt;br /&gt;
* Chiamate e rientri dai metodi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 15-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Overloading e overriding: il ruolo del compilatore e quello dell'esecutore. &lt;br /&gt;
* Come avviene la scelta del metodo da eseguire. &lt;br /&gt;
* Come scrivere il metodo equals. &lt;br /&gt;
* Esercizi di ripasso.&lt;br /&gt;
&lt;br /&gt;
=== Compitino di mercoledì 17-01-2006 ===&lt;br /&gt;
Secondo Compitino teoria:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione2.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati2.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di venerdì 19-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
Seconda prova in itinere.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab12.pdf Traccia12]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati2itinere.pdf Risultati]&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16792</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16792"/>
		<updated>2007-02-05T19:50:33Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* Appelli Ordinari */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
* Pubblicate le [http://homes.dico.unimi.it/prog/turno3-06/esami/ modalità d'esame].&lt;br /&gt;
&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/compitini/quadro.txt Quadro riassuntivo] dei risultati dei compitini e delle prove di laboratorio.&lt;br /&gt;
&lt;br /&gt;
* L'appello di verbalizzazione per gli esonerati dall'esame sarà il 6 febbraio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prove in itinere ===&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 17 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione2.pdf Soluzione] -  [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati2.pdf Risultati])&lt;br /&gt;
*'''Seconda Prova in itinere (lab)''' 19 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab12.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati2itinere.pdf Risultati])&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/compitini/quadro.txt Quadro riassuntivo] dei risultati e degli esoneri.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
Sul sito di [http://homes.dico.unimi.it/prog/turno3-06/lab/index.php?page=lezioni laboratorio] sono disponibili invece le tracce svolte a lezione.&lt;br /&gt;
&lt;br /&gt;
===Appelli Ordinari===&lt;br /&gt;
&lt;br /&gt;
Per l'anno accademico 2006/2007 gli appelli d'esame sono previsti nelle seguenti date:&lt;br /&gt;
&lt;br /&gt;
* 29 gennaio 2007 ([http://homes.dico.unimi.it/prog/turno3-06/esami/gennaio07.pdf testo] - [http://homes.dico.unimi.it/prog/turno3-06/esami/risultatiGennaio.txt risultati])&lt;br /&gt;
* 28 febbraio 2007&lt;br /&gt;
* 11 giugno 2007&lt;br /&gt;
* 9 luglio 2007&lt;br /&gt;
* 21 settembre 2007&lt;br /&gt;
&lt;br /&gt;
Le date indicano l'inizio dell'appello (prova di laboratorio). Gli orali si svolgeranno il giorno stesso o alcuni giorni dopo, secondo quanto verrà comunicato in tempo utile sul [http://homes.dico.unimi.it/prog/turno3-06/esami/ sito del prof]).&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
*''[http://pighizzini.dico.unimi.it/jb/doc/ ProgDoc] documentazione del package Prog''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-05/lab/temi.html temi di lab 2005/06]&lt;br /&gt;
=== Dal DSY ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab9.pdf Traccia 9]&lt;br /&gt;
 &lt;br /&gt;
* Estendere la classe Persona del package labprog.&lt;br /&gt;
* La classe Vector&lt;br /&gt;
* Implementazione di un package d'utilità per l'aritmetica in precisione illimitata.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 18-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Esempio: calcolatrice in notazione postfissa; studio e gestione delle situazioni anomale. &lt;br /&gt;
* Come sollevare le eccezioni: l'istruzione throw. &lt;br /&gt;
* Come definire nuove eccezioni. &lt;br /&gt;
* Classificazione delle eccezioni: eccezioni controllate e non controllate. &lt;br /&gt;
* Come delegare le eccezioni (throws).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 20-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab10.pdf Traccia 10]&lt;br /&gt;
&lt;br /&gt;
* Intercettare le eccezioni non controllate per gestire gli errori in fase d'esecuzione. &lt;br /&gt;
* Lettura di un file con il package prog: gestione degli errori. &lt;br /&gt;
* Copia di un file di testo: gestione degli errori.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 08-01-2007 ===&lt;br /&gt;
&lt;br /&gt;
* L'input/output standard (package java.io). &lt;br /&gt;
* Stream di caratteri: le classi Reader, FileReader, BufferedReader (VisualizzaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-0.java mediante uso di FileReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-1.java mediante uso di BufferedReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile.java con una semplice gestione delle eccezioni]); &lt;br /&gt;
* le classi Writer, FileWriter, BufferedWriter (CopiaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile.java mediante FileWriter], [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile-0.java mediante BufferedWriter]). &lt;br /&gt;
* Stream di byte: InputStream, Outputstream ed esempi di sottoclassi. &lt;br /&gt;
* I riferimenti predefiniti System.in, System.err, System.out (ContaLettere.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere-0.java lettura da tastiera], [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere.java lettura da file o da tastiera]).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 10-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab11.pdf Traccia 11]&lt;br /&gt;
&lt;br /&gt;
* Input e output di base con le librerie standard di Java. &lt;br /&gt;
* Un esercizio complessivo ([http://homes.dico.unimi.it/prog/turno3-05/lab/progettosetgen/minishell.pdf MiniShell]) sugli stream e le eccezioni.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 12-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Metodi ricorsivi. &lt;br /&gt;
* Invocazione dei metori e passaggio dei parametri. &lt;br /&gt;
* Passaggio per valore. &lt;br /&gt;
* Cenni ad altri meccanismi di passaggio dei parametri. &lt;br /&gt;
* Organizzazione della memoria durante l'esecuzione: memoria statica, stack, heap. &lt;br /&gt;
* Gestione dello stack durante l'esecuzione: record di attivazione e loro struttura. &lt;br /&gt;
* Chiamate e rientri dai metodi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 15-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Overloading e overriding: il ruolo del compilatore e quello dell'esecutore. &lt;br /&gt;
* Come avviene la scelta del metodo da eseguire. &lt;br /&gt;
* Come scrivere il metodo equals. &lt;br /&gt;
* Esercizi di ripasso.&lt;br /&gt;
&lt;br /&gt;
=== Compitino di mercoledì 17-01-2006 ===&lt;br /&gt;
Secondo Compitino teoria:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione2.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati2.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di venerdì 19-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
Seconda prova in itinere.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab12.pdf Traccia12]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati2itinere.pdf Risultati]&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16791</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16791"/>
		<updated>2007-02-05T19:50:03Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* Appelli Ordinari */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
* Pubblicate le [http://homes.dico.unimi.it/prog/turno3-06/esami/ modalità d'esame].&lt;br /&gt;
&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/compitini/quadro.txt Quadro riassuntivo] dei risultati dei compitini e delle prove di laboratorio.&lt;br /&gt;
&lt;br /&gt;
* L'appello di verbalizzazione per gli esonerati dall'esame sarà il 6 febbraio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prove in itinere ===&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 17 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione2.pdf Soluzione] -  [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati2.pdf Risultati])&lt;br /&gt;
*'''Seconda Prova in itinere (lab)''' 19 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab12.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati2itinere.pdf Risultati])&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/compitini/quadro.txt Quadro riassuntivo] dei risultati e degli esoneri.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
Sul sito di [http://homes.dico.unimi.it/prog/turno3-06/lab/index.php?page=lezioni laboratorio] sono disponibili invece le tracce svolte a lezione.&lt;br /&gt;
&lt;br /&gt;
===Appelli Ordinari===&lt;br /&gt;
&lt;br /&gt;
Per l'anno accademico 2006/2007 gli appelli d'esame sono previsti nelle seguenti date:&lt;br /&gt;
&lt;br /&gt;
* 29 gennaio 2007 [http://homes.dico.unimi.it/prog/turno3-06/esami/gennaio07.pdf testo] - [http://homes.dico.unimi.it/prog/turno3-06/esami/risultatiGennaio.txt risultati]&lt;br /&gt;
* 28 febbraio 2007&lt;br /&gt;
* 11 giugno 2007&lt;br /&gt;
* 9 luglio 2007&lt;br /&gt;
* 21 settembre 2007&lt;br /&gt;
&lt;br /&gt;
Le date indicano l'inizio dell'appello (prova di laboratorio). Gli orali si svolgeranno il giorno stesso o alcuni giorni dopo, secondo quanto verrà comunicato in tempo utile sul [http://homes.dico.unimi.it/prog/turno3-06/esami/ sito del prof]).&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
*''[http://pighizzini.dico.unimi.it/jb/doc/ ProgDoc] documentazione del package Prog''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-05/lab/temi.html temi di lab 2005/06]&lt;br /&gt;
=== Dal DSY ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab9.pdf Traccia 9]&lt;br /&gt;
 &lt;br /&gt;
* Estendere la classe Persona del package labprog.&lt;br /&gt;
* La classe Vector&lt;br /&gt;
* Implementazione di un package d'utilità per l'aritmetica in precisione illimitata.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 18-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Esempio: calcolatrice in notazione postfissa; studio e gestione delle situazioni anomale. &lt;br /&gt;
* Come sollevare le eccezioni: l'istruzione throw. &lt;br /&gt;
* Come definire nuove eccezioni. &lt;br /&gt;
* Classificazione delle eccezioni: eccezioni controllate e non controllate. &lt;br /&gt;
* Come delegare le eccezioni (throws).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 20-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab10.pdf Traccia 10]&lt;br /&gt;
&lt;br /&gt;
* Intercettare le eccezioni non controllate per gestire gli errori in fase d'esecuzione. &lt;br /&gt;
* Lettura di un file con il package prog: gestione degli errori. &lt;br /&gt;
* Copia di un file di testo: gestione degli errori.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 08-01-2007 ===&lt;br /&gt;
&lt;br /&gt;
* L'input/output standard (package java.io). &lt;br /&gt;
* Stream di caratteri: le classi Reader, FileReader, BufferedReader (VisualizzaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-0.java mediante uso di FileReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-1.java mediante uso di BufferedReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile.java con una semplice gestione delle eccezioni]); &lt;br /&gt;
* le classi Writer, FileWriter, BufferedWriter (CopiaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile.java mediante FileWriter], [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile-0.java mediante BufferedWriter]). &lt;br /&gt;
* Stream di byte: InputStream, Outputstream ed esempi di sottoclassi. &lt;br /&gt;
* I riferimenti predefiniti System.in, System.err, System.out (ContaLettere.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere-0.java lettura da tastiera], [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere.java lettura da file o da tastiera]).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 10-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab11.pdf Traccia 11]&lt;br /&gt;
&lt;br /&gt;
* Input e output di base con le librerie standard di Java. &lt;br /&gt;
* Un esercizio complessivo ([http://homes.dico.unimi.it/prog/turno3-05/lab/progettosetgen/minishell.pdf MiniShell]) sugli stream e le eccezioni.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 12-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Metodi ricorsivi. &lt;br /&gt;
* Invocazione dei metori e passaggio dei parametri. &lt;br /&gt;
* Passaggio per valore. &lt;br /&gt;
* Cenni ad altri meccanismi di passaggio dei parametri. &lt;br /&gt;
* Organizzazione della memoria durante l'esecuzione: memoria statica, stack, heap. &lt;br /&gt;
* Gestione dello stack durante l'esecuzione: record di attivazione e loro struttura. &lt;br /&gt;
* Chiamate e rientri dai metodi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 15-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Overloading e overriding: il ruolo del compilatore e quello dell'esecutore. &lt;br /&gt;
* Come avviene la scelta del metodo da eseguire. &lt;br /&gt;
* Come scrivere il metodo equals. &lt;br /&gt;
* Esercizi di ripasso.&lt;br /&gt;
&lt;br /&gt;
=== Compitino di mercoledì 17-01-2006 ===&lt;br /&gt;
Secondo Compitino teoria:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione2.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati2.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di venerdì 19-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
Seconda prova in itinere.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab12.pdf Traccia12]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati2itinere.pdf Risultati]&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione&amp;diff=16774</id>
		<title>Programmazione</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione&amp;diff=16774"/>
		<updated>2007-01-30T13:12:08Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* Informazioni Generali */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{introduzione}}&lt;br /&gt;
== Turni ==&lt;br /&gt;
&lt;br /&gt;
*'''[[Programmazione Turno 1/2006-2007|Turno 1]]&lt;br /&gt;
*'''[[Programmazione Turno 2/2006-2007|Turno 2]]&lt;br /&gt;
*'''[[Programmazione Turno 3/2006-2007|Turno 3 (Pighizzini)]]&lt;br /&gt;
&lt;br /&gt;
== Anni passati ==&lt;br /&gt;
&lt;br /&gt;
=== 2005/06 ===&lt;br /&gt;
{{annipassati|2005-2006|(Alberti)| Turno 1}}&lt;br /&gt;
{{annipassati|2005-2006|(Pighizzini)| Turno 3}}&lt;br /&gt;
&lt;br /&gt;
=== 2003/04 ===&lt;br /&gt;
{{annipassati|2003-2004|(Pighizzini)| Turno 3}}&lt;br /&gt;
&lt;br /&gt;
== Informazioni Generali==&lt;br /&gt;
&lt;br /&gt;
Il corso di '''Programmazione''' è un ''fondamentale'' del ''Primo Anno'' del [[:Categoria:Corsi_Informatica|Corso di Informatica]].&lt;br /&gt;
&lt;br /&gt;
Il corso non richiede particolari prerequisiti, parte infatti dai fondamenti della programmazione ad oggetti usando Java come linguaggio di programmazione.&lt;br /&gt;
&lt;br /&gt;
Lo studio del linguaggio Java parte dai tipi di dato per arrivare sino alla gestione delle eccezioni.&lt;br /&gt;
&lt;br /&gt;
Dal punto di vista logico il corso è diviso in 2 parti, una prima nella quale lo studente imparerà ad usare classi precostruite per il corso (fornite con il libro di testo o liberamente scaricabili) , nella seconda parte invece lo studente imparerà ad implementare delle classi da usare e a gestirne le eccezioni.&lt;br /&gt;
&lt;br /&gt;
Il corso purtroppo non arriva a trattare argomenti di programmazione + avanzata quali Interazione con basi di dati, sviluppo di gui...&lt;br /&gt;
&lt;br /&gt;
Il libro di testo essendo scritto dal prof. [[Pighizzini]], docente del terzo turno è perfettamente &amp;quot;aderente&amp;quot; al programma del corso e questo agevola molta quegli studenti che non possono seguire con continuità...&lt;br /&gt;
&lt;br /&gt;
La parte di laboratorio dal 2006 viene svolta in aule attrezzate, e le prove di laboratorio vengono effettuate direttamente al computer.&lt;br /&gt;
&lt;br /&gt;
=== Crediti Formativi ===&lt;br /&gt;
il superamento di quest'esame + il superamento del relativo laboratorio danno diritto a '''18Cf'''&lt;br /&gt;
&lt;br /&gt;
===Videolezioni Si\No===&lt;br /&gt;
'''Sono disponibili le '''[http://vc.dsi.unimi.it/  videolezioni] ''' del corso'''&lt;br /&gt;
&lt;br /&gt;
== Modalità di Esame ==&lt;br /&gt;
[http://wiki.dsy.it/w/Programmazione_Turno_1#Modalit.C3.A0_d.27esame PRIMO TURNO ]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/esami/ TERZO TURNO ]&lt;br /&gt;
&lt;br /&gt;
=== Giudizio sul corso ===&lt;br /&gt;
{{Giudizio}}&lt;br /&gt;
{{Giudizio/Interesse|5|4|5}}&lt;br /&gt;
{{Giudizio/Difficoltà|4|3|4}}&lt;br /&gt;
{{Giudizio/Nonfrequentanti|5|4}}&lt;br /&gt;
{{Giudizio/Ore|3|1|3}}&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Corsi]][[Categoria:Corsi Telecom]][[Categoria:Corsi Informatica]][[Categoria:Corsi Primo Semestre]]&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione&amp;diff=16773</id>
		<title>Programmazione</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione&amp;diff=16773"/>
		<updated>2007-01-30T13:11:39Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* Informazioni Generali */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{introduzione}}&lt;br /&gt;
== Turni ==&lt;br /&gt;
&lt;br /&gt;
*'''[[Programmazione Turno 1/2006-2007|Turno 1]]&lt;br /&gt;
*'''[[Programmazione Turno 2/2006-2007|Turno 2]]&lt;br /&gt;
*'''[[Programmazione Turno 3/2006-2007|Turno 3 (Pighizzini)]]&lt;br /&gt;
&lt;br /&gt;
== Anni passati ==&lt;br /&gt;
&lt;br /&gt;
=== 2005/06 ===&lt;br /&gt;
{{annipassati|2005-2006|(Alberti)| Turno 1}}&lt;br /&gt;
{{annipassati|2005-2006|(Pighizzini)| Turno 3}}&lt;br /&gt;
&lt;br /&gt;
=== 2003/04 ===&lt;br /&gt;
{{annipassati|2003-2004|(Pighizzini)| Turno 3}}&lt;br /&gt;
&lt;br /&gt;
== Informazioni Generali==&lt;br /&gt;
&lt;br /&gt;
Il corso di '''Programmazione''' è un ''fondamentale'' del ''Primo Anno'' del [[:Categoria:Corsi_Informatica|Corso di Informatica]].&lt;br /&gt;
&lt;br /&gt;
Il corso non richiede particolari prerequisiti, parte infatti dai fondamenti della programmazione ad oggetti usando Java come linguaggio di programmazione.&lt;br /&gt;
&lt;br /&gt;
Lo studio del linguaggio Java parte dai tipi di dato per arrivare sino alla gestione delle eccezioni.&lt;br /&gt;
&lt;br /&gt;
Dal punto di vista logico il corso è diviso in 2 parti, una prima nella quale lo studente imparerà ad usare classi precostruite per il corso (fornite con il libro di testo o liberamente scaricabili) , nella seconda parte invece lo studente imparerà ad implementare delle classi da usare e a gestirne le eccezioni.&lt;br /&gt;
&lt;br /&gt;
Il corso purtroppo non arriva a trattare argomenti di programmazione + avanzata quali Interazione con basi di dati, sviluppo di gui...&lt;br /&gt;
&lt;br /&gt;
Il libro di testo essendo scritto dal prof. [[Pighizzini]], docente del terzo turno è perfettamente &amp;quot;aderente&amp;quot; al programma del corso e questo agevola molta quegli studenti che non possono seguire con continuità...&lt;br /&gt;
&lt;br /&gt;
La parte di laboratorio viene svolta da quest'anno in aule attrezzate, e le prove di laboratorio vengono effettuate direttamente al computer.&lt;br /&gt;
&lt;br /&gt;
=== Crediti Formativi ===&lt;br /&gt;
il superamento di quest'esame + il superamento del relativo laboratorio danno diritto a '''18Cf'''&lt;br /&gt;
&lt;br /&gt;
===Videolezioni Si\No===&lt;br /&gt;
'''Sono disponibili le '''[http://vc.dsi.unimi.it/  videolezioni] ''' del corso'''&lt;br /&gt;
&lt;br /&gt;
== Modalità di Esame ==&lt;br /&gt;
[http://wiki.dsy.it/w/Programmazione_Turno_1#Modalit.C3.A0_d.27esame PRIMO TURNO ]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/esami/ TERZO TURNO ]&lt;br /&gt;
&lt;br /&gt;
=== Giudizio sul corso ===&lt;br /&gt;
{{Giudizio}}&lt;br /&gt;
{{Giudizio/Interesse|5|4|5}}&lt;br /&gt;
{{Giudizio/Difficoltà|4|3|4}}&lt;br /&gt;
{{Giudizio/Nonfrequentanti|5|4}}&lt;br /&gt;
{{Giudizio/Ore|3|1|3}}&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Corsi]][[Categoria:Corsi Telecom]][[Categoria:Corsi Informatica]][[Categoria:Corsi Primo Semestre]]&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione&amp;diff=16772</id>
		<title>Programmazione</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione&amp;diff=16772"/>
		<updated>2007-01-30T13:10:35Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* Informazioni Generali */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{introduzione}}&lt;br /&gt;
== Turni ==&lt;br /&gt;
&lt;br /&gt;
*'''[[Programmazione Turno 1/2006-2007|Turno 1]]&lt;br /&gt;
*'''[[Programmazione Turno 2/2006-2007|Turno 2]]&lt;br /&gt;
*'''[[Programmazione Turno 3/2006-2007|Turno 3 (Pighizzini)]]&lt;br /&gt;
&lt;br /&gt;
== Anni passati ==&lt;br /&gt;
&lt;br /&gt;
=== 2005/06 ===&lt;br /&gt;
{{annipassati|2005-2006|(Alberti)| Turno 1}}&lt;br /&gt;
{{annipassati|2005-2006|(Pighizzini)| Turno 3}}&lt;br /&gt;
&lt;br /&gt;
=== 2003/04 ===&lt;br /&gt;
{{annipassati|2003-2004|(Pighizzini)| Turno 3}}&lt;br /&gt;
&lt;br /&gt;
== Informazioni Generali==&lt;br /&gt;
&lt;br /&gt;
Il corso di '''Programmazione''' è un ''fondamentale'' del ''Primo Anno'' del [[:Categoria:Corsi_Informatica|Corso di Informatica]].&lt;br /&gt;
&lt;br /&gt;
Il corso non richiede particolari prerequisiti, parte infatti dai fondamenti della programmazione ad oggetti usando Java come linguaggio di programmazione.&lt;br /&gt;
&lt;br /&gt;
Lo studio del linguaggio Java parte dai tipi di dato per arrivare sino alla gestione delle eccezioni.&lt;br /&gt;
&lt;br /&gt;
Dal punto di vista logico il corso è diviso in 2 parti, una prima nella quale lo studente imparerà ad usare classi precostruite per il corso (fornite con il libro di testo o liberamente scaricabili) , nella seconda parte invece lo studente imparerà ad implementare delle classi da usare e a gestirne le eccezioni.&lt;br /&gt;
&lt;br /&gt;
Il corso purtroppo non arriva a trattare argomenti di programmazione + avanzata quali Interazione con basi di dati, sviluppo di gui...&lt;br /&gt;
&lt;br /&gt;
Il libro di testo essendo scritto dal prof. [[Pighizzini]], docente del terzo turno è perfettamente &amp;quot;aderente&amp;quot; al programma del corso e questo agevola molta quegli studenti che non possono seguire con continuità...&lt;br /&gt;
&lt;br /&gt;
=== Crediti Formativi ===&lt;br /&gt;
il superamento di quest'esame + il superamento del relativo laboratorio danno diritto a '''18Cf'''&lt;br /&gt;
&lt;br /&gt;
===Videolezioni Si\No===&lt;br /&gt;
'''Sono disponibili le '''[http://vc.dsi.unimi.it/  videolezioni] ''' del corso'''&lt;br /&gt;
&lt;br /&gt;
== Modalità di Esame ==&lt;br /&gt;
[http://wiki.dsy.it/w/Programmazione_Turno_1#Modalit.C3.A0_d.27esame PRIMO TURNO ]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/esami/ TERZO TURNO ]&lt;br /&gt;
&lt;br /&gt;
=== Giudizio sul corso ===&lt;br /&gt;
{{Giudizio}}&lt;br /&gt;
{{Giudizio/Interesse|5|4|5}}&lt;br /&gt;
{{Giudizio/Difficoltà|4|3|4}}&lt;br /&gt;
{{Giudizio/Nonfrequentanti|5|4}}&lt;br /&gt;
{{Giudizio/Ore|3|1|3}}&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Corsi]][[Categoria:Corsi Telecom]][[Categoria:Corsi Informatica]][[Categoria:Corsi Primo Semestre]]&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione&amp;diff=16771</id>
		<title>Programmazione</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione&amp;diff=16771"/>
		<updated>2007-01-30T13:09:30Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* Modalità di Esame */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{introduzione}}&lt;br /&gt;
== Turni ==&lt;br /&gt;
&lt;br /&gt;
*'''[[Programmazione Turno 1/2006-2007|Turno 1]]&lt;br /&gt;
*'''[[Programmazione Turno 2/2006-2007|Turno 2]]&lt;br /&gt;
*'''[[Programmazione Turno 3/2006-2007|Turno 3 (Pighizzini)]]&lt;br /&gt;
&lt;br /&gt;
== Anni passati ==&lt;br /&gt;
&lt;br /&gt;
=== 2005/06 ===&lt;br /&gt;
{{annipassati|2005-2006|(Alberti)| Turno 1}}&lt;br /&gt;
{{annipassati|2005-2006|(Pighizzini)| Turno 3}}&lt;br /&gt;
&lt;br /&gt;
=== 2003/04 ===&lt;br /&gt;
{{annipassati|2003-2004|(Pighizzini)| Turno 3}}&lt;br /&gt;
&lt;br /&gt;
== Informazioni Generali==&lt;br /&gt;
&lt;br /&gt;
Il corso di '''Programmazione''' è un ''fondamentale'' del ''Primo Anno'' del [[:Categoria:Corsi_Informatica|Corso di Informatica]].&lt;br /&gt;
&lt;br /&gt;
Il corso non richiede particolari prerequisiti, parte infatti dai fondamenti della programmazione ad oggetti usando Java come linguaggio di programmazione.&lt;br /&gt;
&lt;br /&gt;
Lo studio del linguaggio Java parte dai tipi di dato per arrivare sino alla gestione delle eccezioni .&lt;br /&gt;
&lt;br /&gt;
Dal punto di vista logico il corso è diviso in 2 parti, una prima nella quale lo studente imparerà ad usare classi precostruite per il corso (fornite con il libro di testo o liberamente scaricabili) , nella seconda parte invece lo studente imparerà ad implementare delle classi da usare e a gestiren le eccezioni.&lt;br /&gt;
&lt;br /&gt;
Il corso purtroppo non arriva a trattare argomenti di programmazione + avanzata quali Interazione con basi di dati , sviluppo di gui...&lt;br /&gt;
&lt;br /&gt;
Il libro di testo essendo scritto dal prof. [[Pighizzini]], docente del terzo turno è perfettamente &amp;quot;aderente&amp;quot; al programma del corso e questo agevola molta quegli studenti che non possono seguire con continuità...&lt;br /&gt;
&lt;br /&gt;
=== Crediti Formativi ===&lt;br /&gt;
il superamento di quest'esame + il superamento del relativo laboratorio danno diritto a '''18Cf'''&lt;br /&gt;
&lt;br /&gt;
===Videolezioni Si\No===&lt;br /&gt;
'''Sono disponibili le '''[http://vc.dsi.unimi.it/  videolezioni] ''' del corso'''&lt;br /&gt;
&lt;br /&gt;
== Modalità di Esame ==&lt;br /&gt;
[http://wiki.dsy.it/w/Programmazione_Turno_1#Modalit.C3.A0_d.27esame PRIMO TURNO ]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/esami/ TERZO TURNO ]&lt;br /&gt;
&lt;br /&gt;
=== Giudizio sul corso ===&lt;br /&gt;
{{Giudizio}}&lt;br /&gt;
{{Giudizio/Interesse|5|4|5}}&lt;br /&gt;
{{Giudizio/Difficoltà|4|3|4}}&lt;br /&gt;
{{Giudizio/Nonfrequentanti|5|4}}&lt;br /&gt;
{{Giudizio/Ore|3|1|3}}&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Corsi]][[Categoria:Corsi Telecom]][[Categoria:Corsi Informatica]][[Categoria:Corsi Primo Semestre]]&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione&amp;diff=16770</id>
		<title>Programmazione</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione&amp;diff=16770"/>
		<updated>2007-01-30T13:08:27Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* Giudizio sul corso */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{introduzione}}&lt;br /&gt;
== Turni ==&lt;br /&gt;
&lt;br /&gt;
*'''[[Programmazione Turno 1/2006-2007|Turno 1]]&lt;br /&gt;
*'''[[Programmazione Turno 2/2006-2007|Turno 2]]&lt;br /&gt;
*'''[[Programmazione Turno 3/2006-2007|Turno 3 (Pighizzini)]]&lt;br /&gt;
&lt;br /&gt;
== Anni passati ==&lt;br /&gt;
&lt;br /&gt;
=== 2005/06 ===&lt;br /&gt;
{{annipassati|2005-2006|(Alberti)| Turno 1}}&lt;br /&gt;
{{annipassati|2005-2006|(Pighizzini)| Turno 3}}&lt;br /&gt;
&lt;br /&gt;
=== 2003/04 ===&lt;br /&gt;
{{annipassati|2003-2004|(Pighizzini)| Turno 3}}&lt;br /&gt;
&lt;br /&gt;
== Informazioni Generali==&lt;br /&gt;
&lt;br /&gt;
Il corso di '''Programmazione''' è un ''fondamentale'' del ''Primo Anno'' del [[:Categoria:Corsi_Informatica|Corso di Informatica]].&lt;br /&gt;
&lt;br /&gt;
Il corso non richiede particolari prerequisiti, parte infatti dai fondamenti della programmazione ad oggetti usando Java come linguaggio di programmazione.&lt;br /&gt;
&lt;br /&gt;
Lo studio del linguaggio Java parte dai tipi di dato per arrivare sino alla gestione delle eccezioni .&lt;br /&gt;
&lt;br /&gt;
Dal punto di vista logico il corso è diviso in 2 parti, una prima nella quale lo studente imparerà ad usare classi precostruite per il corso (fornite con il libro di testo o liberamente scaricabili) , nella seconda parte invece lo studente imparerà ad implementare delle classi da usare e a gestiren le eccezioni.&lt;br /&gt;
&lt;br /&gt;
Il corso purtroppo non arriva a trattare argomenti di programmazione + avanzata quali Interazione con basi di dati , sviluppo di gui...&lt;br /&gt;
&lt;br /&gt;
Il libro di testo essendo scritto dal prof. [[Pighizzini]], docente del terzo turno è perfettamente &amp;quot;aderente&amp;quot; al programma del corso e questo agevola molta quegli studenti che non possono seguire con continuità...&lt;br /&gt;
&lt;br /&gt;
=== Crediti Formativi ===&lt;br /&gt;
il superamento di quest'esame + il superamento del relativo laboratorio danno diritto a '''18Cf'''&lt;br /&gt;
&lt;br /&gt;
===Videolezioni Si\No===&lt;br /&gt;
'''Sono disponibili le '''[http://vc.dsi.unimi.it/  videolezioni] ''' del corso'''&lt;br /&gt;
&lt;br /&gt;
== Modalità di Esame ==&lt;br /&gt;
[http://wiki.dsy.it/w/Programmazione_Turno_1#Modalit.C3.A0_d.27esame PRIMO TURNO ]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.dsy.it/w/Programmazione_Turno_3#Modalit.C3.A0_d.27esame TERZO TURNO ]&lt;br /&gt;
&lt;br /&gt;
=== Giudizio sul corso ===&lt;br /&gt;
{{Giudizio}}&lt;br /&gt;
{{Giudizio/Interesse|5|4|5}}&lt;br /&gt;
{{Giudizio/Difficoltà|4|3|4}}&lt;br /&gt;
{{Giudizio/Nonfrequentanti|5|4}}&lt;br /&gt;
{{Giudizio/Ore|3|1|3}}&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Corsi]][[Categoria:Corsi Telecom]][[Categoria:Corsi Informatica]][[Categoria:Corsi Primo Semestre]]&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16769</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16769"/>
		<updated>2007-01-30T13:05:56Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* News */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
* Pubblicate le [http://homes.dico.unimi.it/prog/turno3-06/esami/ modalità d'esame].&lt;br /&gt;
&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/compitini/quadro.txt Quadro riassuntivo] dei risultati dei compitini e delle prove di laboratorio.&lt;br /&gt;
&lt;br /&gt;
* L'appello di verbalizzazione per gli esonerati dall'esame sarà il 6 febbraio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prove in itinere ===&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 17 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione2.pdf Soluzione] -  [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati2.pdf Risultati])&lt;br /&gt;
*'''Seconda Prova in itinere (lab)''' 19 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab12.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati2itinere.pdf Risultati])&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/compitini/quadro.txt Quadro riassuntivo] dei risultati e degli esoneri.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
Sul sito di [http://homes.dico.unimi.it/prog/turno3-06/lab/index.php?page=lezioni laboratorio] sono disponibili invece le tracce svolte a lezione.&lt;br /&gt;
&lt;br /&gt;
===Appelli Ordinari===&lt;br /&gt;
&lt;br /&gt;
Per l'anno accademico 2006/2007 gli appelli d'esame sono previsti nelle seguenti date:&lt;br /&gt;
&lt;br /&gt;
* 29 gennaio 2007 ore 15 aula Sigma (Comelico)&lt;br /&gt;
* 28 febbraio 2007&lt;br /&gt;
* 11 giugno 2007&lt;br /&gt;
* 9 luglio 2007&lt;br /&gt;
* 21 settembre 2007&lt;br /&gt;
&lt;br /&gt;
Le date indicano l'inizio dell'appello (prova di laboratorio). Gli orali si svolgeranno il giorno stesso o alcuni giorni dopo, secondo quanto verrà comunicato in tempo utile sul [http://homes.dico.unimi.it/prog/turno3-06/esami/ sito del prof]).&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
*''[http://pighizzini.dico.unimi.it/jb/doc/ ProgDoc] documentazione del package Prog''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-05/lab/temi.html temi di lab 2005/06]&lt;br /&gt;
=== Dal DSY ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab9.pdf Traccia 9]&lt;br /&gt;
 &lt;br /&gt;
* Estendere la classe Persona del package labprog.&lt;br /&gt;
* La classe Vector&lt;br /&gt;
* Implementazione di un package d'utilità per l'aritmetica in precisione illimitata.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 18-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Esempio: calcolatrice in notazione postfissa; studio e gestione delle situazioni anomale. &lt;br /&gt;
* Come sollevare le eccezioni: l'istruzione throw. &lt;br /&gt;
* Come definire nuove eccezioni. &lt;br /&gt;
* Classificazione delle eccezioni: eccezioni controllate e non controllate. &lt;br /&gt;
* Come delegare le eccezioni (throws).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 20-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab10.pdf Traccia 10]&lt;br /&gt;
&lt;br /&gt;
* Intercettare le eccezioni non controllate per gestire gli errori in fase d'esecuzione. &lt;br /&gt;
* Lettura di un file con il package prog: gestione degli errori. &lt;br /&gt;
* Copia di un file di testo: gestione degli errori.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 08-01-2007 ===&lt;br /&gt;
&lt;br /&gt;
* L'input/output standard (package java.io). &lt;br /&gt;
* Stream di caratteri: le classi Reader, FileReader, BufferedReader (VisualizzaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-0.java mediante uso di FileReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-1.java mediante uso di BufferedReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile.java con una semplice gestione delle eccezioni]); &lt;br /&gt;
* le classi Writer, FileWriter, BufferedWriter (CopiaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile.java mediante FileWriter], [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile-0.java mediante BufferedWriter]). &lt;br /&gt;
* Stream di byte: InputStream, Outputstream ed esempi di sottoclassi. &lt;br /&gt;
* I riferimenti predefiniti System.in, System.err, System.out (ContaLettere.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere-0.java lettura da tastiera], [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere.java lettura da file o da tastiera]).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 10-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab11.pdf Traccia 11]&lt;br /&gt;
&lt;br /&gt;
* Input e output di base con le librerie standard di Java. &lt;br /&gt;
* Un esercizio complessivo ([http://homes.dico.unimi.it/prog/turno3-05/lab/progettosetgen/minishell.pdf MiniShell]) sugli stream e le eccezioni.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 12-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Metodi ricorsivi. &lt;br /&gt;
* Invocazione dei metori e passaggio dei parametri. &lt;br /&gt;
* Passaggio per valore. &lt;br /&gt;
* Cenni ad altri meccanismi di passaggio dei parametri. &lt;br /&gt;
* Organizzazione della memoria durante l'esecuzione: memoria statica, stack, heap. &lt;br /&gt;
* Gestione dello stack durante l'esecuzione: record di attivazione e loro struttura. &lt;br /&gt;
* Chiamate e rientri dai metodi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 15-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Overloading e overriding: il ruolo del compilatore e quello dell'esecutore. &lt;br /&gt;
* Come avviene la scelta del metodo da eseguire. &lt;br /&gt;
* Come scrivere il metodo equals. &lt;br /&gt;
* Esercizi di ripasso.&lt;br /&gt;
&lt;br /&gt;
=== Compitino di mercoledì 17-01-2006 ===&lt;br /&gt;
Secondo Compitino teoria:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione2.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati2.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di venerdì 19-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
Seconda prova in itinere.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab12.pdf Traccia12]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati2itinere.pdf Risultati]&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16760</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16760"/>
		<updated>2007-01-24T21:06:36Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* News */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
* Pubblicate le [http://homes.dico.unimi.it/prog/turno3-06/esami/ modalità d'esame].&lt;br /&gt;
&lt;br /&gt;
* Il primo appello dell'anno è il 29 gennaio 2007.&lt;br /&gt;
La prova (di laboratorio) si terrà a partire dalle ore 15 presso l'aula Sigma, all'interno dei laboratori didattici di via Comelico. Gli studenti sono pregati di presentarsi con sufficiente anticipo.&lt;br /&gt;
Gli studenti dell'anno accademico 2005/06 che debbano completare l'esame sono invitati a contattare il docente esclusivamente per email entro lunedì 22 gennaio 2007.&lt;br /&gt;
&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/compitini/quadro.txt Quadro riassuntivo] dei risultati dei compitini e delle prove di laboratorio.&lt;br /&gt;
&lt;br /&gt;
* L'appello di verbalizzazione per gli esonerati dall'esame sarà il 6 febbraio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prove in itinere ===&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 17 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione2.pdf Soluzione] -  [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati2.pdf Risultati])&lt;br /&gt;
*'''Seconda Prova in itinere (lab)''' 19 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab12.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati2itinere.pdf Risultati])&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/compitini/quadro.txt Quadro riassuntivo] dei risultati e degli esoneri.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
Sul sito di [http://homes.dico.unimi.it/prog/turno3-06/lab/index.php?page=lezioni laboratorio] sono disponibili invece le tracce svolte a lezione.&lt;br /&gt;
&lt;br /&gt;
===Appelli Ordinari===&lt;br /&gt;
&lt;br /&gt;
Per l'anno accademico 2006/2007 gli appelli d'esame sono previsti nelle seguenti date:&lt;br /&gt;
&lt;br /&gt;
* 29 gennaio 2007 ore 15 aula Sigma (Comelico)&lt;br /&gt;
* 28 febbraio 2007&lt;br /&gt;
* 11 giugno 2007&lt;br /&gt;
* 9 luglio 2007&lt;br /&gt;
* 21 settembre 2007&lt;br /&gt;
&lt;br /&gt;
Le date indicano l'inizio dell'appello (prova di laboratorio). Gli orali si svolgeranno il giorno stesso o alcuni giorni dopo, secondo quanto verrà comunicato in tempo utile sul [http://homes.dico.unimi.it/prog/turno3-06/esami/ sito del prof]).&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
*''[http://pighizzini.dico.unimi.it/jb/doc/ ProgDoc] documentazione del package Prog''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-05/lab/temi.html temi di lab 2005/06]&lt;br /&gt;
=== Dal DSY ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab9.pdf Traccia 9]&lt;br /&gt;
 &lt;br /&gt;
* Estendere la classe Persona del package labprog.&lt;br /&gt;
* La classe Vector&lt;br /&gt;
* Implementazione di un package d'utilità per l'aritmetica in precisione illimitata.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 18-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Esempio: calcolatrice in notazione postfissa; studio e gestione delle situazioni anomale. &lt;br /&gt;
* Come sollevare le eccezioni: l'istruzione throw. &lt;br /&gt;
* Come definire nuove eccezioni. &lt;br /&gt;
* Classificazione delle eccezioni: eccezioni controllate e non controllate. &lt;br /&gt;
* Come delegare le eccezioni (throws).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 20-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab10.pdf Traccia 10]&lt;br /&gt;
&lt;br /&gt;
* Intercettare le eccezioni non controllate per gestire gli errori in fase d'esecuzione. &lt;br /&gt;
* Lettura di un file con il package prog: gestione degli errori. &lt;br /&gt;
* Copia di un file di testo: gestione degli errori.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 08-01-2007 ===&lt;br /&gt;
&lt;br /&gt;
* L'input/output standard (package java.io). &lt;br /&gt;
* Stream di caratteri: le classi Reader, FileReader, BufferedReader (VisualizzaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-0.java mediante uso di FileReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-1.java mediante uso di BufferedReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile.java con una semplice gestione delle eccezioni]); &lt;br /&gt;
* le classi Writer, FileWriter, BufferedWriter (CopiaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile.java mediante FileWriter], [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile-0.java mediante BufferedWriter]). &lt;br /&gt;
* Stream di byte: InputStream, Outputstream ed esempi di sottoclassi. &lt;br /&gt;
* I riferimenti predefiniti System.in, System.err, System.out (ContaLettere.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere-0.java lettura da tastiera], [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere.java lettura da file o da tastiera]).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 10-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab11.pdf Traccia 11]&lt;br /&gt;
&lt;br /&gt;
* Input e output di base con le librerie standard di Java. &lt;br /&gt;
* Un esercizio complessivo ([http://homes.dico.unimi.it/prog/turno3-05/lab/progettosetgen/minishell.pdf MiniShell]) sugli stream e le eccezioni.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 12-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Metodi ricorsivi. &lt;br /&gt;
* Invocazione dei metori e passaggio dei parametri. &lt;br /&gt;
* Passaggio per valore. &lt;br /&gt;
* Cenni ad altri meccanismi di passaggio dei parametri. &lt;br /&gt;
* Organizzazione della memoria durante l'esecuzione: memoria statica, stack, heap. &lt;br /&gt;
* Gestione dello stack durante l'esecuzione: record di attivazione e loro struttura. &lt;br /&gt;
* Chiamate e rientri dai metodi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 15-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Overloading e overriding: il ruolo del compilatore e quello dell'esecutore. &lt;br /&gt;
* Come avviene la scelta del metodo da eseguire. &lt;br /&gt;
* Come scrivere il metodo equals. &lt;br /&gt;
* Esercizi di ripasso.&lt;br /&gt;
&lt;br /&gt;
=== Compitino di mercoledì 17-01-2006 ===&lt;br /&gt;
Secondo Compitino teoria:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione2.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati2.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di venerdì 19-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
Seconda prova in itinere.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab12.pdf Traccia12]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati2itinere.pdf Risultati]&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16759</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16759"/>
		<updated>2007-01-24T21:05:53Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* News */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
* Pubblicate le [http://homes.dico.unimi.it/prog/turno3-06/esami/ modalità d'esame].&lt;br /&gt;
&lt;br /&gt;
* Il primo appello dell'anno è il 29 gennaio 2007.&lt;br /&gt;
La prova (di laboratorio) si terrà a partire dalle ore 15 presso l'aula Sigma, all'interno dei laboratori didattici di via Comelico. Gli studenti sono pregati di presentarsi con sufficiente anticipo.&lt;br /&gt;
Gli studenti dell'anno accademico 2005/06 che debbano completare l'esame sono invitati a contattare il docente esclusivamente per email entro lunedì 22 gennaio 2007.&lt;br /&gt;
&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/compitini/quadro.txt Quadro riassuntivo] dei risultati dei compitini e delle prove di laboratorio.&lt;br /&gt;
&lt;br /&gt;
* L'appello di verbalizzazione per gli esonerati dall'esame sarà il 6 febbraio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prove in itinere ===&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 17 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione2.pdf Soluzione] -  [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati2.pdf Risultati])&lt;br /&gt;
*'''Seconda Prova in itinere (lab)''' 19 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab12.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati2itinere.pdf Risultati])&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/compitini/quadro.txt Quadro riassuntivo] dei risultati e degli esoneri.&lt;br /&gt;
&lt;br /&gt;
====Teoria====&lt;br /&gt;
&lt;br /&gt;
* '''Primo compitino teoria''': 13 novembre&lt;br /&gt;
* '''Secondo compitino teoria''': 17 gennaio&lt;br /&gt;
&lt;br /&gt;
Il risultato del primo compitino non pregiudica l'accesso al secondo&lt;br /&gt;
&lt;br /&gt;
====Laboratorio====&lt;br /&gt;
&lt;br /&gt;
Le prove in itinere consistono in esercitazioni in aula informatica.&lt;br /&gt;
 &lt;br /&gt;
* '''Prima esercitazione''': mercoledì 15 novembre.&lt;br /&gt;
&lt;br /&gt;
* '''Seconda esercitazione''':venerdì 19 gennaio.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
Sul sito di [http://homes.dico.unimi.it/prog/turno3-06/lab/index.php?page=lezioni laboratorio] sono disponibili invece le tracce svolte a lezione.&lt;br /&gt;
&lt;br /&gt;
===Appelli Ordinari===&lt;br /&gt;
&lt;br /&gt;
Per l'anno accademico 2006/2007 gli appelli d'esame sono previsti nelle seguenti date:&lt;br /&gt;
&lt;br /&gt;
* 29 gennaio 2007 ore 15 aula Sigma (Comelico)&lt;br /&gt;
* 28 febbraio 2007&lt;br /&gt;
* 11 giugno 2007&lt;br /&gt;
* 9 luglio 2007&lt;br /&gt;
* 21 settembre 2007&lt;br /&gt;
&lt;br /&gt;
Le date indicano l'inizio dell'appello (prova di laboratorio). Gli orali si svolgeranno il giorno stesso o alcuni giorni dopo, secondo quanto verrà comunicato in tempo utile sul [http://homes.dico.unimi.it/prog/turno3-06/esami/ sito del prof]).&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
*''[http://pighizzini.dico.unimi.it/jb/doc/ ProgDoc] documentazione del package Prog''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-05/lab/temi.html temi di lab 2005/06]&lt;br /&gt;
=== Dal DSY ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab9.pdf Traccia 9]&lt;br /&gt;
 &lt;br /&gt;
* Estendere la classe Persona del package labprog.&lt;br /&gt;
* La classe Vector&lt;br /&gt;
* Implementazione di un package d'utilità per l'aritmetica in precisione illimitata.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 18-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Esempio: calcolatrice in notazione postfissa; studio e gestione delle situazioni anomale. &lt;br /&gt;
* Come sollevare le eccezioni: l'istruzione throw. &lt;br /&gt;
* Come definire nuove eccezioni. &lt;br /&gt;
* Classificazione delle eccezioni: eccezioni controllate e non controllate. &lt;br /&gt;
* Come delegare le eccezioni (throws).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 20-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab10.pdf Traccia 10]&lt;br /&gt;
&lt;br /&gt;
* Intercettare le eccezioni non controllate per gestire gli errori in fase d'esecuzione. &lt;br /&gt;
* Lettura di un file con il package prog: gestione degli errori. &lt;br /&gt;
* Copia di un file di testo: gestione degli errori.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 08-01-2007 ===&lt;br /&gt;
&lt;br /&gt;
* L'input/output standard (package java.io). &lt;br /&gt;
* Stream di caratteri: le classi Reader, FileReader, BufferedReader (VisualizzaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-0.java mediante uso di FileReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-1.java mediante uso di BufferedReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile.java con una semplice gestione delle eccezioni]); &lt;br /&gt;
* le classi Writer, FileWriter, BufferedWriter (CopiaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile.java mediante FileWriter], [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile-0.java mediante BufferedWriter]). &lt;br /&gt;
* Stream di byte: InputStream, Outputstream ed esempi di sottoclassi. &lt;br /&gt;
* I riferimenti predefiniti System.in, System.err, System.out (ContaLettere.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere-0.java lettura da tastiera], [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere.java lettura da file o da tastiera]).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 10-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab11.pdf Traccia 11]&lt;br /&gt;
&lt;br /&gt;
* Input e output di base con le librerie standard di Java. &lt;br /&gt;
* Un esercizio complessivo ([http://homes.dico.unimi.it/prog/turno3-05/lab/progettosetgen/minishell.pdf MiniShell]) sugli stream e le eccezioni.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 12-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Metodi ricorsivi. &lt;br /&gt;
* Invocazione dei metori e passaggio dei parametri. &lt;br /&gt;
* Passaggio per valore. &lt;br /&gt;
* Cenni ad altri meccanismi di passaggio dei parametri. &lt;br /&gt;
* Organizzazione della memoria durante l'esecuzione: memoria statica, stack, heap. &lt;br /&gt;
* Gestione dello stack durante l'esecuzione: record di attivazione e loro struttura. &lt;br /&gt;
* Chiamate e rientri dai metodi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 15-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Overloading e overriding: il ruolo del compilatore e quello dell'esecutore. &lt;br /&gt;
* Come avviene la scelta del metodo da eseguire. &lt;br /&gt;
* Come scrivere il metodo equals. &lt;br /&gt;
* Esercizi di ripasso.&lt;br /&gt;
&lt;br /&gt;
=== Compitino di mercoledì 17-01-2006 ===&lt;br /&gt;
Secondo Compitino teoria:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione2.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati2.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di venerdì 19-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
Seconda prova in itinere.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab12.pdf Traccia12]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati2itinere.pdf Risultati]&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16758</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16758"/>
		<updated>2007-01-24T21:04:48Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* News */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
* Pubblicate le [http://homes.dico.unimi.it/prog/turno3-06/esami/ modalità d'esame].&lt;br /&gt;
&lt;br /&gt;
* Il primo appello dell'anno è il 29 gennaio 2007.&lt;br /&gt;
La prova (di laboratorio) si terrà a partire dalle ore 15 presso l'aula Sigma, all'interno dei laboratori didattici di via Comelico. Gli studenti sono pregati di presentarsi con sufficiente anticipo.&lt;br /&gt;
Gli studenti dell'anno accademico 2005/06 che debbano completare l'esame sono invitati a contattare il docente esclusivamente per email entro lunedì 22 gennaio 2007.&lt;br /&gt;
&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/compitini/quadro.txt Quadro riassuntivo] dei risultati dei compitini e delle prove di laboratorio.&lt;br /&gt;
&lt;br /&gt;
* L'appello di verbalizzazione per gli esonerati dall'esame sarà il 6 febbraio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prove in itinere ===&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 17 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione2.pdf Soluzione] -  [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati2.pdf Risultati])&lt;br /&gt;
*'''Seconda Prova in itinere (lab)''' 19 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab12.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati2itinere.pdf Risultati])&lt;br /&gt;
&lt;br /&gt;
Gli studenti che hanno sostenuto i compitini e/o le prove in itinere di laboratorio durante il corso possono essere esonerati da una o più parti dell'esame, sulla base dei risultati complessivi che verranno pubblicati sul sito del prof. Ulteriori informazioni al riguardo saranno fornite insieme ai risultati.&lt;br /&gt;
&lt;br /&gt;
====Teoria====&lt;br /&gt;
&lt;br /&gt;
* '''Primo compitino teoria''': 13 novembre&lt;br /&gt;
* '''Secondo compitino teoria''': 17 gennaio&lt;br /&gt;
&lt;br /&gt;
Il risultato del primo compitino non pregiudica l'accesso al secondo&lt;br /&gt;
&lt;br /&gt;
====Laboratorio====&lt;br /&gt;
&lt;br /&gt;
Le prove in itinere consistono in esercitazioni in aula informatica.&lt;br /&gt;
 &lt;br /&gt;
* '''Prima esercitazione''': mercoledì 15 novembre.&lt;br /&gt;
&lt;br /&gt;
* '''Seconda esercitazione''':venerdì 19 gennaio.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
Sul sito di [http://homes.dico.unimi.it/prog/turno3-06/lab/index.php?page=lezioni laboratorio] sono disponibili invece le tracce svolte a lezione.&lt;br /&gt;
&lt;br /&gt;
===Appelli Ordinari===&lt;br /&gt;
&lt;br /&gt;
Per l'anno accademico 2006/2007 gli appelli d'esame sono previsti nelle seguenti date:&lt;br /&gt;
&lt;br /&gt;
* 29 gennaio 2007 ore 15 aula Sigma (Comelico)&lt;br /&gt;
* 28 febbraio 2007&lt;br /&gt;
* 11 giugno 2007&lt;br /&gt;
* 9 luglio 2007&lt;br /&gt;
* 21 settembre 2007&lt;br /&gt;
&lt;br /&gt;
Le date indicano l'inizio dell'appello (prova di laboratorio). Gli orali si svolgeranno il giorno stesso o alcuni giorni dopo, secondo quanto verrà comunicato in tempo utile sul [http://homes.dico.unimi.it/prog/turno3-06/esami/ sito del prof]).&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
*''[http://pighizzini.dico.unimi.it/jb/doc/ ProgDoc] documentazione del package Prog''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-05/lab/temi.html temi di lab 2005/06]&lt;br /&gt;
=== Dal DSY ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab9.pdf Traccia 9]&lt;br /&gt;
 &lt;br /&gt;
* Estendere la classe Persona del package labprog.&lt;br /&gt;
* La classe Vector&lt;br /&gt;
* Implementazione di un package d'utilità per l'aritmetica in precisione illimitata.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 18-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Esempio: calcolatrice in notazione postfissa; studio e gestione delle situazioni anomale. &lt;br /&gt;
* Come sollevare le eccezioni: l'istruzione throw. &lt;br /&gt;
* Come definire nuove eccezioni. &lt;br /&gt;
* Classificazione delle eccezioni: eccezioni controllate e non controllate. &lt;br /&gt;
* Come delegare le eccezioni (throws).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 20-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab10.pdf Traccia 10]&lt;br /&gt;
&lt;br /&gt;
* Intercettare le eccezioni non controllate per gestire gli errori in fase d'esecuzione. &lt;br /&gt;
* Lettura di un file con il package prog: gestione degli errori. &lt;br /&gt;
* Copia di un file di testo: gestione degli errori.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 08-01-2007 ===&lt;br /&gt;
&lt;br /&gt;
* L'input/output standard (package java.io). &lt;br /&gt;
* Stream di caratteri: le classi Reader, FileReader, BufferedReader (VisualizzaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-0.java mediante uso di FileReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-1.java mediante uso di BufferedReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile.java con una semplice gestione delle eccezioni]); &lt;br /&gt;
* le classi Writer, FileWriter, BufferedWriter (CopiaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile.java mediante FileWriter], [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile-0.java mediante BufferedWriter]). &lt;br /&gt;
* Stream di byte: InputStream, Outputstream ed esempi di sottoclassi. &lt;br /&gt;
* I riferimenti predefiniti System.in, System.err, System.out (ContaLettere.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere-0.java lettura da tastiera], [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere.java lettura da file o da tastiera]).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 10-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab11.pdf Traccia 11]&lt;br /&gt;
&lt;br /&gt;
* Input e output di base con le librerie standard di Java. &lt;br /&gt;
* Un esercizio complessivo ([http://homes.dico.unimi.it/prog/turno3-05/lab/progettosetgen/minishell.pdf MiniShell]) sugli stream e le eccezioni.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 12-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Metodi ricorsivi. &lt;br /&gt;
* Invocazione dei metori e passaggio dei parametri. &lt;br /&gt;
* Passaggio per valore. &lt;br /&gt;
* Cenni ad altri meccanismi di passaggio dei parametri. &lt;br /&gt;
* Organizzazione della memoria durante l'esecuzione: memoria statica, stack, heap. &lt;br /&gt;
* Gestione dello stack durante l'esecuzione: record di attivazione e loro struttura. &lt;br /&gt;
* Chiamate e rientri dai metodi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 15-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Overloading e overriding: il ruolo del compilatore e quello dell'esecutore. &lt;br /&gt;
* Come avviene la scelta del metodo da eseguire. &lt;br /&gt;
* Come scrivere il metodo equals. &lt;br /&gt;
* Esercizi di ripasso.&lt;br /&gt;
&lt;br /&gt;
=== Compitino di mercoledì 17-01-2006 ===&lt;br /&gt;
Secondo Compitino teoria:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione2.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati2.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di venerdì 19-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
Seconda prova in itinere.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab12.pdf Traccia12]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati2itinere.pdf Risultati]&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16748</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16748"/>
		<updated>2007-01-22T20:06:20Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* Compitino di mercoledì 17-01-2006 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
* Pubblicate le [http://homes.dico.unimi.it/prog/turno3-06/esami/ modalità d'esame].&lt;br /&gt;
&lt;br /&gt;
* Il primo appello dell'anno è il 29 gennaio 2007.&lt;br /&gt;
La prova (di laboratorio) si terrà a partire dalle ore 15 presso l'aula Sigma, all'interno dei laboratori didattici di via Comelico. Gli studenti sono pregati di presentarsi con sufficiente anticipo.&lt;br /&gt;
Gli studenti dell'anno accademico 2005/06 che debbano completare l'esame sono invitati a contattare il docente esclusivamente per email entro lunedì 22 gennaio 2007.&lt;br /&gt;
&lt;br /&gt;
*Il quadro riassuntivo dei risultati dei compitini e delle prove di laboratorio, con l'elenco degli esoneri dall'esame o da parti di esame, sarà pubblicato entro la giornata di giovedì 25 gennaio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prove in itinere ===&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 17 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione2.pdf Soluzione] -  [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati2.pdf Risultati])&lt;br /&gt;
*'''Seconda Prova in itinere (lab)''' 19 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab12.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati2itinere.pdf Risultati])&lt;br /&gt;
&lt;br /&gt;
Gli studenti che hanno sostenuto i compitini e/o le prove in itinere di laboratorio durante il corso possono essere esonerati da una o più parti dell'esame, sulla base dei risultati complessivi che verranno pubblicati sul sito del prof. Ulteriori informazioni al riguardo saranno fornite insieme ai risultati.&lt;br /&gt;
&lt;br /&gt;
====Teoria====&lt;br /&gt;
&lt;br /&gt;
* '''Primo compitino teoria''': 13 novembre&lt;br /&gt;
* '''Secondo compitino teoria''': 17 gennaio&lt;br /&gt;
&lt;br /&gt;
Il risultato del primo compitino non pregiudica l'accesso al secondo&lt;br /&gt;
&lt;br /&gt;
====Laboratorio====&lt;br /&gt;
&lt;br /&gt;
Le prove in itinere consistono in esercitazioni in aula informatica.&lt;br /&gt;
 &lt;br /&gt;
* '''Prima esercitazione''': mercoledì 15 novembre.&lt;br /&gt;
&lt;br /&gt;
* '''Seconda esercitazione''':venerdì 19 gennaio.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
Sul sito di [http://homes.dico.unimi.it/prog/turno3-06/lab/index.php?page=lezioni laboratorio] sono disponibili invece le tracce svolte a lezione.&lt;br /&gt;
&lt;br /&gt;
===Appelli Ordinari===&lt;br /&gt;
&lt;br /&gt;
Per l'anno accademico 2006/2007 gli appelli d'esame sono previsti nelle seguenti date:&lt;br /&gt;
&lt;br /&gt;
* 29 gennaio 2007 ore 15 aula Sigma (Comelico)&lt;br /&gt;
* 28 febbraio 2007&lt;br /&gt;
* 11 giugno 2007&lt;br /&gt;
* 9 luglio 2007&lt;br /&gt;
* 21 settembre 2007&lt;br /&gt;
&lt;br /&gt;
Le date indicano l'inizio dell'appello (prova di laboratorio). Gli orali si svolgeranno il giorno stesso o alcuni giorni dopo, secondo quanto verrà comunicato in tempo utile sul [http://homes.dico.unimi.it/prog/turno3-06/esami/ sito del prof]).&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
*''[http://pighizzini.dico.unimi.it/jb/doc/ ProgDoc] documentazione del package Prog''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-05/lab/temi.html temi di lab 2005/06]&lt;br /&gt;
=== Dal DSY ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab9.pdf Traccia 9]&lt;br /&gt;
 &lt;br /&gt;
* Estendere la classe Persona del package labprog.&lt;br /&gt;
* La classe Vector&lt;br /&gt;
* Implementazione di un package d'utilità per l'aritmetica in precisione illimitata.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 18-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Esempio: calcolatrice in notazione postfissa; studio e gestione delle situazioni anomale. &lt;br /&gt;
* Come sollevare le eccezioni: l'istruzione throw. &lt;br /&gt;
* Come definire nuove eccezioni. &lt;br /&gt;
* Classificazione delle eccezioni: eccezioni controllate e non controllate. &lt;br /&gt;
* Come delegare le eccezioni (throws).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 20-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab10.pdf Traccia 10]&lt;br /&gt;
&lt;br /&gt;
* Intercettare le eccezioni non controllate per gestire gli errori in fase d'esecuzione. &lt;br /&gt;
* Lettura di un file con il package prog: gestione degli errori. &lt;br /&gt;
* Copia di un file di testo: gestione degli errori.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 08-01-2007 ===&lt;br /&gt;
&lt;br /&gt;
* L'input/output standard (package java.io). &lt;br /&gt;
* Stream di caratteri: le classi Reader, FileReader, BufferedReader (VisualizzaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-0.java mediante uso di FileReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-1.java mediante uso di BufferedReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile.java con una semplice gestione delle eccezioni]); &lt;br /&gt;
* le classi Writer, FileWriter, BufferedWriter (CopiaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile.java mediante FileWriter], [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile-0.java mediante BufferedWriter]). &lt;br /&gt;
* Stream di byte: InputStream, Outputstream ed esempi di sottoclassi. &lt;br /&gt;
* I riferimenti predefiniti System.in, System.err, System.out (ContaLettere.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere-0.java lettura da tastiera], [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere.java lettura da file o da tastiera]).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 10-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab11.pdf Traccia 11]&lt;br /&gt;
&lt;br /&gt;
* Input e output di base con le librerie standard di Java. &lt;br /&gt;
* Un esercizio complessivo ([http://homes.dico.unimi.it/prog/turno3-05/lab/progettosetgen/minishell.pdf MiniShell]) sugli stream e le eccezioni.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 12-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Metodi ricorsivi. &lt;br /&gt;
* Invocazione dei metori e passaggio dei parametri. &lt;br /&gt;
* Passaggio per valore. &lt;br /&gt;
* Cenni ad altri meccanismi di passaggio dei parametri. &lt;br /&gt;
* Organizzazione della memoria durante l'esecuzione: memoria statica, stack, heap. &lt;br /&gt;
* Gestione dello stack durante l'esecuzione: record di attivazione e loro struttura. &lt;br /&gt;
* Chiamate e rientri dai metodi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 15-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Overloading e overriding: il ruolo del compilatore e quello dell'esecutore. &lt;br /&gt;
* Come avviene la scelta del metodo da eseguire. &lt;br /&gt;
* Come scrivere il metodo equals. &lt;br /&gt;
* Esercizi di ripasso.&lt;br /&gt;
&lt;br /&gt;
=== Compitino di mercoledì 17-01-2006 ===&lt;br /&gt;
Secondo Compitino teoria:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione2.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati2.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di venerdì 19-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
Seconda prova in itinere.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab12.pdf Traccia12]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati2itinere.pdf Risultati]&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16747</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16747"/>
		<updated>2007-01-22T20:05:40Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* Compitino di venerdì 19-01-2006 (lab) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
* Pubblicate le [http://homes.dico.unimi.it/prog/turno3-06/esami/ modalità d'esame].&lt;br /&gt;
&lt;br /&gt;
* Il primo appello dell'anno è il 29 gennaio 2007.&lt;br /&gt;
La prova (di laboratorio) si terrà a partire dalle ore 15 presso l'aula Sigma, all'interno dei laboratori didattici di via Comelico. Gli studenti sono pregati di presentarsi con sufficiente anticipo.&lt;br /&gt;
Gli studenti dell'anno accademico 2005/06 che debbano completare l'esame sono invitati a contattare il docente esclusivamente per email entro lunedì 22 gennaio 2007.&lt;br /&gt;
&lt;br /&gt;
*Il quadro riassuntivo dei risultati dei compitini e delle prove di laboratorio, con l'elenco degli esoneri dall'esame o da parti di esame, sarà pubblicato entro la giornata di giovedì 25 gennaio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prove in itinere ===&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 17 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione2.pdf Soluzione] -  [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati2.pdf Risultati])&lt;br /&gt;
*'''Seconda Prova in itinere (lab)''' 19 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab12.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati2itinere.pdf Risultati])&lt;br /&gt;
&lt;br /&gt;
Gli studenti che hanno sostenuto i compitini e/o le prove in itinere di laboratorio durante il corso possono essere esonerati da una o più parti dell'esame, sulla base dei risultati complessivi che verranno pubblicati sul sito del prof. Ulteriori informazioni al riguardo saranno fornite insieme ai risultati.&lt;br /&gt;
&lt;br /&gt;
====Teoria====&lt;br /&gt;
&lt;br /&gt;
* '''Primo compitino teoria''': 13 novembre&lt;br /&gt;
* '''Secondo compitino teoria''': 17 gennaio&lt;br /&gt;
&lt;br /&gt;
Il risultato del primo compitino non pregiudica l'accesso al secondo&lt;br /&gt;
&lt;br /&gt;
====Laboratorio====&lt;br /&gt;
&lt;br /&gt;
Le prove in itinere consistono in esercitazioni in aula informatica.&lt;br /&gt;
 &lt;br /&gt;
* '''Prima esercitazione''': mercoledì 15 novembre.&lt;br /&gt;
&lt;br /&gt;
* '''Seconda esercitazione''':venerdì 19 gennaio.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
Sul sito di [http://homes.dico.unimi.it/prog/turno3-06/lab/index.php?page=lezioni laboratorio] sono disponibili invece le tracce svolte a lezione.&lt;br /&gt;
&lt;br /&gt;
===Appelli Ordinari===&lt;br /&gt;
&lt;br /&gt;
Per l'anno accademico 2006/2007 gli appelli d'esame sono previsti nelle seguenti date:&lt;br /&gt;
&lt;br /&gt;
* 29 gennaio 2007 ore 15 aula Sigma (Comelico)&lt;br /&gt;
* 28 febbraio 2007&lt;br /&gt;
* 11 giugno 2007&lt;br /&gt;
* 9 luglio 2007&lt;br /&gt;
* 21 settembre 2007&lt;br /&gt;
&lt;br /&gt;
Le date indicano l'inizio dell'appello (prova di laboratorio). Gli orali si svolgeranno il giorno stesso o alcuni giorni dopo, secondo quanto verrà comunicato in tempo utile sul [http://homes.dico.unimi.it/prog/turno3-06/esami/ sito del prof]).&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
*''[http://pighizzini.dico.unimi.it/jb/doc/ ProgDoc] documentazione del package Prog''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-05/lab/temi.html temi di lab 2005/06]&lt;br /&gt;
=== Dal DSY ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab9.pdf Traccia 9]&lt;br /&gt;
 &lt;br /&gt;
* Estendere la classe Persona del package labprog.&lt;br /&gt;
* La classe Vector&lt;br /&gt;
* Implementazione di un package d'utilità per l'aritmetica in precisione illimitata.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 18-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Esempio: calcolatrice in notazione postfissa; studio e gestione delle situazioni anomale. &lt;br /&gt;
* Come sollevare le eccezioni: l'istruzione throw. &lt;br /&gt;
* Come definire nuove eccezioni. &lt;br /&gt;
* Classificazione delle eccezioni: eccezioni controllate e non controllate. &lt;br /&gt;
* Come delegare le eccezioni (throws).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 20-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab10.pdf Traccia 10]&lt;br /&gt;
&lt;br /&gt;
* Intercettare le eccezioni non controllate per gestire gli errori in fase d'esecuzione. &lt;br /&gt;
* Lettura di un file con il package prog: gestione degli errori. &lt;br /&gt;
* Copia di un file di testo: gestione degli errori.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 08-01-2007 ===&lt;br /&gt;
&lt;br /&gt;
* L'input/output standard (package java.io). &lt;br /&gt;
* Stream di caratteri: le classi Reader, FileReader, BufferedReader (VisualizzaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-0.java mediante uso di FileReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-1.java mediante uso di BufferedReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile.java con una semplice gestione delle eccezioni]); &lt;br /&gt;
* le classi Writer, FileWriter, BufferedWriter (CopiaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile.java mediante FileWriter], [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile-0.java mediante BufferedWriter]). &lt;br /&gt;
* Stream di byte: InputStream, Outputstream ed esempi di sottoclassi. &lt;br /&gt;
* I riferimenti predefiniti System.in, System.err, System.out (ContaLettere.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere-0.java lettura da tastiera], [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere.java lettura da file o da tastiera]).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 10-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab11.pdf Traccia 11]&lt;br /&gt;
&lt;br /&gt;
* Input e output di base con le librerie standard di Java. &lt;br /&gt;
* Un esercizio complessivo ([http://homes.dico.unimi.it/prog/turno3-05/lab/progettosetgen/minishell.pdf MiniShell]) sugli stream e le eccezioni.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 12-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Metodi ricorsivi. &lt;br /&gt;
* Invocazione dei metori e passaggio dei parametri. &lt;br /&gt;
* Passaggio per valore. &lt;br /&gt;
* Cenni ad altri meccanismi di passaggio dei parametri. &lt;br /&gt;
* Organizzazione della memoria durante l'esecuzione: memoria statica, stack, heap. &lt;br /&gt;
* Gestione dello stack durante l'esecuzione: record di attivazione e loro struttura. &lt;br /&gt;
* Chiamate e rientri dai metodi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 15-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Overloading e overriding: il ruolo del compilatore e quello dell'esecutore. &lt;br /&gt;
* Come avviene la scelta del metodo da eseguire. &lt;br /&gt;
* Come scrivere il metodo equals. &lt;br /&gt;
* Esercizi di ripasso.&lt;br /&gt;
&lt;br /&gt;
=== Compitino di mercoledì 17-01-2006 ===&lt;br /&gt;
Secondo Compitino teoria:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di venerdì 19-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
Seconda prova in itinere.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab12.pdf Traccia12]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati2itinere.pdf Risultati]&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16746</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16746"/>
		<updated>2007-01-22T20:05:08Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* Appelli Ordinari */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
* Pubblicate le [http://homes.dico.unimi.it/prog/turno3-06/esami/ modalità d'esame].&lt;br /&gt;
&lt;br /&gt;
* Il primo appello dell'anno è il 29 gennaio 2007.&lt;br /&gt;
La prova (di laboratorio) si terrà a partire dalle ore 15 presso l'aula Sigma, all'interno dei laboratori didattici di via Comelico. Gli studenti sono pregati di presentarsi con sufficiente anticipo.&lt;br /&gt;
Gli studenti dell'anno accademico 2005/06 che debbano completare l'esame sono invitati a contattare il docente esclusivamente per email entro lunedì 22 gennaio 2007.&lt;br /&gt;
&lt;br /&gt;
*Il quadro riassuntivo dei risultati dei compitini e delle prove di laboratorio, con l'elenco degli esoneri dall'esame o da parti di esame, sarà pubblicato entro la giornata di giovedì 25 gennaio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prove in itinere ===&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 17 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione2.pdf Soluzione] -  [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati2.pdf Risultati])&lt;br /&gt;
*'''Seconda Prova in itinere (lab)''' 19 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab12.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati2itinere.pdf Risultati])&lt;br /&gt;
&lt;br /&gt;
Gli studenti che hanno sostenuto i compitini e/o le prove in itinere di laboratorio durante il corso possono essere esonerati da una o più parti dell'esame, sulla base dei risultati complessivi che verranno pubblicati sul sito del prof. Ulteriori informazioni al riguardo saranno fornite insieme ai risultati.&lt;br /&gt;
&lt;br /&gt;
====Teoria====&lt;br /&gt;
&lt;br /&gt;
* '''Primo compitino teoria''': 13 novembre&lt;br /&gt;
* '''Secondo compitino teoria''': 17 gennaio&lt;br /&gt;
&lt;br /&gt;
Il risultato del primo compitino non pregiudica l'accesso al secondo&lt;br /&gt;
&lt;br /&gt;
====Laboratorio====&lt;br /&gt;
&lt;br /&gt;
Le prove in itinere consistono in esercitazioni in aula informatica.&lt;br /&gt;
 &lt;br /&gt;
* '''Prima esercitazione''': mercoledì 15 novembre.&lt;br /&gt;
&lt;br /&gt;
* '''Seconda esercitazione''':venerdì 19 gennaio.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
Sul sito di [http://homes.dico.unimi.it/prog/turno3-06/lab/index.php?page=lezioni laboratorio] sono disponibili invece le tracce svolte a lezione.&lt;br /&gt;
&lt;br /&gt;
===Appelli Ordinari===&lt;br /&gt;
&lt;br /&gt;
Per l'anno accademico 2006/2007 gli appelli d'esame sono previsti nelle seguenti date:&lt;br /&gt;
&lt;br /&gt;
* 29 gennaio 2007 ore 15 aula Sigma (Comelico)&lt;br /&gt;
* 28 febbraio 2007&lt;br /&gt;
* 11 giugno 2007&lt;br /&gt;
* 9 luglio 2007&lt;br /&gt;
* 21 settembre 2007&lt;br /&gt;
&lt;br /&gt;
Le date indicano l'inizio dell'appello (prova di laboratorio). Gli orali si svolgeranno il giorno stesso o alcuni giorni dopo, secondo quanto verrà comunicato in tempo utile sul [http://homes.dico.unimi.it/prog/turno3-06/esami/ sito del prof]).&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
*''[http://pighizzini.dico.unimi.it/jb/doc/ ProgDoc] documentazione del package Prog''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-05/lab/temi.html temi di lab 2005/06]&lt;br /&gt;
=== Dal DSY ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab9.pdf Traccia 9]&lt;br /&gt;
 &lt;br /&gt;
* Estendere la classe Persona del package labprog.&lt;br /&gt;
* La classe Vector&lt;br /&gt;
* Implementazione di un package d'utilità per l'aritmetica in precisione illimitata.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 18-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Esempio: calcolatrice in notazione postfissa; studio e gestione delle situazioni anomale. &lt;br /&gt;
* Come sollevare le eccezioni: l'istruzione throw. &lt;br /&gt;
* Come definire nuove eccezioni. &lt;br /&gt;
* Classificazione delle eccezioni: eccezioni controllate e non controllate. &lt;br /&gt;
* Come delegare le eccezioni (throws).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 20-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab10.pdf Traccia 10]&lt;br /&gt;
&lt;br /&gt;
* Intercettare le eccezioni non controllate per gestire gli errori in fase d'esecuzione. &lt;br /&gt;
* Lettura di un file con il package prog: gestione degli errori. &lt;br /&gt;
* Copia di un file di testo: gestione degli errori.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 08-01-2007 ===&lt;br /&gt;
&lt;br /&gt;
* L'input/output standard (package java.io). &lt;br /&gt;
* Stream di caratteri: le classi Reader, FileReader, BufferedReader (VisualizzaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-0.java mediante uso di FileReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-1.java mediante uso di BufferedReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile.java con una semplice gestione delle eccezioni]); &lt;br /&gt;
* le classi Writer, FileWriter, BufferedWriter (CopiaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile.java mediante FileWriter], [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile-0.java mediante BufferedWriter]). &lt;br /&gt;
* Stream di byte: InputStream, Outputstream ed esempi di sottoclassi. &lt;br /&gt;
* I riferimenti predefiniti System.in, System.err, System.out (ContaLettere.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere-0.java lettura da tastiera], [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere.java lettura da file o da tastiera]).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 10-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab11.pdf Traccia 11]&lt;br /&gt;
&lt;br /&gt;
* Input e output di base con le librerie standard di Java. &lt;br /&gt;
* Un esercizio complessivo ([http://homes.dico.unimi.it/prog/turno3-05/lab/progettosetgen/minishell.pdf MiniShell]) sugli stream e le eccezioni.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 12-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Metodi ricorsivi. &lt;br /&gt;
* Invocazione dei metori e passaggio dei parametri. &lt;br /&gt;
* Passaggio per valore. &lt;br /&gt;
* Cenni ad altri meccanismi di passaggio dei parametri. &lt;br /&gt;
* Organizzazione della memoria durante l'esecuzione: memoria statica, stack, heap. &lt;br /&gt;
* Gestione dello stack durante l'esecuzione: record di attivazione e loro struttura. &lt;br /&gt;
* Chiamate e rientri dai metodi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 15-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Overloading e overriding: il ruolo del compilatore e quello dell'esecutore. &lt;br /&gt;
* Come avviene la scelta del metodo da eseguire. &lt;br /&gt;
* Come scrivere il metodo equals. &lt;br /&gt;
* Esercizi di ripasso.&lt;br /&gt;
&lt;br /&gt;
=== Compitino di mercoledì 17-01-2006 ===&lt;br /&gt;
Secondo Compitino teoria:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di venerdì 19-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
* Seconda prova in itinere laboratorio&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab12.pdf Traccia12]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati2itinere.pdf Risultati]&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16745</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16745"/>
		<updated>2007-01-22T20:04:25Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* Appelli Ordinari */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
* Pubblicate le [http://homes.dico.unimi.it/prog/turno3-06/esami/ modalità d'esame].&lt;br /&gt;
&lt;br /&gt;
* Il primo appello dell'anno è il 29 gennaio 2007.&lt;br /&gt;
La prova (di laboratorio) si terrà a partire dalle ore 15 presso l'aula Sigma, all'interno dei laboratori didattici di via Comelico. Gli studenti sono pregati di presentarsi con sufficiente anticipo.&lt;br /&gt;
Gli studenti dell'anno accademico 2005/06 che debbano completare l'esame sono invitati a contattare il docente esclusivamente per email entro lunedì 22 gennaio 2007.&lt;br /&gt;
&lt;br /&gt;
*Il quadro riassuntivo dei risultati dei compitini e delle prove di laboratorio, con l'elenco degli esoneri dall'esame o da parti di esame, sarà pubblicato entro la giornata di giovedì 25 gennaio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prove in itinere ===&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 17 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione2.pdf Soluzione] -  [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati2.pdf Risultati])&lt;br /&gt;
*'''Seconda Prova in itinere (lab)''' 19 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab12.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati2itinere.pdf Risultati])&lt;br /&gt;
&lt;br /&gt;
Gli studenti che hanno sostenuto i compitini e/o le prove in itinere di laboratorio durante il corso possono essere esonerati da una o più parti dell'esame, sulla base dei risultati complessivi che verranno pubblicati sul sito del prof. Ulteriori informazioni al riguardo saranno fornite insieme ai risultati.&lt;br /&gt;
&lt;br /&gt;
====Teoria====&lt;br /&gt;
&lt;br /&gt;
* '''Primo compitino teoria''': 13 novembre&lt;br /&gt;
* '''Secondo compitino teoria''': 17 gennaio&lt;br /&gt;
&lt;br /&gt;
Il risultato del primo compitino non pregiudica l'accesso al secondo&lt;br /&gt;
&lt;br /&gt;
====Laboratorio====&lt;br /&gt;
&lt;br /&gt;
Le prove in itinere consistono in esercitazioni in aula informatica.&lt;br /&gt;
 &lt;br /&gt;
* '''Prima esercitazione''': mercoledì 15 novembre.&lt;br /&gt;
&lt;br /&gt;
* '''Seconda esercitazione''':venerdì 19 gennaio.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
Sul sito di [http://homes.dico.unimi.it/prog/turno3-06/lab/index.php?page=lezioni laboratorio] sono disponibili invece le tracce svolte a lezione.&lt;br /&gt;
&lt;br /&gt;
===Appelli Ordinari===&lt;br /&gt;
&lt;br /&gt;
Per l'anno accademico 2006/2007 gli appelli d'esame sono previsti nelle seguenti date:&lt;br /&gt;
&lt;br /&gt;
* 29 gennaio 2007&lt;br /&gt;
* 28 febbraio 2007&lt;br /&gt;
* 11 giugno 2007&lt;br /&gt;
* 9 luglio 2007&lt;br /&gt;
* 21 settembre 2007&lt;br /&gt;
&lt;br /&gt;
Le date indicano l'inizio dell'appello (prova di laboratorio). Gli orali si svolgeranno il giorno stesso o alcuni giorni dopo, secondo quanto verrà comunicato in tempo utile sul [http://homes.dico.unimi.it/prog/turno3-06/esami/ sito del prof]).&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
*''[http://pighizzini.dico.unimi.it/jb/doc/ ProgDoc] documentazione del package Prog''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-05/lab/temi.html temi di lab 2005/06]&lt;br /&gt;
=== Dal DSY ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab9.pdf Traccia 9]&lt;br /&gt;
 &lt;br /&gt;
* Estendere la classe Persona del package labprog.&lt;br /&gt;
* La classe Vector&lt;br /&gt;
* Implementazione di un package d'utilità per l'aritmetica in precisione illimitata.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 18-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Esempio: calcolatrice in notazione postfissa; studio e gestione delle situazioni anomale. &lt;br /&gt;
* Come sollevare le eccezioni: l'istruzione throw. &lt;br /&gt;
* Come definire nuove eccezioni. &lt;br /&gt;
* Classificazione delle eccezioni: eccezioni controllate e non controllate. &lt;br /&gt;
* Come delegare le eccezioni (throws).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 20-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab10.pdf Traccia 10]&lt;br /&gt;
&lt;br /&gt;
* Intercettare le eccezioni non controllate per gestire gli errori in fase d'esecuzione. &lt;br /&gt;
* Lettura di un file con il package prog: gestione degli errori. &lt;br /&gt;
* Copia di un file di testo: gestione degli errori.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 08-01-2007 ===&lt;br /&gt;
&lt;br /&gt;
* L'input/output standard (package java.io). &lt;br /&gt;
* Stream di caratteri: le classi Reader, FileReader, BufferedReader (VisualizzaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-0.java mediante uso di FileReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-1.java mediante uso di BufferedReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile.java con una semplice gestione delle eccezioni]); &lt;br /&gt;
* le classi Writer, FileWriter, BufferedWriter (CopiaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile.java mediante FileWriter], [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile-0.java mediante BufferedWriter]). &lt;br /&gt;
* Stream di byte: InputStream, Outputstream ed esempi di sottoclassi. &lt;br /&gt;
* I riferimenti predefiniti System.in, System.err, System.out (ContaLettere.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere-0.java lettura da tastiera], [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere.java lettura da file o da tastiera]).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 10-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab11.pdf Traccia 11]&lt;br /&gt;
&lt;br /&gt;
* Input e output di base con le librerie standard di Java. &lt;br /&gt;
* Un esercizio complessivo ([http://homes.dico.unimi.it/prog/turno3-05/lab/progettosetgen/minishell.pdf MiniShell]) sugli stream e le eccezioni.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 12-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Metodi ricorsivi. &lt;br /&gt;
* Invocazione dei metori e passaggio dei parametri. &lt;br /&gt;
* Passaggio per valore. &lt;br /&gt;
* Cenni ad altri meccanismi di passaggio dei parametri. &lt;br /&gt;
* Organizzazione della memoria durante l'esecuzione: memoria statica, stack, heap. &lt;br /&gt;
* Gestione dello stack durante l'esecuzione: record di attivazione e loro struttura. &lt;br /&gt;
* Chiamate e rientri dai metodi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 15-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Overloading e overriding: il ruolo del compilatore e quello dell'esecutore. &lt;br /&gt;
* Come avviene la scelta del metodo da eseguire. &lt;br /&gt;
* Come scrivere il metodo equals. &lt;br /&gt;
* Esercizi di ripasso.&lt;br /&gt;
&lt;br /&gt;
=== Compitino di mercoledì 17-01-2006 ===&lt;br /&gt;
Secondo Compitino teoria:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di venerdì 19-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
* Seconda prova in itinere laboratorio&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab12.pdf Traccia12]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati2itinere.pdf Risultati]&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16744</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16744"/>
		<updated>2007-01-22T20:03:20Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* News */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
* Pubblicate le [http://homes.dico.unimi.it/prog/turno3-06/esami/ modalità d'esame].&lt;br /&gt;
&lt;br /&gt;
* Il primo appello dell'anno è il 29 gennaio 2007.&lt;br /&gt;
La prova (di laboratorio) si terrà a partire dalle ore 15 presso l'aula Sigma, all'interno dei laboratori didattici di via Comelico. Gli studenti sono pregati di presentarsi con sufficiente anticipo.&lt;br /&gt;
Gli studenti dell'anno accademico 2005/06 che debbano completare l'esame sono invitati a contattare il docente esclusivamente per email entro lunedì 22 gennaio 2007.&lt;br /&gt;
&lt;br /&gt;
*Il quadro riassuntivo dei risultati dei compitini e delle prove di laboratorio, con l'elenco degli esoneri dall'esame o da parti di esame, sarà pubblicato entro la giornata di giovedì 25 gennaio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prove in itinere ===&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 17 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione2.pdf Soluzione] -  [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati2.pdf Risultati])&lt;br /&gt;
*'''Seconda Prova in itinere (lab)''' 19 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab12.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati2itinere.pdf Risultati])&lt;br /&gt;
&lt;br /&gt;
Gli studenti che hanno sostenuto i compitini e/o le prove in itinere di laboratorio durante il corso possono essere esonerati da una o più parti dell'esame, sulla base dei risultati complessivi che verranno pubblicati sul sito del prof. Ulteriori informazioni al riguardo saranno fornite insieme ai risultati.&lt;br /&gt;
&lt;br /&gt;
====Teoria====&lt;br /&gt;
&lt;br /&gt;
* '''Primo compitino teoria''': 13 novembre&lt;br /&gt;
* '''Secondo compitino teoria''': 17 gennaio&lt;br /&gt;
&lt;br /&gt;
Il risultato del primo compitino non pregiudica l'accesso al secondo&lt;br /&gt;
&lt;br /&gt;
====Laboratorio====&lt;br /&gt;
&lt;br /&gt;
Le prove in itinere consistono in esercitazioni in aula informatica.&lt;br /&gt;
 &lt;br /&gt;
* '''Prima esercitazione''': mercoledì 15 novembre.&lt;br /&gt;
&lt;br /&gt;
* '''Seconda esercitazione''':venerdì 19 gennaio.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
Sul sito di [http://homes.dico.unimi.it/prog/turno3-06/lab/index.php?page=lezioni laboratorio] sono disponibili invece le tracce svolte a lezione.&lt;br /&gt;
&lt;br /&gt;
===Appelli Ordinari===&lt;br /&gt;
&lt;br /&gt;
Per l'anno accademico 2006/2007 gli appelli d'esame sono previsti nelle seguenti date:&lt;br /&gt;
&lt;br /&gt;
* 29 gennaio 2007&lt;br /&gt;
* 28 febbraio 2007&lt;br /&gt;
* 11 giugno 2007&lt;br /&gt;
* 9 luglio 2007&lt;br /&gt;
* 21 settembre 2007&lt;br /&gt;
&lt;br /&gt;
Le date indicano l'inizio dell'appello (prova di laboratorio). Gli orali si svolgeranno il giorno stesso o alcuni giorni dopo, secondo quanto verrà comunicato in tempo utile su questa pagina.&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
*''[http://pighizzini.dico.unimi.it/jb/doc/ ProgDoc] documentazione del package Prog''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-05/lab/temi.html temi di lab 2005/06]&lt;br /&gt;
=== Dal DSY ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab9.pdf Traccia 9]&lt;br /&gt;
 &lt;br /&gt;
* Estendere la classe Persona del package labprog.&lt;br /&gt;
* La classe Vector&lt;br /&gt;
* Implementazione di un package d'utilità per l'aritmetica in precisione illimitata.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 18-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Esempio: calcolatrice in notazione postfissa; studio e gestione delle situazioni anomale. &lt;br /&gt;
* Come sollevare le eccezioni: l'istruzione throw. &lt;br /&gt;
* Come definire nuove eccezioni. &lt;br /&gt;
* Classificazione delle eccezioni: eccezioni controllate e non controllate. &lt;br /&gt;
* Come delegare le eccezioni (throws).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 20-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab10.pdf Traccia 10]&lt;br /&gt;
&lt;br /&gt;
* Intercettare le eccezioni non controllate per gestire gli errori in fase d'esecuzione. &lt;br /&gt;
* Lettura di un file con il package prog: gestione degli errori. &lt;br /&gt;
* Copia di un file di testo: gestione degli errori.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 08-01-2007 ===&lt;br /&gt;
&lt;br /&gt;
* L'input/output standard (package java.io). &lt;br /&gt;
* Stream di caratteri: le classi Reader, FileReader, BufferedReader (VisualizzaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-0.java mediante uso di FileReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-1.java mediante uso di BufferedReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile.java con una semplice gestione delle eccezioni]); &lt;br /&gt;
* le classi Writer, FileWriter, BufferedWriter (CopiaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile.java mediante FileWriter], [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile-0.java mediante BufferedWriter]). &lt;br /&gt;
* Stream di byte: InputStream, Outputstream ed esempi di sottoclassi. &lt;br /&gt;
* I riferimenti predefiniti System.in, System.err, System.out (ContaLettere.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere-0.java lettura da tastiera], [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere.java lettura da file o da tastiera]).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 10-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab11.pdf Traccia 11]&lt;br /&gt;
&lt;br /&gt;
* Input e output di base con le librerie standard di Java. &lt;br /&gt;
* Un esercizio complessivo ([http://homes.dico.unimi.it/prog/turno3-05/lab/progettosetgen/minishell.pdf MiniShell]) sugli stream e le eccezioni.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 12-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Metodi ricorsivi. &lt;br /&gt;
* Invocazione dei metori e passaggio dei parametri. &lt;br /&gt;
* Passaggio per valore. &lt;br /&gt;
* Cenni ad altri meccanismi di passaggio dei parametri. &lt;br /&gt;
* Organizzazione della memoria durante l'esecuzione: memoria statica, stack, heap. &lt;br /&gt;
* Gestione dello stack durante l'esecuzione: record di attivazione e loro struttura. &lt;br /&gt;
* Chiamate e rientri dai metodi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 15-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Overloading e overriding: il ruolo del compilatore e quello dell'esecutore. &lt;br /&gt;
* Come avviene la scelta del metodo da eseguire. &lt;br /&gt;
* Come scrivere il metodo equals. &lt;br /&gt;
* Esercizi di ripasso.&lt;br /&gt;
&lt;br /&gt;
=== Compitino di mercoledì 17-01-2006 ===&lt;br /&gt;
Secondo Compitino teoria:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di venerdì 19-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
* Seconda prova in itinere laboratorio&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab12.pdf Traccia12]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati2itinere.pdf Risultati]&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16743</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16743"/>
		<updated>2007-01-22T20:00:05Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* Prove in itinere */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
Pubblicate le [http://homes.dico.unimi.it/prog/turno3-06/esami/ modalità d'esame].&lt;br /&gt;
&lt;br /&gt;
=== Prove in itinere ===&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 17 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione2.pdf Soluzione] -  [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati2.pdf Risultati])&lt;br /&gt;
*'''Seconda Prova in itinere (lab)''' 19 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab12.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati2itinere.pdf Risultati])&lt;br /&gt;
&lt;br /&gt;
Gli studenti che hanno sostenuto i compitini e/o le prove in itinere di laboratorio durante il corso possono essere esonerati da una o più parti dell'esame, sulla base dei risultati complessivi che verranno pubblicati sul sito del prof. Ulteriori informazioni al riguardo saranno fornite insieme ai risultati.&lt;br /&gt;
&lt;br /&gt;
====Teoria====&lt;br /&gt;
&lt;br /&gt;
* '''Primo compitino teoria''': 13 novembre&lt;br /&gt;
* '''Secondo compitino teoria''': 17 gennaio&lt;br /&gt;
&lt;br /&gt;
Il risultato del primo compitino non pregiudica l'accesso al secondo&lt;br /&gt;
&lt;br /&gt;
====Laboratorio====&lt;br /&gt;
&lt;br /&gt;
Le prove in itinere consistono in esercitazioni in aula informatica.&lt;br /&gt;
 &lt;br /&gt;
* '''Prima esercitazione''': mercoledì 15 novembre.&lt;br /&gt;
&lt;br /&gt;
* '''Seconda esercitazione''':venerdì 19 gennaio.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
Sul sito di [http://homes.dico.unimi.it/prog/turno3-06/lab/index.php?page=lezioni laboratorio] sono disponibili invece le tracce svolte a lezione.&lt;br /&gt;
&lt;br /&gt;
===Appelli Ordinari===&lt;br /&gt;
&lt;br /&gt;
Per l'anno accademico 2006/2007 gli appelli d'esame sono previsti nelle seguenti date:&lt;br /&gt;
&lt;br /&gt;
* 29 gennaio 2007&lt;br /&gt;
* 28 febbraio 2007&lt;br /&gt;
* 11 giugno 2007&lt;br /&gt;
* 9 luglio 2007&lt;br /&gt;
* 21 settembre 2007&lt;br /&gt;
&lt;br /&gt;
Le date indicano l'inizio dell'appello (prova di laboratorio). Gli orali si svolgeranno il giorno stesso o alcuni giorni dopo, secondo quanto verrà comunicato in tempo utile su questa pagina.&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
*''[http://pighizzini.dico.unimi.it/jb/doc/ ProgDoc] documentazione del package Prog''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-05/lab/temi.html temi di lab 2005/06]&lt;br /&gt;
=== Dal DSY ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab9.pdf Traccia 9]&lt;br /&gt;
 &lt;br /&gt;
* Estendere la classe Persona del package labprog.&lt;br /&gt;
* La classe Vector&lt;br /&gt;
* Implementazione di un package d'utilità per l'aritmetica in precisione illimitata.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 18-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Esempio: calcolatrice in notazione postfissa; studio e gestione delle situazioni anomale. &lt;br /&gt;
* Come sollevare le eccezioni: l'istruzione throw. &lt;br /&gt;
* Come definire nuove eccezioni. &lt;br /&gt;
* Classificazione delle eccezioni: eccezioni controllate e non controllate. &lt;br /&gt;
* Come delegare le eccezioni (throws).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 20-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab10.pdf Traccia 10]&lt;br /&gt;
&lt;br /&gt;
* Intercettare le eccezioni non controllate per gestire gli errori in fase d'esecuzione. &lt;br /&gt;
* Lettura di un file con il package prog: gestione degli errori. &lt;br /&gt;
* Copia di un file di testo: gestione degli errori.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 08-01-2007 ===&lt;br /&gt;
&lt;br /&gt;
* L'input/output standard (package java.io). &lt;br /&gt;
* Stream di caratteri: le classi Reader, FileReader, BufferedReader (VisualizzaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-0.java mediante uso di FileReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-1.java mediante uso di BufferedReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile.java con una semplice gestione delle eccezioni]); &lt;br /&gt;
* le classi Writer, FileWriter, BufferedWriter (CopiaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile.java mediante FileWriter], [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile-0.java mediante BufferedWriter]). &lt;br /&gt;
* Stream di byte: InputStream, Outputstream ed esempi di sottoclassi. &lt;br /&gt;
* I riferimenti predefiniti System.in, System.err, System.out (ContaLettere.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere-0.java lettura da tastiera], [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere.java lettura da file o da tastiera]).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 10-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab11.pdf Traccia 11]&lt;br /&gt;
&lt;br /&gt;
* Input e output di base con le librerie standard di Java. &lt;br /&gt;
* Un esercizio complessivo ([http://homes.dico.unimi.it/prog/turno3-05/lab/progettosetgen/minishell.pdf MiniShell]) sugli stream e le eccezioni.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 12-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Metodi ricorsivi. &lt;br /&gt;
* Invocazione dei metori e passaggio dei parametri. &lt;br /&gt;
* Passaggio per valore. &lt;br /&gt;
* Cenni ad altri meccanismi di passaggio dei parametri. &lt;br /&gt;
* Organizzazione della memoria durante l'esecuzione: memoria statica, stack, heap. &lt;br /&gt;
* Gestione dello stack durante l'esecuzione: record di attivazione e loro struttura. &lt;br /&gt;
* Chiamate e rientri dai metodi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 15-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Overloading e overriding: il ruolo del compilatore e quello dell'esecutore. &lt;br /&gt;
* Come avviene la scelta del metodo da eseguire. &lt;br /&gt;
* Come scrivere il metodo equals. &lt;br /&gt;
* Esercizi di ripasso.&lt;br /&gt;
&lt;br /&gt;
=== Compitino di mercoledì 17-01-2006 ===&lt;br /&gt;
Secondo Compitino teoria:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di venerdì 19-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
* Seconda prova in itinere laboratorio&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab12.pdf Traccia12]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati2itinere.pdf Risultati]&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16742</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16742"/>
		<updated>2007-01-22T19:59:28Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* Prove in itinere */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
Pubblicate le [http://homes.dico.unimi.it/prog/turno3-06/esami/ modalità d'esame].&lt;br /&gt;
&lt;br /&gt;
=== Prove in itinere ===&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 17 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo]&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione2.pdf Soluzione] [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati2.pdf Risultati])&lt;br /&gt;
*'''Seconda Prova in itinere (lab)''' 19 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab12.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati2itinere.pdf Risultati])&lt;br /&gt;
&lt;br /&gt;
Gli studenti che hanno sostenuto i compitini e/o le prove in itinere di laboratorio durante il corso possono essere esonerati da una o più parti dell'esame, sulla base dei risultati complessivi che verranno pubblicati sul sito del prof. Ulteriori informazioni al riguardo saranno fornite insieme ai risultati.&lt;br /&gt;
&lt;br /&gt;
====Teoria====&lt;br /&gt;
&lt;br /&gt;
* '''Primo compitino teoria''': 13 novembre&lt;br /&gt;
* '''Secondo compitino teoria''': 17 gennaio&lt;br /&gt;
&lt;br /&gt;
Il risultato del primo compitino non pregiudica l'accesso al secondo&lt;br /&gt;
&lt;br /&gt;
====Laboratorio====&lt;br /&gt;
&lt;br /&gt;
Le prove in itinere consistono in esercitazioni in aula informatica.&lt;br /&gt;
 &lt;br /&gt;
* '''Prima esercitazione''': mercoledì 15 novembre.&lt;br /&gt;
&lt;br /&gt;
* '''Seconda esercitazione''':venerdì 19 gennaio.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
Sul sito di [http://homes.dico.unimi.it/prog/turno3-06/lab/index.php?page=lezioni laboratorio] sono disponibili invece le tracce svolte a lezione.&lt;br /&gt;
&lt;br /&gt;
===Appelli Ordinari===&lt;br /&gt;
&lt;br /&gt;
Per l'anno accademico 2006/2007 gli appelli d'esame sono previsti nelle seguenti date:&lt;br /&gt;
&lt;br /&gt;
* 29 gennaio 2007&lt;br /&gt;
* 28 febbraio 2007&lt;br /&gt;
* 11 giugno 2007&lt;br /&gt;
* 9 luglio 2007&lt;br /&gt;
* 21 settembre 2007&lt;br /&gt;
&lt;br /&gt;
Le date indicano l'inizio dell'appello (prova di laboratorio). Gli orali si svolgeranno il giorno stesso o alcuni giorni dopo, secondo quanto verrà comunicato in tempo utile su questa pagina.&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
*''[http://pighizzini.dico.unimi.it/jb/doc/ ProgDoc] documentazione del package Prog''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-05/lab/temi.html temi di lab 2005/06]&lt;br /&gt;
=== Dal DSY ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab9.pdf Traccia 9]&lt;br /&gt;
 &lt;br /&gt;
* Estendere la classe Persona del package labprog.&lt;br /&gt;
* La classe Vector&lt;br /&gt;
* Implementazione di un package d'utilità per l'aritmetica in precisione illimitata.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 18-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Esempio: calcolatrice in notazione postfissa; studio e gestione delle situazioni anomale. &lt;br /&gt;
* Come sollevare le eccezioni: l'istruzione throw. &lt;br /&gt;
* Come definire nuove eccezioni. &lt;br /&gt;
* Classificazione delle eccezioni: eccezioni controllate e non controllate. &lt;br /&gt;
* Come delegare le eccezioni (throws).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 20-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab10.pdf Traccia 10]&lt;br /&gt;
&lt;br /&gt;
* Intercettare le eccezioni non controllate per gestire gli errori in fase d'esecuzione. &lt;br /&gt;
* Lettura di un file con il package prog: gestione degli errori. &lt;br /&gt;
* Copia di un file di testo: gestione degli errori.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 08-01-2007 ===&lt;br /&gt;
&lt;br /&gt;
* L'input/output standard (package java.io). &lt;br /&gt;
* Stream di caratteri: le classi Reader, FileReader, BufferedReader (VisualizzaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-0.java mediante uso di FileReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-1.java mediante uso di BufferedReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile.java con una semplice gestione delle eccezioni]); &lt;br /&gt;
* le classi Writer, FileWriter, BufferedWriter (CopiaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile.java mediante FileWriter], [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile-0.java mediante BufferedWriter]). &lt;br /&gt;
* Stream di byte: InputStream, Outputstream ed esempi di sottoclassi. &lt;br /&gt;
* I riferimenti predefiniti System.in, System.err, System.out (ContaLettere.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere-0.java lettura da tastiera], [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere.java lettura da file o da tastiera]).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 10-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab11.pdf Traccia 11]&lt;br /&gt;
&lt;br /&gt;
* Input e output di base con le librerie standard di Java. &lt;br /&gt;
* Un esercizio complessivo ([http://homes.dico.unimi.it/prog/turno3-05/lab/progettosetgen/minishell.pdf MiniShell]) sugli stream e le eccezioni.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 12-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Metodi ricorsivi. &lt;br /&gt;
* Invocazione dei metori e passaggio dei parametri. &lt;br /&gt;
* Passaggio per valore. &lt;br /&gt;
* Cenni ad altri meccanismi di passaggio dei parametri. &lt;br /&gt;
* Organizzazione della memoria durante l'esecuzione: memoria statica, stack, heap. &lt;br /&gt;
* Gestione dello stack durante l'esecuzione: record di attivazione e loro struttura. &lt;br /&gt;
* Chiamate e rientri dai metodi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 15-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Overloading e overriding: il ruolo del compilatore e quello dell'esecutore. &lt;br /&gt;
* Come avviene la scelta del metodo da eseguire. &lt;br /&gt;
* Come scrivere il metodo equals. &lt;br /&gt;
* Esercizi di ripasso.&lt;br /&gt;
&lt;br /&gt;
=== Compitino di mercoledì 17-01-2006 ===&lt;br /&gt;
Secondo Compitino teoria:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di venerdì 19-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
* Seconda prova in itinere laboratorio&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab12.pdf Traccia12]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati2itinere.pdf Risultati]&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Matematica_discreta&amp;diff=16731</id>
		<title>Matematica discreta</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Matematica_discreta&amp;diff=16731"/>
		<updated>2007-01-22T11:03:35Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* Giudizio sul corso */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{introduzione}}&lt;br /&gt;
==Turni==&lt;br /&gt;
*'''[[Matematica discreta (info) T1/2006-2007|Turno 1, Informatica (Turrini)]]&lt;br /&gt;
*'''[[Matematica discreta (info comdig) T2/2006-2007|Turno 2, Informatica (Bianchi)]]&lt;br /&gt;
*'''[[Matematica discreta (info tlc) T3/2006-2007|Turno 3, Informatica (Bonzini)]]&lt;br /&gt;
*'''[[Matematica discreta (comdig) T1/2006-2007|Turno 1, Comunicazione Digitale (Tonolli)]]&lt;br /&gt;
*'''[[Matematica discreta (info comdig) T2/2006-2007|Turno 1, Comunicazione Digitale (Bianchi)]] &lt;br /&gt;
*'''[[Matematica discreta (info tlc) T3/2006-2007|Telecomunicazioni (Bonzini)]]&lt;br /&gt;
&lt;br /&gt;
== Anni passati ==&lt;br /&gt;
=== 2005-2006 ===&lt;br /&gt;
{{annipassati|2005-2006|(Antonella Tonolli)| (comdig) Turno 1}}&lt;br /&gt;
{{annipassati|2005-2006|(Mariagrazia Bianchi)| (comdig) Turno 2}}&lt;br /&gt;
{{annipassati|2005-2006|(Celestina Bonzini)| (info) Turno 3}}&lt;br /&gt;
&lt;br /&gt;
=== 2004-2005 ===&lt;br /&gt;
{{annipassati|2004-2005|(Celestina Bonzini)| (info) Turno 3}}&lt;br /&gt;
&lt;br /&gt;
== Informazioni ==&lt;br /&gt;
&lt;br /&gt;
=== Obiettivi del corso ===&lt;br /&gt;
Fornire allo studente parte del linguaggio algebrico e geometrico di base e familiarità con alcune delle più comuni tecniche matematiche.&lt;br /&gt;
&lt;br /&gt;
=== Programma ===&lt;br /&gt;
#Numeri interi: divisibilità, fattorizzazione in primi, teorema del quoziente-resto, scrittura in base n, principio di induzione; &lt;br /&gt;
#Polinomi Reali: divisibilità, fattorizzazione in polinomi irriducibili, teorema di Ruffini, radici di un polinomio e loro molteplicità; &lt;br /&gt;
#Matrici Reali: operazioni, determinante, rango, calcolo della matrice inversa, autovalori, autovettori, diagonalizzazione; &lt;br /&gt;
#Insiemi: operazioni, insieme delle parti, prodotto cartesiano; &lt;br /&gt;
#Relazioni Tra Insiemi: operazioni, funzioni, equivalenze, relazioni d'ordine; &lt;br /&gt;
#Strutture Algebriche, omomorfismi; &lt;br /&gt;
#Spazi Vettoriali Reali: dimensione, omomofismi, teorema di isomorfismo &lt;br /&gt;
#Sistemi Lineari Reali: teorema di Cramer, teorema di Rouchè-Capelli,riduzione a scalini.&lt;br /&gt;
&lt;br /&gt;
=== Giudizio sul corso ===&lt;br /&gt;
{{Giudizio}}&lt;br /&gt;
{{Giudizio/Interesse|3|3|3}}&lt;br /&gt;
{{Giudizio/Difficoltà|3|3|3}}&lt;br /&gt;
{{Giudizio/Nonfrequentanti|3|4}}&lt;br /&gt;
{{Giudizio/Ore|3|3|4}}&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Corsi Informatica]][[Categoria:Corsi Telecom]][[Categoria:Corsi ComDig]][[Categoria:Corsi Primo Semestre]]&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16729</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16729"/>
		<updated>2007-01-21T23:12:24Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* Compitino di venerdì 19-01-2006 (lab) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
Pubblicate le [http://homes.dico.unimi.it/prog/turno3-06/esami/ modalità d'esame].&lt;br /&gt;
&lt;br /&gt;
=== Prove in itinere ===&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 17 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo])&lt;br /&gt;
*'''Seconda Prova in itinere (lab)''' 19 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab12.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati2itinere.pdf Risultati])&lt;br /&gt;
&lt;br /&gt;
Gli studenti che hanno sostenuto i compitini e/o le prove in itinere di laboratorio durante il corso possono essere esonerati da una o più parti dell'esame, sulla base dei risultati complessivi che verranno pubblicati sul sito del prof. Ulteriori informazioni al riguardo saranno fornite insieme ai risultati.&lt;br /&gt;
&lt;br /&gt;
====Teoria====&lt;br /&gt;
&lt;br /&gt;
* '''Primo compitino teoria''': 13 novembre&lt;br /&gt;
* '''Secondo compitino teoria''': 17 gennaio&lt;br /&gt;
&lt;br /&gt;
Il risultato del primo compitino non pregiudica l'accesso al secondo&lt;br /&gt;
&lt;br /&gt;
====Laboratorio====&lt;br /&gt;
&lt;br /&gt;
Le prove in itinere consistono in esercitazioni in aula informatica.&lt;br /&gt;
 &lt;br /&gt;
* '''Prima esercitazione''': mercoledì 15 novembre.&lt;br /&gt;
&lt;br /&gt;
* '''Seconda esercitazione''':venerdì 19 gennaio.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
Sul sito di [http://homes.dico.unimi.it/prog/turno3-06/lab/index.php?page=lezioni laboratorio] sono disponibili invece le tracce svolte a lezione.&lt;br /&gt;
&lt;br /&gt;
===Appelli Ordinari===&lt;br /&gt;
&lt;br /&gt;
Per l'anno accademico 2006/2007 gli appelli d'esame sono previsti nelle seguenti date:&lt;br /&gt;
&lt;br /&gt;
* 29 gennaio 2007&lt;br /&gt;
* 28 febbraio 2007&lt;br /&gt;
* 11 giugno 2007&lt;br /&gt;
* 9 luglio 2007&lt;br /&gt;
* 21 settembre 2007&lt;br /&gt;
&lt;br /&gt;
Le date indicano l'inizio dell'appello (prova di laboratorio). Gli orali si svolgeranno il giorno stesso o alcuni giorni dopo, secondo quanto verrà comunicato in tempo utile su questa pagina.&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
*''[http://pighizzini.dico.unimi.it/jb/doc/ ProgDoc] documentazione del package Prog''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-05/lab/temi.html temi di lab 2005/06]&lt;br /&gt;
=== Dal DSY ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab9.pdf Traccia 9]&lt;br /&gt;
 &lt;br /&gt;
* Estendere la classe Persona del package labprog.&lt;br /&gt;
* La classe Vector&lt;br /&gt;
* Implementazione di un package d'utilità per l'aritmetica in precisione illimitata.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 18-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Esempio: calcolatrice in notazione postfissa; studio e gestione delle situazioni anomale. &lt;br /&gt;
* Come sollevare le eccezioni: l'istruzione throw. &lt;br /&gt;
* Come definire nuove eccezioni. &lt;br /&gt;
* Classificazione delle eccezioni: eccezioni controllate e non controllate. &lt;br /&gt;
* Come delegare le eccezioni (throws).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 20-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab10.pdf Traccia 10]&lt;br /&gt;
&lt;br /&gt;
* Intercettare le eccezioni non controllate per gestire gli errori in fase d'esecuzione. &lt;br /&gt;
* Lettura di un file con il package prog: gestione degli errori. &lt;br /&gt;
* Copia di un file di testo: gestione degli errori.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 08-01-2007 ===&lt;br /&gt;
&lt;br /&gt;
* L'input/output standard (package java.io). &lt;br /&gt;
* Stream di caratteri: le classi Reader, FileReader, BufferedReader (VisualizzaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-0.java mediante uso di FileReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-1.java mediante uso di BufferedReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile.java con una semplice gestione delle eccezioni]); &lt;br /&gt;
* le classi Writer, FileWriter, BufferedWriter (CopiaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile.java mediante FileWriter], [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile-0.java mediante BufferedWriter]). &lt;br /&gt;
* Stream di byte: InputStream, Outputstream ed esempi di sottoclassi. &lt;br /&gt;
* I riferimenti predefiniti System.in, System.err, System.out (ContaLettere.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere-0.java lettura da tastiera], [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere.java lettura da file o da tastiera]).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 10-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab11.pdf Traccia 11]&lt;br /&gt;
&lt;br /&gt;
* Input e output di base con le librerie standard di Java. &lt;br /&gt;
* Un esercizio complessivo ([http://homes.dico.unimi.it/prog/turno3-05/lab/progettosetgen/minishell.pdf MiniShell]) sugli stream e le eccezioni.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 12-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Metodi ricorsivi. &lt;br /&gt;
* Invocazione dei metori e passaggio dei parametri. &lt;br /&gt;
* Passaggio per valore. &lt;br /&gt;
* Cenni ad altri meccanismi di passaggio dei parametri. &lt;br /&gt;
* Organizzazione della memoria durante l'esecuzione: memoria statica, stack, heap. &lt;br /&gt;
* Gestione dello stack durante l'esecuzione: record di attivazione e loro struttura. &lt;br /&gt;
* Chiamate e rientri dai metodi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 15-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Overloading e overriding: il ruolo del compilatore e quello dell'esecutore. &lt;br /&gt;
* Come avviene la scelta del metodo da eseguire. &lt;br /&gt;
* Come scrivere il metodo equals. &lt;br /&gt;
* Esercizi di ripasso.&lt;br /&gt;
&lt;br /&gt;
=== Compitino di mercoledì 17-01-2006 ===&lt;br /&gt;
Secondo Compitino teoria:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di venerdì 19-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
* Seconda prova in itinere laboratorio&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab12.pdf Traccia12]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati2itinere.pdf Risultati]&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16728</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16728"/>
		<updated>2007-01-21T23:11:52Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* Compitino di venerdì 19-01-2006 (lab) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
Pubblicate le [http://homes.dico.unimi.it/prog/turno3-06/esami/ modalità d'esame].&lt;br /&gt;
&lt;br /&gt;
=== Prove in itinere ===&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 17 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo])&lt;br /&gt;
*'''Seconda Prova in itinere (lab)''' 19 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab12.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati2itinere.pdf Risultati])&lt;br /&gt;
&lt;br /&gt;
Gli studenti che hanno sostenuto i compitini e/o le prove in itinere di laboratorio durante il corso possono essere esonerati da una o più parti dell'esame, sulla base dei risultati complessivi che verranno pubblicati sul sito del prof. Ulteriori informazioni al riguardo saranno fornite insieme ai risultati.&lt;br /&gt;
&lt;br /&gt;
====Teoria====&lt;br /&gt;
&lt;br /&gt;
* '''Primo compitino teoria''': 13 novembre&lt;br /&gt;
* '''Secondo compitino teoria''': 17 gennaio&lt;br /&gt;
&lt;br /&gt;
Il risultato del primo compitino non pregiudica l'accesso al secondo&lt;br /&gt;
&lt;br /&gt;
====Laboratorio====&lt;br /&gt;
&lt;br /&gt;
Le prove in itinere consistono in esercitazioni in aula informatica.&lt;br /&gt;
 &lt;br /&gt;
* '''Prima esercitazione''': mercoledì 15 novembre.&lt;br /&gt;
&lt;br /&gt;
* '''Seconda esercitazione''':venerdì 19 gennaio.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
Sul sito di [http://homes.dico.unimi.it/prog/turno3-06/lab/index.php?page=lezioni laboratorio] sono disponibili invece le tracce svolte a lezione.&lt;br /&gt;
&lt;br /&gt;
===Appelli Ordinari===&lt;br /&gt;
&lt;br /&gt;
Per l'anno accademico 2006/2007 gli appelli d'esame sono previsti nelle seguenti date:&lt;br /&gt;
&lt;br /&gt;
* 29 gennaio 2007&lt;br /&gt;
* 28 febbraio 2007&lt;br /&gt;
* 11 giugno 2007&lt;br /&gt;
* 9 luglio 2007&lt;br /&gt;
* 21 settembre 2007&lt;br /&gt;
&lt;br /&gt;
Le date indicano l'inizio dell'appello (prova di laboratorio). Gli orali si svolgeranno il giorno stesso o alcuni giorni dopo, secondo quanto verrà comunicato in tempo utile su questa pagina.&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
*''[http://pighizzini.dico.unimi.it/jb/doc/ ProgDoc] documentazione del package Prog''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-05/lab/temi.html temi di lab 2005/06]&lt;br /&gt;
=== Dal DSY ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab9.pdf Traccia 9]&lt;br /&gt;
 &lt;br /&gt;
* Estendere la classe Persona del package labprog.&lt;br /&gt;
* La classe Vector&lt;br /&gt;
* Implementazione di un package d'utilità per l'aritmetica in precisione illimitata.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 18-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Esempio: calcolatrice in notazione postfissa; studio e gestione delle situazioni anomale. &lt;br /&gt;
* Come sollevare le eccezioni: l'istruzione throw. &lt;br /&gt;
* Come definire nuove eccezioni. &lt;br /&gt;
* Classificazione delle eccezioni: eccezioni controllate e non controllate. &lt;br /&gt;
* Come delegare le eccezioni (throws).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 20-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab10.pdf Traccia 10]&lt;br /&gt;
&lt;br /&gt;
* Intercettare le eccezioni non controllate per gestire gli errori in fase d'esecuzione. &lt;br /&gt;
* Lettura di un file con il package prog: gestione degli errori. &lt;br /&gt;
* Copia di un file di testo: gestione degli errori.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 08-01-2007 ===&lt;br /&gt;
&lt;br /&gt;
* L'input/output standard (package java.io). &lt;br /&gt;
* Stream di caratteri: le classi Reader, FileReader, BufferedReader (VisualizzaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-0.java mediante uso di FileReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-1.java mediante uso di BufferedReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile.java con una semplice gestione delle eccezioni]); &lt;br /&gt;
* le classi Writer, FileWriter, BufferedWriter (CopiaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile.java mediante FileWriter], [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile-0.java mediante BufferedWriter]). &lt;br /&gt;
* Stream di byte: InputStream, Outputstream ed esempi di sottoclassi. &lt;br /&gt;
* I riferimenti predefiniti System.in, System.err, System.out (ContaLettere.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere-0.java lettura da tastiera], [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere.java lettura da file o da tastiera]).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 10-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab11.pdf Traccia 11]&lt;br /&gt;
&lt;br /&gt;
* Input e output di base con le librerie standard di Java. &lt;br /&gt;
* Un esercizio complessivo ([http://homes.dico.unimi.it/prog/turno3-05/lab/progettosetgen/minishell.pdf MiniShell]) sugli stream e le eccezioni.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 12-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Metodi ricorsivi. &lt;br /&gt;
* Invocazione dei metori e passaggio dei parametri. &lt;br /&gt;
* Passaggio per valore. &lt;br /&gt;
* Cenni ad altri meccanismi di passaggio dei parametri. &lt;br /&gt;
* Organizzazione della memoria durante l'esecuzione: memoria statica, stack, heap. &lt;br /&gt;
* Gestione dello stack durante l'esecuzione: record di attivazione e loro struttura. &lt;br /&gt;
* Chiamate e rientri dai metodi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 15-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Overloading e overriding: il ruolo del compilatore e quello dell'esecutore. &lt;br /&gt;
* Come avviene la scelta del metodo da eseguire. &lt;br /&gt;
* Come scrivere il metodo equals. &lt;br /&gt;
* Esercizi di ripasso.&lt;br /&gt;
&lt;br /&gt;
=== Compitino di mercoledì 17-01-2006 ===&lt;br /&gt;
Secondo Compitino teoria:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di venerdì 19-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
* Seconda prova in itinere laboratorio&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab12.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati2itinere.pdf Risultati]&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16727</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16727"/>
		<updated>2007-01-21T23:10:34Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* Prove in itinere */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
Pubblicate le [http://homes.dico.unimi.it/prog/turno3-06/esami/ modalità d'esame].&lt;br /&gt;
&lt;br /&gt;
=== Prove in itinere ===&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 17 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo])&lt;br /&gt;
*'''Seconda Prova in itinere (lab)''' 19 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab12.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati2itinere.pdf Risultati])&lt;br /&gt;
&lt;br /&gt;
Gli studenti che hanno sostenuto i compitini e/o le prove in itinere di laboratorio durante il corso possono essere esonerati da una o più parti dell'esame, sulla base dei risultati complessivi che verranno pubblicati sul sito del prof. Ulteriori informazioni al riguardo saranno fornite insieme ai risultati.&lt;br /&gt;
&lt;br /&gt;
====Teoria====&lt;br /&gt;
&lt;br /&gt;
* '''Primo compitino teoria''': 13 novembre&lt;br /&gt;
* '''Secondo compitino teoria''': 17 gennaio&lt;br /&gt;
&lt;br /&gt;
Il risultato del primo compitino non pregiudica l'accesso al secondo&lt;br /&gt;
&lt;br /&gt;
====Laboratorio====&lt;br /&gt;
&lt;br /&gt;
Le prove in itinere consistono in esercitazioni in aula informatica.&lt;br /&gt;
 &lt;br /&gt;
* '''Prima esercitazione''': mercoledì 15 novembre.&lt;br /&gt;
&lt;br /&gt;
* '''Seconda esercitazione''':venerdì 19 gennaio.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
Sul sito di [http://homes.dico.unimi.it/prog/turno3-06/lab/index.php?page=lezioni laboratorio] sono disponibili invece le tracce svolte a lezione.&lt;br /&gt;
&lt;br /&gt;
===Appelli Ordinari===&lt;br /&gt;
&lt;br /&gt;
Per l'anno accademico 2006/2007 gli appelli d'esame sono previsti nelle seguenti date:&lt;br /&gt;
&lt;br /&gt;
* 29 gennaio 2007&lt;br /&gt;
* 28 febbraio 2007&lt;br /&gt;
* 11 giugno 2007&lt;br /&gt;
* 9 luglio 2007&lt;br /&gt;
* 21 settembre 2007&lt;br /&gt;
&lt;br /&gt;
Le date indicano l'inizio dell'appello (prova di laboratorio). Gli orali si svolgeranno il giorno stesso o alcuni giorni dopo, secondo quanto verrà comunicato in tempo utile su questa pagina.&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
*''[http://pighizzini.dico.unimi.it/jb/doc/ ProgDoc] documentazione del package Prog''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-05/lab/temi.html temi di lab 2005/06]&lt;br /&gt;
=== Dal DSY ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab9.pdf Traccia 9]&lt;br /&gt;
 &lt;br /&gt;
* Estendere la classe Persona del package labprog.&lt;br /&gt;
* La classe Vector&lt;br /&gt;
* Implementazione di un package d'utilità per l'aritmetica in precisione illimitata.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 18-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Esempio: calcolatrice in notazione postfissa; studio e gestione delle situazioni anomale. &lt;br /&gt;
* Come sollevare le eccezioni: l'istruzione throw. &lt;br /&gt;
* Come definire nuove eccezioni. &lt;br /&gt;
* Classificazione delle eccezioni: eccezioni controllate e non controllate. &lt;br /&gt;
* Come delegare le eccezioni (throws).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 20-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab10.pdf Traccia 10]&lt;br /&gt;
&lt;br /&gt;
* Intercettare le eccezioni non controllate per gestire gli errori in fase d'esecuzione. &lt;br /&gt;
* Lettura di un file con il package prog: gestione degli errori. &lt;br /&gt;
* Copia di un file di testo: gestione degli errori.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 08-01-2007 ===&lt;br /&gt;
&lt;br /&gt;
* L'input/output standard (package java.io). &lt;br /&gt;
* Stream di caratteri: le classi Reader, FileReader, BufferedReader (VisualizzaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-0.java mediante uso di FileReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-1.java mediante uso di BufferedReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile.java con una semplice gestione delle eccezioni]); &lt;br /&gt;
* le classi Writer, FileWriter, BufferedWriter (CopiaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile.java mediante FileWriter], [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile-0.java mediante BufferedWriter]). &lt;br /&gt;
* Stream di byte: InputStream, Outputstream ed esempi di sottoclassi. &lt;br /&gt;
* I riferimenti predefiniti System.in, System.err, System.out (ContaLettere.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere-0.java lettura da tastiera], [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere.java lettura da file o da tastiera]).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 10-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab11.pdf Traccia 11]&lt;br /&gt;
&lt;br /&gt;
* Input e output di base con le librerie standard di Java. &lt;br /&gt;
* Un esercizio complessivo ([http://homes.dico.unimi.it/prog/turno3-05/lab/progettosetgen/minishell.pdf MiniShell]) sugli stream e le eccezioni.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 12-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Metodi ricorsivi. &lt;br /&gt;
* Invocazione dei metori e passaggio dei parametri. &lt;br /&gt;
* Passaggio per valore. &lt;br /&gt;
* Cenni ad altri meccanismi di passaggio dei parametri. &lt;br /&gt;
* Organizzazione della memoria durante l'esecuzione: memoria statica, stack, heap. &lt;br /&gt;
* Gestione dello stack durante l'esecuzione: record di attivazione e loro struttura. &lt;br /&gt;
* Chiamate e rientri dai metodi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 15-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Overloading e overriding: il ruolo del compilatore e quello dell'esecutore. &lt;br /&gt;
* Come avviene la scelta del metodo da eseguire. &lt;br /&gt;
* Come scrivere il metodo equals. &lt;br /&gt;
* Esercizi di ripasso.&lt;br /&gt;
&lt;br /&gt;
=== Compitino di mercoledì 17-01-2006 ===&lt;br /&gt;
Secondo Compitino teoria:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di venerdì 19-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
* Seconda prova in itinere laboratorio&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16726</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16726"/>
		<updated>2007-01-21T23:10:17Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* Prove in itinere */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
Pubblicate le [http://homes.dico.unimi.it/prog/turno3-06/esami/ modalità d'esame].&lt;br /&gt;
&lt;br /&gt;
=== Prove in itinere ===&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 17 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo])&lt;br /&gt;
*'''Seconda Prova in itinere (lab)''' 19 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab12.pdf Testo][http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati2itinere.pdf Risultati])&lt;br /&gt;
&lt;br /&gt;
Gli studenti che hanno sostenuto i compitini e/o le prove in itinere di laboratorio durante il corso possono essere esonerati da una o più parti dell'esame, sulla base dei risultati complessivi che verranno pubblicati sul sito del prof. Ulteriori informazioni al riguardo saranno fornite insieme ai risultati.&lt;br /&gt;
&lt;br /&gt;
====Teoria====&lt;br /&gt;
&lt;br /&gt;
* '''Primo compitino teoria''': 13 novembre&lt;br /&gt;
* '''Secondo compitino teoria''': 17 gennaio&lt;br /&gt;
&lt;br /&gt;
Il risultato del primo compitino non pregiudica l'accesso al secondo&lt;br /&gt;
&lt;br /&gt;
====Laboratorio====&lt;br /&gt;
&lt;br /&gt;
Le prove in itinere consistono in esercitazioni in aula informatica.&lt;br /&gt;
 &lt;br /&gt;
* '''Prima esercitazione''': mercoledì 15 novembre.&lt;br /&gt;
&lt;br /&gt;
* '''Seconda esercitazione''':venerdì 19 gennaio.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
Sul sito di [http://homes.dico.unimi.it/prog/turno3-06/lab/index.php?page=lezioni laboratorio] sono disponibili invece le tracce svolte a lezione.&lt;br /&gt;
&lt;br /&gt;
===Appelli Ordinari===&lt;br /&gt;
&lt;br /&gt;
Per l'anno accademico 2006/2007 gli appelli d'esame sono previsti nelle seguenti date:&lt;br /&gt;
&lt;br /&gt;
* 29 gennaio 2007&lt;br /&gt;
* 28 febbraio 2007&lt;br /&gt;
* 11 giugno 2007&lt;br /&gt;
* 9 luglio 2007&lt;br /&gt;
* 21 settembre 2007&lt;br /&gt;
&lt;br /&gt;
Le date indicano l'inizio dell'appello (prova di laboratorio). Gli orali si svolgeranno il giorno stesso o alcuni giorni dopo, secondo quanto verrà comunicato in tempo utile su questa pagina.&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
*''[http://pighizzini.dico.unimi.it/jb/doc/ ProgDoc] documentazione del package Prog''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-05/lab/temi.html temi di lab 2005/06]&lt;br /&gt;
=== Dal DSY ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab9.pdf Traccia 9]&lt;br /&gt;
 &lt;br /&gt;
* Estendere la classe Persona del package labprog.&lt;br /&gt;
* La classe Vector&lt;br /&gt;
* Implementazione di un package d'utilità per l'aritmetica in precisione illimitata.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 18-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Esempio: calcolatrice in notazione postfissa; studio e gestione delle situazioni anomale. &lt;br /&gt;
* Come sollevare le eccezioni: l'istruzione throw. &lt;br /&gt;
* Come definire nuove eccezioni. &lt;br /&gt;
* Classificazione delle eccezioni: eccezioni controllate e non controllate. &lt;br /&gt;
* Come delegare le eccezioni (throws).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 20-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab10.pdf Traccia 10]&lt;br /&gt;
&lt;br /&gt;
* Intercettare le eccezioni non controllate per gestire gli errori in fase d'esecuzione. &lt;br /&gt;
* Lettura di un file con il package prog: gestione degli errori. &lt;br /&gt;
* Copia di un file di testo: gestione degli errori.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 08-01-2007 ===&lt;br /&gt;
&lt;br /&gt;
* L'input/output standard (package java.io). &lt;br /&gt;
* Stream di caratteri: le classi Reader, FileReader, BufferedReader (VisualizzaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-0.java mediante uso di FileReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-1.java mediante uso di BufferedReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile.java con una semplice gestione delle eccezioni]); &lt;br /&gt;
* le classi Writer, FileWriter, BufferedWriter (CopiaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile.java mediante FileWriter], [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile-0.java mediante BufferedWriter]). &lt;br /&gt;
* Stream di byte: InputStream, Outputstream ed esempi di sottoclassi. &lt;br /&gt;
* I riferimenti predefiniti System.in, System.err, System.out (ContaLettere.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere-0.java lettura da tastiera], [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere.java lettura da file o da tastiera]).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 10-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab11.pdf Traccia 11]&lt;br /&gt;
&lt;br /&gt;
* Input e output di base con le librerie standard di Java. &lt;br /&gt;
* Un esercizio complessivo ([http://homes.dico.unimi.it/prog/turno3-05/lab/progettosetgen/minishell.pdf MiniShell]) sugli stream e le eccezioni.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 12-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Metodi ricorsivi. &lt;br /&gt;
* Invocazione dei metori e passaggio dei parametri. &lt;br /&gt;
* Passaggio per valore. &lt;br /&gt;
* Cenni ad altri meccanismi di passaggio dei parametri. &lt;br /&gt;
* Organizzazione della memoria durante l'esecuzione: memoria statica, stack, heap. &lt;br /&gt;
* Gestione dello stack durante l'esecuzione: record di attivazione e loro struttura. &lt;br /&gt;
* Chiamate e rientri dai metodi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 15-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Overloading e overriding: il ruolo del compilatore e quello dell'esecutore. &lt;br /&gt;
* Come avviene la scelta del metodo da eseguire. &lt;br /&gt;
* Come scrivere il metodo equals. &lt;br /&gt;
* Esercizi di ripasso.&lt;br /&gt;
&lt;br /&gt;
=== Compitino di mercoledì 17-01-2006 ===&lt;br /&gt;
Secondo Compitino teoria:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di venerdì 19-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
* Seconda prova in itinere laboratorio&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16716</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16716"/>
		<updated>2007-01-18T13:48:01Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* Compitino di mercoledì 17-01-2006 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
Pubblicate le [http://homes.dico.unimi.it/prog/turno3-06/esami/ modalità d'esame].&lt;br /&gt;
&lt;br /&gt;
=== Prove in itinere ===&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 17 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo])&lt;br /&gt;
*'''Seconda Prova in itinere (lab)''' 19 gennaio&lt;br /&gt;
&lt;br /&gt;
Gli studenti che hanno sostenuto i compitini e/o le prove in itinere di laboratorio durante il corso possono essere esonerati da una o più parti dell'esame, sulla base dei risultati complessivi che verranno pubblicati sul sito del prof. Ulteriori informazioni al riguardo saranno fornite insieme ai risultati.&lt;br /&gt;
&lt;br /&gt;
====Teoria====&lt;br /&gt;
&lt;br /&gt;
* '''Primo compitino teoria''': 13 novembre&lt;br /&gt;
* '''Secondo compitino teoria''': 17 gennaio&lt;br /&gt;
&lt;br /&gt;
Il risultato del primo compitino non pregiudica l'accesso al secondo&lt;br /&gt;
&lt;br /&gt;
====Laboratorio====&lt;br /&gt;
&lt;br /&gt;
Le prove in itinere consistono in esercitazioni in aula informatica.&lt;br /&gt;
 &lt;br /&gt;
* '''Prima esercitazione''': mercoledì 15 novembre.&lt;br /&gt;
&lt;br /&gt;
* '''Seconda esercitazione''':venerdì 19 gennaio.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
Sul sito di [http://homes.dico.unimi.it/prog/turno3-06/lab/index.php?page=lezioni laboratorio] sono disponibili invece le tracce svolte a lezione.&lt;br /&gt;
&lt;br /&gt;
===Appelli Ordinari===&lt;br /&gt;
&lt;br /&gt;
Per l'anno accademico 2006/2007 gli appelli d'esame sono previsti nelle seguenti date:&lt;br /&gt;
&lt;br /&gt;
* 29 gennaio 2007&lt;br /&gt;
* 28 febbraio 2007&lt;br /&gt;
* 11 giugno 2007&lt;br /&gt;
* 9 luglio 2007&lt;br /&gt;
* 21 settembre 2007&lt;br /&gt;
&lt;br /&gt;
Le date indicano l'inizio dell'appello (prova di laboratorio). Gli orali si svolgeranno il giorno stesso o alcuni giorni dopo, secondo quanto verrà comunicato in tempo utile su questa pagina.&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
*''[http://pighizzini.dico.unimi.it/jb/doc/ ProgDoc] documentazione del package Prog''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-05/lab/temi.html temi di lab 2005/06]&lt;br /&gt;
=== Dal DSY ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab9.pdf Traccia 9]&lt;br /&gt;
 &lt;br /&gt;
* Estendere la classe Persona del package labprog.&lt;br /&gt;
* La classe Vector&lt;br /&gt;
* Implementazione di un package d'utilità per l'aritmetica in precisione illimitata.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 18-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Esempio: calcolatrice in notazione postfissa; studio e gestione delle situazioni anomale. &lt;br /&gt;
* Come sollevare le eccezioni: l'istruzione throw. &lt;br /&gt;
* Come definire nuove eccezioni. &lt;br /&gt;
* Classificazione delle eccezioni: eccezioni controllate e non controllate. &lt;br /&gt;
* Come delegare le eccezioni (throws).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 20-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab10.pdf Traccia 10]&lt;br /&gt;
&lt;br /&gt;
* Intercettare le eccezioni non controllate per gestire gli errori in fase d'esecuzione. &lt;br /&gt;
* Lettura di un file con il package prog: gestione degli errori. &lt;br /&gt;
* Copia di un file di testo: gestione degli errori.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 08-01-2007 ===&lt;br /&gt;
&lt;br /&gt;
* L'input/output standard (package java.io). &lt;br /&gt;
* Stream di caratteri: le classi Reader, FileReader, BufferedReader (VisualizzaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-0.java mediante uso di FileReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-1.java mediante uso di BufferedReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile.java con una semplice gestione delle eccezioni]); &lt;br /&gt;
* le classi Writer, FileWriter, BufferedWriter (CopiaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile.java mediante FileWriter], [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile-0.java mediante BufferedWriter]). &lt;br /&gt;
* Stream di byte: InputStream, Outputstream ed esempi di sottoclassi. &lt;br /&gt;
* I riferimenti predefiniti System.in, System.err, System.out (ContaLettere.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere-0.java lettura da tastiera], [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere.java lettura da file o da tastiera]).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 10-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab11.pdf Traccia 11]&lt;br /&gt;
&lt;br /&gt;
* Input e output di base con le librerie standard di Java. &lt;br /&gt;
* Un esercizio complessivo ([http://homes.dico.unimi.it/prog/turno3-05/lab/progettosetgen/minishell.pdf MiniShell]) sugli stream e le eccezioni.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 12-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Metodi ricorsivi. &lt;br /&gt;
* Invocazione dei metori e passaggio dei parametri. &lt;br /&gt;
* Passaggio per valore. &lt;br /&gt;
* Cenni ad altri meccanismi di passaggio dei parametri. &lt;br /&gt;
* Organizzazione della memoria durante l'esecuzione: memoria statica, stack, heap. &lt;br /&gt;
* Gestione dello stack durante l'esecuzione: record di attivazione e loro struttura. &lt;br /&gt;
* Chiamate e rientri dai metodi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 15-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Overloading e overriding: il ruolo del compilatore e quello dell'esecutore. &lt;br /&gt;
* Come avviene la scelta del metodo da eseguire. &lt;br /&gt;
* Come scrivere il metodo equals. &lt;br /&gt;
* Esercizi di ripasso.&lt;br /&gt;
&lt;br /&gt;
=== Compitino di mercoledì 17-01-2006 ===&lt;br /&gt;
Secondo Compitino teoria:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di venerdì 19-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
* Seconda prova in itinere laboratorio&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16715</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16715"/>
		<updated>2007-01-18T13:47:27Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* Compitino di mercoledì 17-01-2006 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
Pubblicate le [http://homes.dico.unimi.it/prog/turno3-06/esami/ modalità d'esame].&lt;br /&gt;
&lt;br /&gt;
=== Prove in itinere ===&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 17 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo])&lt;br /&gt;
*'''Seconda Prova in itinere (lab)''' 19 gennaio&lt;br /&gt;
&lt;br /&gt;
Gli studenti che hanno sostenuto i compitini e/o le prove in itinere di laboratorio durante il corso possono essere esonerati da una o più parti dell'esame, sulla base dei risultati complessivi che verranno pubblicati sul sito del prof. Ulteriori informazioni al riguardo saranno fornite insieme ai risultati.&lt;br /&gt;
&lt;br /&gt;
====Teoria====&lt;br /&gt;
&lt;br /&gt;
* '''Primo compitino teoria''': 13 novembre&lt;br /&gt;
* '''Secondo compitino teoria''': 17 gennaio&lt;br /&gt;
&lt;br /&gt;
Il risultato del primo compitino non pregiudica l'accesso al secondo&lt;br /&gt;
&lt;br /&gt;
====Laboratorio====&lt;br /&gt;
&lt;br /&gt;
Le prove in itinere consistono in esercitazioni in aula informatica.&lt;br /&gt;
 &lt;br /&gt;
* '''Prima esercitazione''': mercoledì 15 novembre.&lt;br /&gt;
&lt;br /&gt;
* '''Seconda esercitazione''':venerdì 19 gennaio.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
Sul sito di [http://homes.dico.unimi.it/prog/turno3-06/lab/index.php?page=lezioni laboratorio] sono disponibili invece le tracce svolte a lezione.&lt;br /&gt;
&lt;br /&gt;
===Appelli Ordinari===&lt;br /&gt;
&lt;br /&gt;
Per l'anno accademico 2006/2007 gli appelli d'esame sono previsti nelle seguenti date:&lt;br /&gt;
&lt;br /&gt;
* 29 gennaio 2007&lt;br /&gt;
* 28 febbraio 2007&lt;br /&gt;
* 11 giugno 2007&lt;br /&gt;
* 9 luglio 2007&lt;br /&gt;
* 21 settembre 2007&lt;br /&gt;
&lt;br /&gt;
Le date indicano l'inizio dell'appello (prova di laboratorio). Gli orali si svolgeranno il giorno stesso o alcuni giorni dopo, secondo quanto verrà comunicato in tempo utile su questa pagina.&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
*''[http://pighizzini.dico.unimi.it/jb/doc/ ProgDoc] documentazione del package Prog''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-05/lab/temi.html temi di lab 2005/06]&lt;br /&gt;
=== Dal DSY ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab9.pdf Traccia 9]&lt;br /&gt;
 &lt;br /&gt;
* Estendere la classe Persona del package labprog.&lt;br /&gt;
* La classe Vector&lt;br /&gt;
* Implementazione di un package d'utilità per l'aritmetica in precisione illimitata.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 18-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Esempio: calcolatrice in notazione postfissa; studio e gestione delle situazioni anomale. &lt;br /&gt;
* Come sollevare le eccezioni: l'istruzione throw. &lt;br /&gt;
* Come definire nuove eccezioni. &lt;br /&gt;
* Classificazione delle eccezioni: eccezioni controllate e non controllate. &lt;br /&gt;
* Come delegare le eccezioni (throws).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 20-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab10.pdf Traccia 10]&lt;br /&gt;
&lt;br /&gt;
* Intercettare le eccezioni non controllate per gestire gli errori in fase d'esecuzione. &lt;br /&gt;
* Lettura di un file con il package prog: gestione degli errori. &lt;br /&gt;
* Copia di un file di testo: gestione degli errori.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 08-01-2007 ===&lt;br /&gt;
&lt;br /&gt;
* L'input/output standard (package java.io). &lt;br /&gt;
* Stream di caratteri: le classi Reader, FileReader, BufferedReader (VisualizzaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-0.java mediante uso di FileReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-1.java mediante uso di BufferedReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile.java con una semplice gestione delle eccezioni]); &lt;br /&gt;
* le classi Writer, FileWriter, BufferedWriter (CopiaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile.java mediante FileWriter], [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile-0.java mediante BufferedWriter]). &lt;br /&gt;
* Stream di byte: InputStream, Outputstream ed esempi di sottoclassi. &lt;br /&gt;
* I riferimenti predefiniti System.in, System.err, System.out (ContaLettere.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere-0.java lettura da tastiera], [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere.java lettura da file o da tastiera]).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 10-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab11.pdf Traccia 11]&lt;br /&gt;
&lt;br /&gt;
* Input e output di base con le librerie standard di Java. &lt;br /&gt;
* Un esercizio complessivo ([http://homes.dico.unimi.it/prog/turno3-05/lab/progettosetgen/minishell.pdf MiniShell]) sugli stream e le eccezioni.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 12-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Metodi ricorsivi. &lt;br /&gt;
* Invocazione dei metori e passaggio dei parametri. &lt;br /&gt;
* Passaggio per valore. &lt;br /&gt;
* Cenni ad altri meccanismi di passaggio dei parametri. &lt;br /&gt;
* Organizzazione della memoria durante l'esecuzione: memoria statica, stack, heap. &lt;br /&gt;
* Gestione dello stack durante l'esecuzione: record di attivazione e loro struttura. &lt;br /&gt;
* Chiamate e rientri dai metodi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 15-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Overloading e overriding: il ruolo del compilatore e quello dell'esecutore. &lt;br /&gt;
* Come avviene la scelta del metodo da eseguire. &lt;br /&gt;
* Come scrivere il metodo equals. &lt;br /&gt;
* Esercizi di ripasso.&lt;br /&gt;
&lt;br /&gt;
=== Compitino di mercoledì 17-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Secondo Compitino teoria&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di venerdì 19-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
* Seconda prova in itinere laboratorio&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16714</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16714"/>
		<updated>2007-01-18T13:46:44Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* Prove in itinere */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
Pubblicate le [http://homes.dico.unimi.it/prog/turno3-06/esami/ modalità d'esame].&lt;br /&gt;
&lt;br /&gt;
=== Prove in itinere ===&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 17 gennaio ([http://homes.dico.unimi.it/prog/turno3-06/compitini/SecondoCompitino.pdf Testo])&lt;br /&gt;
*'''Seconda Prova in itinere (lab)''' 19 gennaio&lt;br /&gt;
&lt;br /&gt;
Gli studenti che hanno sostenuto i compitini e/o le prove in itinere di laboratorio durante il corso possono essere esonerati da una o più parti dell'esame, sulla base dei risultati complessivi che verranno pubblicati sul sito del prof. Ulteriori informazioni al riguardo saranno fornite insieme ai risultati.&lt;br /&gt;
&lt;br /&gt;
====Teoria====&lt;br /&gt;
&lt;br /&gt;
* '''Primo compitino teoria''': 13 novembre&lt;br /&gt;
* '''Secondo compitino teoria''': 17 gennaio&lt;br /&gt;
&lt;br /&gt;
Il risultato del primo compitino non pregiudica l'accesso al secondo&lt;br /&gt;
&lt;br /&gt;
====Laboratorio====&lt;br /&gt;
&lt;br /&gt;
Le prove in itinere consistono in esercitazioni in aula informatica.&lt;br /&gt;
 &lt;br /&gt;
* '''Prima esercitazione''': mercoledì 15 novembre.&lt;br /&gt;
&lt;br /&gt;
* '''Seconda esercitazione''':venerdì 19 gennaio.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
Sul sito di [http://homes.dico.unimi.it/prog/turno3-06/lab/index.php?page=lezioni laboratorio] sono disponibili invece le tracce svolte a lezione.&lt;br /&gt;
&lt;br /&gt;
===Appelli Ordinari===&lt;br /&gt;
&lt;br /&gt;
Per l'anno accademico 2006/2007 gli appelli d'esame sono previsti nelle seguenti date:&lt;br /&gt;
&lt;br /&gt;
* 29 gennaio 2007&lt;br /&gt;
* 28 febbraio 2007&lt;br /&gt;
* 11 giugno 2007&lt;br /&gt;
* 9 luglio 2007&lt;br /&gt;
* 21 settembre 2007&lt;br /&gt;
&lt;br /&gt;
Le date indicano l'inizio dell'appello (prova di laboratorio). Gli orali si svolgeranno il giorno stesso o alcuni giorni dopo, secondo quanto verrà comunicato in tempo utile su questa pagina.&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
*''[http://pighizzini.dico.unimi.it/jb/doc/ ProgDoc] documentazione del package Prog''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-05/lab/temi.html temi di lab 2005/06]&lt;br /&gt;
=== Dal DSY ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab9.pdf Traccia 9]&lt;br /&gt;
 &lt;br /&gt;
* Estendere la classe Persona del package labprog.&lt;br /&gt;
* La classe Vector&lt;br /&gt;
* Implementazione di un package d'utilità per l'aritmetica in precisione illimitata.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 18-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Esempio: calcolatrice in notazione postfissa; studio e gestione delle situazioni anomale. &lt;br /&gt;
* Come sollevare le eccezioni: l'istruzione throw. &lt;br /&gt;
* Come definire nuove eccezioni. &lt;br /&gt;
* Classificazione delle eccezioni: eccezioni controllate e non controllate. &lt;br /&gt;
* Come delegare le eccezioni (throws).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 20-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab10.pdf Traccia 10]&lt;br /&gt;
&lt;br /&gt;
* Intercettare le eccezioni non controllate per gestire gli errori in fase d'esecuzione. &lt;br /&gt;
* Lettura di un file con il package prog: gestione degli errori. &lt;br /&gt;
* Copia di un file di testo: gestione degli errori.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 08-01-2007 ===&lt;br /&gt;
&lt;br /&gt;
* L'input/output standard (package java.io). &lt;br /&gt;
* Stream di caratteri: le classi Reader, FileReader, BufferedReader (VisualizzaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-0.java mediante uso di FileReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-1.java mediante uso di BufferedReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile.java con una semplice gestione delle eccezioni]); &lt;br /&gt;
* le classi Writer, FileWriter, BufferedWriter (CopiaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile.java mediante FileWriter], [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile-0.java mediante BufferedWriter]). &lt;br /&gt;
* Stream di byte: InputStream, Outputstream ed esempi di sottoclassi. &lt;br /&gt;
* I riferimenti predefiniti System.in, System.err, System.out (ContaLettere.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere-0.java lettura da tastiera], [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere.java lettura da file o da tastiera]).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 10-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab11.pdf Traccia 11]&lt;br /&gt;
&lt;br /&gt;
* Input e output di base con le librerie standard di Java. &lt;br /&gt;
* Un esercizio complessivo ([http://homes.dico.unimi.it/prog/turno3-05/lab/progettosetgen/minishell.pdf MiniShell]) sugli stream e le eccezioni.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 12-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Metodi ricorsivi. &lt;br /&gt;
* Invocazione dei metori e passaggio dei parametri. &lt;br /&gt;
* Passaggio per valore. &lt;br /&gt;
* Cenni ad altri meccanismi di passaggio dei parametri. &lt;br /&gt;
* Organizzazione della memoria durante l'esecuzione: memoria statica, stack, heap. &lt;br /&gt;
* Gestione dello stack durante l'esecuzione: record di attivazione e loro struttura. &lt;br /&gt;
* Chiamate e rientri dai metodi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 15-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Overloading e overriding: il ruolo del compilatore e quello dell'esecutore. &lt;br /&gt;
* Come avviene la scelta del metodo da eseguire. &lt;br /&gt;
* Come scrivere il metodo equals. &lt;br /&gt;
* Esercizi di ripasso.&lt;br /&gt;
&lt;br /&gt;
=== Compitino di mercoledì 17-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Secondo Compitino teoria&lt;br /&gt;
&lt;br /&gt;
=== Compitino di venerdì 19-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
* Seconda prova in itinere laboratorio&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16709</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16709"/>
		<updated>2007-01-16T13:30:45Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* Lezione di lunedì 15-01-2006 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
Pubblicate le [http://homes.dico.unimi.it/prog/turno3-06/esami/ modalità d'esame].&lt;br /&gt;
&lt;br /&gt;
=== Prove in itinere ===&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 17 gennaio&lt;br /&gt;
*'''Seconda Prova in itinere (lab)''' 19 gennaio&lt;br /&gt;
&lt;br /&gt;
Gli studenti che hanno sostenuto i compitini e/o le prove in itinere di laboratorio durante il corso possono essere esonerati da una o più parti dell'esame, sulla base dei risultati complessivi che verranno pubblicati sul sito del prof. Ulteriori informazioni al riguardo saranno fornite insieme ai risultati.&lt;br /&gt;
&lt;br /&gt;
====Teoria====&lt;br /&gt;
&lt;br /&gt;
* '''Primo compitino teoria''': 13 novembre&lt;br /&gt;
* '''Secondo compitino teoria''': 17 gennaio&lt;br /&gt;
&lt;br /&gt;
Il risultato del primo compitino non pregiudica l'accesso al secondo&lt;br /&gt;
&lt;br /&gt;
====Laboratorio====&lt;br /&gt;
&lt;br /&gt;
Le prove in itinere consistono in esercitazioni in aula informatica.&lt;br /&gt;
 &lt;br /&gt;
* '''Prima esercitazione''': mercoledì 15 novembre.&lt;br /&gt;
&lt;br /&gt;
* '''Seconda esercitazione''':venerdì 19 gennaio.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
Sul sito di [http://homes.dico.unimi.it/prog/turno3-06/lab/index.php?page=lezioni laboratorio] sono disponibili invece le tracce svolte a lezione.&lt;br /&gt;
&lt;br /&gt;
===Appelli Ordinari===&lt;br /&gt;
&lt;br /&gt;
Per l'anno accademico 2006/2007 gli appelli d'esame sono previsti nelle seguenti date:&lt;br /&gt;
&lt;br /&gt;
* 29 gennaio 2007&lt;br /&gt;
* 28 febbraio 2007&lt;br /&gt;
* 11 giugno 2007&lt;br /&gt;
* 9 luglio 2007&lt;br /&gt;
* 21 settembre 2007&lt;br /&gt;
&lt;br /&gt;
Le date indicano l'inizio dell'appello (prova di laboratorio). Gli orali si svolgeranno il giorno stesso o alcuni giorni dopo, secondo quanto verrà comunicato in tempo utile su questa pagina.&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
*''[http://pighizzini.dico.unimi.it/jb/doc/ ProgDoc] documentazione del package Prog''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-05/lab/temi.html temi di lab 2005/06]&lt;br /&gt;
=== Dal DSY ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab9.pdf Traccia 9]&lt;br /&gt;
 &lt;br /&gt;
* Estendere la classe Persona del package labprog.&lt;br /&gt;
* La classe Vector&lt;br /&gt;
* Implementazione di un package d'utilità per l'aritmetica in precisione illimitata.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 18-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Esempio: calcolatrice in notazione postfissa; studio e gestione delle situazioni anomale. &lt;br /&gt;
* Come sollevare le eccezioni: l'istruzione throw. &lt;br /&gt;
* Come definire nuove eccezioni. &lt;br /&gt;
* Classificazione delle eccezioni: eccezioni controllate e non controllate. &lt;br /&gt;
* Come delegare le eccezioni (throws).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 20-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab10.pdf Traccia 10]&lt;br /&gt;
&lt;br /&gt;
* Intercettare le eccezioni non controllate per gestire gli errori in fase d'esecuzione. &lt;br /&gt;
* Lettura di un file con il package prog: gestione degli errori. &lt;br /&gt;
* Copia di un file di testo: gestione degli errori.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 08-01-2007 ===&lt;br /&gt;
&lt;br /&gt;
* L'input/output standard (package java.io). &lt;br /&gt;
* Stream di caratteri: le classi Reader, FileReader, BufferedReader (VisualizzaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-0.java mediante uso di FileReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-1.java mediante uso di BufferedReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile.java con una semplice gestione delle eccezioni]); &lt;br /&gt;
* le classi Writer, FileWriter, BufferedWriter (CopiaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile.java mediante FileWriter], [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile-0.java mediante BufferedWriter]). &lt;br /&gt;
* Stream di byte: InputStream, Outputstream ed esempi di sottoclassi. &lt;br /&gt;
* I riferimenti predefiniti System.in, System.err, System.out (ContaLettere.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere-0.java lettura da tastiera], [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere.java lettura da file o da tastiera]).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 10-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab11.pdf Traccia 11]&lt;br /&gt;
&lt;br /&gt;
* Input e output di base con le librerie standard di Java. &lt;br /&gt;
* Un esercizio complessivo ([http://homes.dico.unimi.it/prog/turno3-05/lab/progettosetgen/minishell.pdf MiniShell]) sugli stream e le eccezioni.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 12-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Metodi ricorsivi. &lt;br /&gt;
* Invocazione dei metori e passaggio dei parametri. &lt;br /&gt;
* Passaggio per valore. &lt;br /&gt;
* Cenni ad altri meccanismi di passaggio dei parametri. &lt;br /&gt;
* Organizzazione della memoria durante l'esecuzione: memoria statica, stack, heap. &lt;br /&gt;
* Gestione dello stack durante l'esecuzione: record di attivazione e loro struttura. &lt;br /&gt;
* Chiamate e rientri dai metodi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 15-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Overloading e overriding: il ruolo del compilatore e quello dell'esecutore. &lt;br /&gt;
* Come avviene la scelta del metodo da eseguire. &lt;br /&gt;
* Come scrivere il metodo equals. &lt;br /&gt;
* Esercizi di ripasso.&lt;br /&gt;
&lt;br /&gt;
=== Compitino di mercoledì 17-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Secondo Compitino teoria&lt;br /&gt;
&lt;br /&gt;
=== Compitino di venerdì 19-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
* Seconda prova in itinere laboratorio&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16700</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16700"/>
		<updated>2007-01-13T14:00:39Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* Lezione di mercoledì 10-01-2006 (lab) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
Pubblicate le [http://homes.dico.unimi.it/prog/turno3-06/esami/ modalità d'esame].&lt;br /&gt;
&lt;br /&gt;
=== Prove in itinere ===&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 17 gennaio&lt;br /&gt;
*'''Seconda Prova in itinere (lab)''' 19 gennaio&lt;br /&gt;
&lt;br /&gt;
Gli studenti che hanno sostenuto i compitini e/o le prove in itinere di laboratorio durante il corso possono essere esonerati da una o più parti dell'esame, sulla base dei risultati complessivi che verranno pubblicati sul sito del prof. Ulteriori informazioni al riguardo saranno fornite insieme ai risultati.&lt;br /&gt;
&lt;br /&gt;
====Teoria====&lt;br /&gt;
&lt;br /&gt;
* '''Primo compitino teoria''': 13 novembre&lt;br /&gt;
* '''Secondo compitino teoria''': 17 gennaio&lt;br /&gt;
&lt;br /&gt;
Il risultato del primo compitino non pregiudica l'accesso al secondo&lt;br /&gt;
&lt;br /&gt;
====Laboratorio====&lt;br /&gt;
&lt;br /&gt;
Le prove in itinere consistono in esercitazioni in aula informatica.&lt;br /&gt;
 &lt;br /&gt;
* '''Prima esercitazione''': mercoledì 15 novembre.&lt;br /&gt;
&lt;br /&gt;
* '''Seconda esercitazione''':venerdì 19 gennaio.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
Sul sito di [http://homes.dico.unimi.it/prog/turno3-06/lab/index.php?page=lezioni laboratorio] sono disponibili invece le tracce svolte a lezione.&lt;br /&gt;
&lt;br /&gt;
===Appelli Ordinari===&lt;br /&gt;
&lt;br /&gt;
Per l'anno accademico 2006/2007 gli appelli d'esame sono previsti nelle seguenti date:&lt;br /&gt;
&lt;br /&gt;
* 29 gennaio 2007&lt;br /&gt;
* 28 febbraio 2007&lt;br /&gt;
* 11 giugno 2007&lt;br /&gt;
* 9 luglio 2007&lt;br /&gt;
* 21 settembre 2007&lt;br /&gt;
&lt;br /&gt;
Le date indicano l'inizio dell'appello (prova di laboratorio). Gli orali si svolgeranno il giorno stesso o alcuni giorni dopo, secondo quanto verrà comunicato in tempo utile su questa pagina.&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
*''[http://pighizzini.dico.unimi.it/jb/doc/ ProgDoc] documentazione del package Prog''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-05/lab/temi.html temi di lab 2005/06]&lt;br /&gt;
=== Dal DSY ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab9.pdf Traccia 9]&lt;br /&gt;
 &lt;br /&gt;
* Estendere la classe Persona del package labprog.&lt;br /&gt;
* La classe Vector&lt;br /&gt;
* Implementazione di un package d'utilità per l'aritmetica in precisione illimitata.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 18-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Esempio: calcolatrice in notazione postfissa; studio e gestione delle situazioni anomale. &lt;br /&gt;
* Come sollevare le eccezioni: l'istruzione throw. &lt;br /&gt;
* Come definire nuove eccezioni. &lt;br /&gt;
* Classificazione delle eccezioni: eccezioni controllate e non controllate. &lt;br /&gt;
* Come delegare le eccezioni (throws).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 20-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab10.pdf Traccia 10]&lt;br /&gt;
&lt;br /&gt;
* Intercettare le eccezioni non controllate per gestire gli errori in fase d'esecuzione. &lt;br /&gt;
* Lettura di un file con il package prog: gestione degli errori. &lt;br /&gt;
* Copia di un file di testo: gestione degli errori.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 08-01-2007 ===&lt;br /&gt;
&lt;br /&gt;
* L'input/output standard (package java.io). &lt;br /&gt;
* Stream di caratteri: le classi Reader, FileReader, BufferedReader (VisualizzaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-0.java mediante uso di FileReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-1.java mediante uso di BufferedReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile.java con una semplice gestione delle eccezioni]); &lt;br /&gt;
* le classi Writer, FileWriter, BufferedWriter (CopiaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile.java mediante FileWriter], [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile-0.java mediante BufferedWriter]). &lt;br /&gt;
* Stream di byte: InputStream, Outputstream ed esempi di sottoclassi. &lt;br /&gt;
* I riferimenti predefiniti System.in, System.err, System.out (ContaLettere.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere-0.java lettura da tastiera], [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere.java lettura da file o da tastiera]).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 10-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab11.pdf Traccia 11]&lt;br /&gt;
&lt;br /&gt;
* Input e output di base con le librerie standard di Java. &lt;br /&gt;
* Un esercizio complessivo ([http://homes.dico.unimi.it/prog/turno3-05/lab/progettosetgen/minishell.pdf MiniShell]) sugli stream e le eccezioni.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 12-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Metodi ricorsivi. &lt;br /&gt;
* Invocazione dei metori e passaggio dei parametri. &lt;br /&gt;
* Passaggio per valore. &lt;br /&gt;
* Cenni ad altri meccanismi di passaggio dei parametri. &lt;br /&gt;
* Organizzazione della memoria durante l'esecuzione: memoria statica, stack, heap. &lt;br /&gt;
* Gestione dello stack durante l'esecuzione: record di attivazione e loro struttura. &lt;br /&gt;
* Chiamate e rientri dai metodi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 15-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Ultima lezione teoria&lt;br /&gt;
&lt;br /&gt;
=== Compitino di mercoledì 17-01-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Secondo Compitino teoria&lt;br /&gt;
&lt;br /&gt;
=== Compitino di venerdì 19-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
* Seconda prova in itinere laboratorio&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16699</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16699"/>
		<updated>2007-01-13T13:57:55Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* Esami passati, tesine, compiti .. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
Pubblicate le [http://homes.dico.unimi.it/prog/turno3-06/esami/ modalità d'esame].&lt;br /&gt;
&lt;br /&gt;
=== Prove in itinere ===&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 17 gennaio&lt;br /&gt;
*'''Seconda Prova in itinere (lab)''' 19 gennaio&lt;br /&gt;
&lt;br /&gt;
Gli studenti che hanno sostenuto i compitini e/o le prove in itinere di laboratorio durante il corso possono essere esonerati da una o più parti dell'esame, sulla base dei risultati complessivi che verranno pubblicati sul sito del prof. Ulteriori informazioni al riguardo saranno fornite insieme ai risultati.&lt;br /&gt;
&lt;br /&gt;
====Teoria====&lt;br /&gt;
&lt;br /&gt;
* '''Primo compitino teoria''': 13 novembre&lt;br /&gt;
* '''Secondo compitino teoria''': 17 gennaio&lt;br /&gt;
&lt;br /&gt;
Il risultato del primo compitino non pregiudica l'accesso al secondo&lt;br /&gt;
&lt;br /&gt;
====Laboratorio====&lt;br /&gt;
&lt;br /&gt;
Le prove in itinere consistono in esercitazioni in aula informatica.&lt;br /&gt;
 &lt;br /&gt;
* '''Prima esercitazione''': mercoledì 15 novembre.&lt;br /&gt;
&lt;br /&gt;
* '''Seconda esercitazione''':venerdì 19 gennaio.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
Sul sito di [http://homes.dico.unimi.it/prog/turno3-06/lab/index.php?page=lezioni laboratorio] sono disponibili invece le tracce svolte a lezione.&lt;br /&gt;
&lt;br /&gt;
===Appelli Ordinari===&lt;br /&gt;
&lt;br /&gt;
Per l'anno accademico 2006/2007 gli appelli d'esame sono previsti nelle seguenti date:&lt;br /&gt;
&lt;br /&gt;
* 29 gennaio 2007&lt;br /&gt;
* 28 febbraio 2007&lt;br /&gt;
* 11 giugno 2007&lt;br /&gt;
* 9 luglio 2007&lt;br /&gt;
* 21 settembre 2007&lt;br /&gt;
&lt;br /&gt;
Le date indicano l'inizio dell'appello (prova di laboratorio). Gli orali si svolgeranno il giorno stesso o alcuni giorni dopo, secondo quanto verrà comunicato in tempo utile su questa pagina.&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
*''[http://pighizzini.dico.unimi.it/jb/doc/ ProgDoc] documentazione del package Prog''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-05/lab/temi.html temi di lab 2005/06]&lt;br /&gt;
=== Dal DSY ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab9.pdf Traccia 9]&lt;br /&gt;
 &lt;br /&gt;
* Estendere la classe Persona del package labprog.&lt;br /&gt;
* La classe Vector&lt;br /&gt;
* Implementazione di un package d'utilità per l'aritmetica in precisione illimitata.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 18-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Esempio: calcolatrice in notazione postfissa; studio e gestione delle situazioni anomale. &lt;br /&gt;
* Come sollevare le eccezioni: l'istruzione throw. &lt;br /&gt;
* Come definire nuove eccezioni. &lt;br /&gt;
* Classificazione delle eccezioni: eccezioni controllate e non controllate. &lt;br /&gt;
* Come delegare le eccezioni (throws).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 20-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab10.pdf Traccia 10]&lt;br /&gt;
&lt;br /&gt;
* Intercettare le eccezioni non controllate per gestire gli errori in fase d'esecuzione. &lt;br /&gt;
* Lettura di un file con il package prog: gestione degli errori. &lt;br /&gt;
* Copia di un file di testo: gestione degli errori.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 08-01-2007 ===&lt;br /&gt;
&lt;br /&gt;
* L'input/output standard (package java.io). &lt;br /&gt;
* Stream di caratteri: le classi Reader, FileReader, BufferedReader (VisualizzaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-0.java mediante uso di FileReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-1.java mediante uso di BufferedReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile.java con una semplice gestione delle eccezioni]); &lt;br /&gt;
* le classi Writer, FileWriter, BufferedWriter (CopiaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile.java mediante FileWriter], [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile-0.java mediante BufferedWriter]). &lt;br /&gt;
* Stream di byte: InputStream, Outputstream ed esempi di sottoclassi. &lt;br /&gt;
* I riferimenti predefiniti System.in, System.err, System.out (ContaLettere.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere-0.java lettura da tastiera], [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere.java lettura da file o da tastiera]).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 10-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab11.pdf Traccia 11]&lt;br /&gt;
&lt;br /&gt;
* Input e output di base con le librerie standard di Java. &lt;br /&gt;
* Un esercizio complessivo ([http://homes.dico.unimi.it/prog/turno3-05/lab/progettosetgen/minishell.pdf MiniShell]) sugli stream e le eccezioni.&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16698</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16698"/>
		<updated>2007-01-13T13:55:31Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* Esami passati, tesine, compiti .. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
Pubblicate le [http://homes.dico.unimi.it/prog/turno3-06/esami/ modalità d'esame].&lt;br /&gt;
&lt;br /&gt;
=== Prove in itinere ===&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 17 gennaio&lt;br /&gt;
*'''Seconda Prova in itinere (lab)''' 19 gennaio&lt;br /&gt;
&lt;br /&gt;
Gli studenti che hanno sostenuto i compitini e/o le prove in itinere di laboratorio durante il corso possono essere esonerati da una o più parti dell'esame, sulla base dei risultati complessivi che verranno pubblicati sul sito del prof. Ulteriori informazioni al riguardo saranno fornite insieme ai risultati.&lt;br /&gt;
&lt;br /&gt;
====Teoria====&lt;br /&gt;
&lt;br /&gt;
* '''Primo compitino teoria''': 13 novembre&lt;br /&gt;
* '''Secondo compitino teoria''': 17 gennaio&lt;br /&gt;
&lt;br /&gt;
Il risultato del primo compitino non pregiudica l'accesso al secondo&lt;br /&gt;
&lt;br /&gt;
====Laboratorio====&lt;br /&gt;
&lt;br /&gt;
Le prove in itinere consistono in esercitazioni in aula informatica.&lt;br /&gt;
 &lt;br /&gt;
* '''Prima esercitazione''': mercoledì 15 novembre.&lt;br /&gt;
&lt;br /&gt;
* '''Seconda esercitazione''':venerdì 19 gennaio.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
Sul sito di [http://homes.dico.unimi.it/prog/turno3-06/lab/index.php?page=lezioni laboratorio] sono disponibili invece le tracce svolte a lezione.&lt;br /&gt;
&lt;br /&gt;
===Appelli Ordinari===&lt;br /&gt;
&lt;br /&gt;
Per l'anno accademico 2006/2007 gli appelli d'esame sono previsti nelle seguenti date:&lt;br /&gt;
&lt;br /&gt;
* 29 gennaio 2007&lt;br /&gt;
* 28 febbraio 2007&lt;br /&gt;
* 11 giugno 2007&lt;br /&gt;
* 9 luglio 2007&lt;br /&gt;
* 21 settembre 2007&lt;br /&gt;
&lt;br /&gt;
Le date indicano l'inizio dell'appello (prova di laboratorio). Gli orali si svolgeranno il giorno stesso o alcuni giorni dopo, secondo quanto verrà comunicato in tempo utile su questa pagina.&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
*''[http://pighizzini.dico.unimi.it/jb/doc/ ProgDoc] documentazione del package Prog''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-05/lab/temi.html temi di lab 2005/06]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab9.pdf Traccia 9]&lt;br /&gt;
 &lt;br /&gt;
* Estendere la classe Persona del package labprog.&lt;br /&gt;
* La classe Vector&lt;br /&gt;
* Implementazione di un package d'utilità per l'aritmetica in precisione illimitata.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 18-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Esempio: calcolatrice in notazione postfissa; studio e gestione delle situazioni anomale. &lt;br /&gt;
* Come sollevare le eccezioni: l'istruzione throw. &lt;br /&gt;
* Come definire nuove eccezioni. &lt;br /&gt;
* Classificazione delle eccezioni: eccezioni controllate e non controllate. &lt;br /&gt;
* Come delegare le eccezioni (throws).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 20-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab10.pdf Traccia 10]&lt;br /&gt;
&lt;br /&gt;
* Intercettare le eccezioni non controllate per gestire gli errori in fase d'esecuzione. &lt;br /&gt;
* Lettura di un file con il package prog: gestione degli errori. &lt;br /&gt;
* Copia di un file di testo: gestione degli errori.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 08-01-2007 ===&lt;br /&gt;
&lt;br /&gt;
* L'input/output standard (package java.io). &lt;br /&gt;
* Stream di caratteri: le classi Reader, FileReader, BufferedReader (VisualizzaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-0.java mediante uso di FileReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-1.java mediante uso di BufferedReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile.java con una semplice gestione delle eccezioni]); &lt;br /&gt;
* le classi Writer, FileWriter, BufferedWriter (CopiaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile.java mediante FileWriter], [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile-0.java mediante BufferedWriter]). &lt;br /&gt;
* Stream di byte: InputStream, Outputstream ed esempi di sottoclassi. &lt;br /&gt;
* I riferimenti predefiniti System.in, System.err, System.out (ContaLettere.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere-0.java lettura da tastiera], [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere.java lettura da file o da tastiera]).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 10-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab11.pdf Traccia 11]&lt;br /&gt;
&lt;br /&gt;
* Input e output di base con le librerie standard di Java. &lt;br /&gt;
* Un esercizio complessivo ([http://homes.dico.unimi.it/prog/turno3-05/lab/progettosetgen/minishell.pdf MiniShell]) sugli stream e le eccezioni.&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16697</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16697"/>
		<updated>2007-01-13T13:53:30Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* News */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
Pubblicate le [http://homes.dico.unimi.it/prog/turno3-06/esami/ modalità d'esame].&lt;br /&gt;
&lt;br /&gt;
=== Prove in itinere ===&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 17 gennaio&lt;br /&gt;
*'''Seconda Prova in itinere (lab)''' 19 gennaio&lt;br /&gt;
&lt;br /&gt;
Gli studenti che hanno sostenuto i compitini e/o le prove in itinere di laboratorio durante il corso possono essere esonerati da una o più parti dell'esame, sulla base dei risultati complessivi che verranno pubblicati sul sito del prof. Ulteriori informazioni al riguardo saranno fornite insieme ai risultati.&lt;br /&gt;
&lt;br /&gt;
====Teoria====&lt;br /&gt;
&lt;br /&gt;
* '''Primo compitino teoria''': 13 novembre&lt;br /&gt;
* '''Secondo compitino teoria''': 17 gennaio&lt;br /&gt;
&lt;br /&gt;
Il risultato del primo compitino non pregiudica l'accesso al secondo&lt;br /&gt;
&lt;br /&gt;
====Laboratorio====&lt;br /&gt;
&lt;br /&gt;
Le prove in itinere consistono in esercitazioni in aula informatica.&lt;br /&gt;
 &lt;br /&gt;
* '''Prima esercitazione''': mercoledì 15 novembre.&lt;br /&gt;
&lt;br /&gt;
* '''Seconda esercitazione''':venerdì 19 gennaio.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
Sul sito di [http://homes.dico.unimi.it/prog/turno3-06/lab/index.php?page=lezioni laboratorio] sono disponibili invece le tracce svolte a lezione.&lt;br /&gt;
&lt;br /&gt;
===Appelli Ordinari===&lt;br /&gt;
&lt;br /&gt;
Per l'anno accademico 2006/2007 gli appelli d'esame sono previsti nelle seguenti date:&lt;br /&gt;
&lt;br /&gt;
* 29 gennaio 2007&lt;br /&gt;
* 28 febbraio 2007&lt;br /&gt;
* 11 giugno 2007&lt;br /&gt;
* 9 luglio 2007&lt;br /&gt;
* 21 settembre 2007&lt;br /&gt;
&lt;br /&gt;
Le date indicano l'inizio dell'appello (prova di laboratorio). Gli orali si svolgeranno il giorno stesso o alcuni giorni dopo, secondo quanto verrà comunicato in tempo utile su questa pagina.&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
*''[http://pighizzini.dico.unimi.it/jb/doc/ ProgDoc] documentazione del package Prog''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab9.pdf Traccia 9]&lt;br /&gt;
 &lt;br /&gt;
* Estendere la classe Persona del package labprog.&lt;br /&gt;
* La classe Vector&lt;br /&gt;
* Implementazione di un package d'utilità per l'aritmetica in precisione illimitata.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 18-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Esempio: calcolatrice in notazione postfissa; studio e gestione delle situazioni anomale. &lt;br /&gt;
* Come sollevare le eccezioni: l'istruzione throw. &lt;br /&gt;
* Come definire nuove eccezioni. &lt;br /&gt;
* Classificazione delle eccezioni: eccezioni controllate e non controllate. &lt;br /&gt;
* Come delegare le eccezioni (throws).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 20-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab10.pdf Traccia 10]&lt;br /&gt;
&lt;br /&gt;
* Intercettare le eccezioni non controllate per gestire gli errori in fase d'esecuzione. &lt;br /&gt;
* Lettura di un file con il package prog: gestione degli errori. &lt;br /&gt;
* Copia di un file di testo: gestione degli errori.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 08-01-2007 ===&lt;br /&gt;
&lt;br /&gt;
* L'input/output standard (package java.io). &lt;br /&gt;
* Stream di caratteri: le classi Reader, FileReader, BufferedReader (VisualizzaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-0.java mediante uso di FileReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-1.java mediante uso di BufferedReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile.java con una semplice gestione delle eccezioni]); &lt;br /&gt;
* le classi Writer, FileWriter, BufferedWriter (CopiaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile.java mediante FileWriter], [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile-0.java mediante BufferedWriter]). &lt;br /&gt;
* Stream di byte: InputStream, Outputstream ed esempi di sottoclassi. &lt;br /&gt;
* I riferimenti predefiniti System.in, System.err, System.out (ContaLettere.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere-0.java lettura da tastiera], [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere.java lettura da file o da tastiera]).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 10-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab11.pdf Traccia 11]&lt;br /&gt;
&lt;br /&gt;
* Input e output di base con le librerie standard di Java. &lt;br /&gt;
* Un esercizio complessivo ([http://homes.dico.unimi.it/prog/turno3-05/lab/progettosetgen/minishell.pdf MiniShell]) sugli stream e le eccezioni.&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16696</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16696"/>
		<updated>2007-01-13T13:53:12Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* Prove in itinere */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
*'''Esami'''&lt;br /&gt;
Pubblicate le [http://homes.dico.unimi.it/prog/turno3-06/esami/ modalità d'esame].&lt;br /&gt;
&lt;br /&gt;
=== Prove in itinere ===&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 17 gennaio&lt;br /&gt;
*'''Seconda Prova in itinere (lab)''' 19 gennaio&lt;br /&gt;
&lt;br /&gt;
Gli studenti che hanno sostenuto i compitini e/o le prove in itinere di laboratorio durante il corso possono essere esonerati da una o più parti dell'esame, sulla base dei risultati complessivi che verranno pubblicati sul sito del prof. Ulteriori informazioni al riguardo saranno fornite insieme ai risultati.&lt;br /&gt;
&lt;br /&gt;
====Teoria====&lt;br /&gt;
&lt;br /&gt;
* '''Primo compitino teoria''': 13 novembre&lt;br /&gt;
* '''Secondo compitino teoria''': 17 gennaio&lt;br /&gt;
&lt;br /&gt;
Il risultato del primo compitino non pregiudica l'accesso al secondo&lt;br /&gt;
&lt;br /&gt;
====Laboratorio====&lt;br /&gt;
&lt;br /&gt;
Le prove in itinere consistono in esercitazioni in aula informatica.&lt;br /&gt;
 &lt;br /&gt;
* '''Prima esercitazione''': mercoledì 15 novembre.&lt;br /&gt;
&lt;br /&gt;
* '''Seconda esercitazione''':venerdì 19 gennaio.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
Sul sito di [http://homes.dico.unimi.it/prog/turno3-06/lab/index.php?page=lezioni laboratorio] sono disponibili invece le tracce svolte a lezione.&lt;br /&gt;
&lt;br /&gt;
===Appelli Ordinari===&lt;br /&gt;
&lt;br /&gt;
Per l'anno accademico 2006/2007 gli appelli d'esame sono previsti nelle seguenti date:&lt;br /&gt;
&lt;br /&gt;
* 29 gennaio 2007&lt;br /&gt;
* 28 febbraio 2007&lt;br /&gt;
* 11 giugno 2007&lt;br /&gt;
* 9 luglio 2007&lt;br /&gt;
* 21 settembre 2007&lt;br /&gt;
&lt;br /&gt;
Le date indicano l'inizio dell'appello (prova di laboratorio). Gli orali si svolgeranno il giorno stesso o alcuni giorni dopo, secondo quanto verrà comunicato in tempo utile su questa pagina.&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
*''[http://pighizzini.dico.unimi.it/jb/doc/ ProgDoc] documentazione del package Prog''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab9.pdf Traccia 9]&lt;br /&gt;
 &lt;br /&gt;
* Estendere la classe Persona del package labprog.&lt;br /&gt;
* La classe Vector&lt;br /&gt;
* Implementazione di un package d'utilità per l'aritmetica in precisione illimitata.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 18-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Esempio: calcolatrice in notazione postfissa; studio e gestione delle situazioni anomale. &lt;br /&gt;
* Come sollevare le eccezioni: l'istruzione throw. &lt;br /&gt;
* Come definire nuove eccezioni. &lt;br /&gt;
* Classificazione delle eccezioni: eccezioni controllate e non controllate. &lt;br /&gt;
* Come delegare le eccezioni (throws).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 20-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab10.pdf Traccia 10]&lt;br /&gt;
&lt;br /&gt;
* Intercettare le eccezioni non controllate per gestire gli errori in fase d'esecuzione. &lt;br /&gt;
* Lettura di un file con il package prog: gestione degli errori. &lt;br /&gt;
* Copia di un file di testo: gestione degli errori.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 08-01-2007 ===&lt;br /&gt;
&lt;br /&gt;
* L'input/output standard (package java.io). &lt;br /&gt;
* Stream di caratteri: le classi Reader, FileReader, BufferedReader (VisualizzaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-0.java mediante uso di FileReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-1.java mediante uso di BufferedReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile.java con una semplice gestione delle eccezioni]); &lt;br /&gt;
* le classi Writer, FileWriter, BufferedWriter (CopiaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile.java mediante FileWriter], [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile-0.java mediante BufferedWriter]). &lt;br /&gt;
* Stream di byte: InputStream, Outputstream ed esempi di sottoclassi. &lt;br /&gt;
* I riferimenti predefiniti System.in, System.err, System.out (ContaLettere.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere-0.java lettura da tastiera], [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere.java lettura da file o da tastiera]).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 10-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab11.pdf Traccia 11]&lt;br /&gt;
&lt;br /&gt;
* Input e output di base con le librerie standard di Java. &lt;br /&gt;
* Un esercizio complessivo ([http://homes.dico.unimi.it/prog/turno3-05/lab/progettosetgen/minishell.pdf MiniShell]) sugli stream e le eccezioni.&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16695</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16695"/>
		<updated>2007-01-13T13:48:35Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* News */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
*'''Esami'''&lt;br /&gt;
Pubblicate le [http://homes.dico.unimi.it/prog/turno3-06/esami/ modalità d'esame].&lt;br /&gt;
&lt;br /&gt;
=== Prove in itinere ===&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 17 gennaio&lt;br /&gt;
*'''Seconda Prova in itinere (lab)''' 19 gennaio&lt;br /&gt;
&lt;br /&gt;
====Teoria====&lt;br /&gt;
&lt;br /&gt;
* Primo compitino teoria: 13 novembre&lt;br /&gt;
* Secondo compitino teoria: 17 gennaio&lt;br /&gt;
* Esame orale conclusivo&lt;br /&gt;
&lt;br /&gt;
Il risultato del primo compitino non pregiudica l'accesso al secondo&lt;br /&gt;
&lt;br /&gt;
====Laboratorio====&lt;br /&gt;
&lt;br /&gt;
Sono previste prove in itinere (esercitazioni in aula).&lt;br /&gt;
 &lt;br /&gt;
La prima è stata mercoledì 15 novembre.&lt;br /&gt;
&lt;br /&gt;
La seconda sarà venerdì 19 gennaio.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
===Appelli Ordinari===&lt;br /&gt;
&lt;br /&gt;
Per l'anno accademico 2006/2007 gli appelli d'esame sono previsti nelle seguenti date:&lt;br /&gt;
&lt;br /&gt;
* 29 gennaio 2007&lt;br /&gt;
* 28 febbraio 2007&lt;br /&gt;
* 11 giugno 2007&lt;br /&gt;
* 9 luglio 2007&lt;br /&gt;
* 21 settembre 2007&lt;br /&gt;
&lt;br /&gt;
Le date indicano l'inizio dell'appello (prova di laboratorio). Gli orali si svolgeranno il giorno stesso o alcuni giorni dopo, secondo quanto verrà comunicato in tempo utile su questa pagina.&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
*''[http://pighizzini.dico.unimi.it/jb/doc/ ProgDoc] documentazione del package Prog''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab9.pdf Traccia 9]&lt;br /&gt;
 &lt;br /&gt;
* Estendere la classe Persona del package labprog.&lt;br /&gt;
* La classe Vector&lt;br /&gt;
* Implementazione di un package d'utilità per l'aritmetica in precisione illimitata.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 18-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Esempio: calcolatrice in notazione postfissa; studio e gestione delle situazioni anomale. &lt;br /&gt;
* Come sollevare le eccezioni: l'istruzione throw. &lt;br /&gt;
* Come definire nuove eccezioni. &lt;br /&gt;
* Classificazione delle eccezioni: eccezioni controllate e non controllate. &lt;br /&gt;
* Come delegare le eccezioni (throws).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 20-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab10.pdf Traccia 10]&lt;br /&gt;
&lt;br /&gt;
* Intercettare le eccezioni non controllate per gestire gli errori in fase d'esecuzione. &lt;br /&gt;
* Lettura di un file con il package prog: gestione degli errori. &lt;br /&gt;
* Copia di un file di testo: gestione degli errori.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 08-01-2007 ===&lt;br /&gt;
&lt;br /&gt;
* L'input/output standard (package java.io). &lt;br /&gt;
* Stream di caratteri: le classi Reader, FileReader, BufferedReader (VisualizzaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-0.java mediante uso di FileReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-1.java mediante uso di BufferedReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile.java con una semplice gestione delle eccezioni]); &lt;br /&gt;
* le classi Writer, FileWriter, BufferedWriter (CopiaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile.java mediante FileWriter], [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile-0.java mediante BufferedWriter]). &lt;br /&gt;
* Stream di byte: InputStream, Outputstream ed esempi di sottoclassi. &lt;br /&gt;
* I riferimenti predefiniti System.in, System.err, System.out (ContaLettere.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere-0.java lettura da tastiera], [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere.java lettura da file o da tastiera]).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 10-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab11.pdf Traccia 11]&lt;br /&gt;
&lt;br /&gt;
* Input e output di base con le librerie standard di Java. &lt;br /&gt;
* Un esercizio complessivo ([http://homes.dico.unimi.it/prog/turno3-05/lab/progettosetgen/minishell.pdf MiniShell]) sugli stream e le eccezioni.&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16685</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16685"/>
		<updated>2007-01-11T13:53:45Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* Lezione di lunedì 08-01-2007 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
*'''Lezione sospesa 22 dicembre'''&lt;br /&gt;
Venerdì 22 dicembre le strutture dell'Università chiuderanno in anticipo. Pertanto la lezioni del corso di Programmazione non si terrà.&lt;br /&gt;
&lt;br /&gt;
=== Appelli ===&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 17 gennaio&lt;br /&gt;
*'''Seconda Prova in itinere (lab)''' 19 gennaio&lt;br /&gt;
&lt;br /&gt;
====Teoria====&lt;br /&gt;
&lt;br /&gt;
* Primo compitino teoria: 13 novembre&lt;br /&gt;
* Secondo compitino teoria: 17 gennaio&lt;br /&gt;
* Esame orale conclusivo&lt;br /&gt;
&lt;br /&gt;
Il risultato del primo compitino non pregiudica l'accesso al secondo&lt;br /&gt;
&lt;br /&gt;
====Laboratorio====&lt;br /&gt;
&lt;br /&gt;
Sono previste prove in itinere (esercitazioni in aula).&lt;br /&gt;
 &lt;br /&gt;
La prima è stata mercoledì 15 novembre.&lt;br /&gt;
&lt;br /&gt;
La seconda sarà venerdì 19 gennaio.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
*''[http://pighizzini.dico.unimi.it/jb/doc/ ProgDoc] documentazione del package Prog''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab9.pdf Traccia 9]&lt;br /&gt;
 &lt;br /&gt;
* Estendere la classe Persona del package labprog.&lt;br /&gt;
* La classe Vector&lt;br /&gt;
* Implementazione di un package d'utilità per l'aritmetica in precisione illimitata.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 18-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Esempio: calcolatrice in notazione postfissa; studio e gestione delle situazioni anomale. &lt;br /&gt;
* Come sollevare le eccezioni: l'istruzione throw. &lt;br /&gt;
* Come definire nuove eccezioni. &lt;br /&gt;
* Classificazione delle eccezioni: eccezioni controllate e non controllate. &lt;br /&gt;
* Come delegare le eccezioni (throws).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 20-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab10.pdf Traccia 10]&lt;br /&gt;
&lt;br /&gt;
* Intercettare le eccezioni non controllate per gestire gli errori in fase d'esecuzione. &lt;br /&gt;
* Lettura di un file con il package prog: gestione degli errori. &lt;br /&gt;
* Copia di un file di testo: gestione degli errori.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 08-01-2007 ===&lt;br /&gt;
&lt;br /&gt;
* L'input/output standard (package java.io). &lt;br /&gt;
* Stream di caratteri: le classi Reader, FileReader, BufferedReader (VisualizzaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-0.java mediante uso di FileReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-1.java mediante uso di BufferedReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile.java con una semplice gestione delle eccezioni]); &lt;br /&gt;
* le classi Writer, FileWriter, BufferedWriter (CopiaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile.java mediante FileWriter], [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile-0.java mediante BufferedWriter]). &lt;br /&gt;
* Stream di byte: InputStream, Outputstream ed esempi di sottoclassi. &lt;br /&gt;
* I riferimenti predefiniti System.in, System.err, System.out (ContaLettere.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere-0.java lettura da tastiera], [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere.java lettura da file o da tastiera]).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 10-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab11.pdf Traccia 11]&lt;br /&gt;
&lt;br /&gt;
* Input e output di base con le librerie standard di Java. &lt;br /&gt;
* Un esercizio complessivo ([http://homes.dico.unimi.it/prog/turno3-05/lab/progettosetgen/minishell.pdf MiniShell]) sugli stream e le eccezioni.&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16684</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16684"/>
		<updated>2007-01-11T13:53:03Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* Lezione di mercoledì 20-12-2006 (lab) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
*'''Lezione sospesa 22 dicembre'''&lt;br /&gt;
Venerdì 22 dicembre le strutture dell'Università chiuderanno in anticipo. Pertanto la lezioni del corso di Programmazione non si terrà.&lt;br /&gt;
&lt;br /&gt;
=== Appelli ===&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 17 gennaio&lt;br /&gt;
*'''Seconda Prova in itinere (lab)''' 19 gennaio&lt;br /&gt;
&lt;br /&gt;
====Teoria====&lt;br /&gt;
&lt;br /&gt;
* Primo compitino teoria: 13 novembre&lt;br /&gt;
* Secondo compitino teoria: 17 gennaio&lt;br /&gt;
* Esame orale conclusivo&lt;br /&gt;
&lt;br /&gt;
Il risultato del primo compitino non pregiudica l'accesso al secondo&lt;br /&gt;
&lt;br /&gt;
====Laboratorio====&lt;br /&gt;
&lt;br /&gt;
Sono previste prove in itinere (esercitazioni in aula).&lt;br /&gt;
 &lt;br /&gt;
La prima è stata mercoledì 15 novembre.&lt;br /&gt;
&lt;br /&gt;
La seconda sarà venerdì 19 gennaio.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
*''[http://pighizzini.dico.unimi.it/jb/doc/ ProgDoc] documentazione del package Prog''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab9.pdf Traccia 9]&lt;br /&gt;
 &lt;br /&gt;
* Estendere la classe Persona del package labprog.&lt;br /&gt;
* La classe Vector&lt;br /&gt;
* Implementazione di un package d'utilità per l'aritmetica in precisione illimitata.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 18-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Esempio: calcolatrice in notazione postfissa; studio e gestione delle situazioni anomale. &lt;br /&gt;
* Come sollevare le eccezioni: l'istruzione throw. &lt;br /&gt;
* Come definire nuove eccezioni. &lt;br /&gt;
* Classificazione delle eccezioni: eccezioni controllate e non controllate. &lt;br /&gt;
* Come delegare le eccezioni (throws).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 20-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab10.pdf Traccia 10]&lt;br /&gt;
&lt;br /&gt;
* Intercettare le eccezioni non controllate per gestire gli errori in fase d'esecuzione. &lt;br /&gt;
* Lettura di un file con il package prog: gestione degli errori. &lt;br /&gt;
* Copia di un file di testo: gestione degli errori.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 08-01-2007 ===&lt;br /&gt;
&lt;br /&gt;
* L'input/output standard (package java.io). &lt;br /&gt;
* Stream di caratteri: le classi Reader, FileReader, BufferedReader (VisualizzaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-0.java mediante uso di FileReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile-1.java mediante uso di BufferedReader], [http://homes.dico.unimi.it/prog/turno3-06/sw/VisualizzaFile.java con una semplice gestione delle eccezioni]); &lt;br /&gt;
* le classi Writer, FileWriter, BufferedWriter (CopiaFile.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile.javamediante FileWriter], [http://homes.dico.unimi.it/prog/turno3-06/sw/CopiaFile-0.java mediante BufferedWriter]). &lt;br /&gt;
* Stream di byte: InputStream, Outputstream ed esempi di sottoclassi. &lt;br /&gt;
* I riferimenti predefiniti System.in, System.err, System.out (ContaLettere.java: [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere-0.java lettura da tastiera], [http://homes.dico.unimi.it/prog/turno3-06/sw/ContaLettere.java lettura da file o da tastiera]).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 10-01-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab11.pdf Traccia 11]&lt;br /&gt;
&lt;br /&gt;
* Input e output di base con le librerie standard di Java. &lt;br /&gt;
* Un esercizio complessivo ([http://homes.dico.unimi.it/prog/turno3-05/lab/progettosetgen/minishell.pdf MiniShell]) sugli stream e le eccezioni.&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16661</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16661"/>
		<updated>2007-01-07T11:18:23Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* Lezione di mercoledì 20-12-2006 (lab) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
*'''Lezione sospesa 22 dicembre'''&lt;br /&gt;
Venerdì 22 dicembre le strutture dell'Università chiuderanno in anticipo. Pertanto la lezioni del corso di Programmazione non si terrà.&lt;br /&gt;
&lt;br /&gt;
=== Appelli ===&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 17 gennaio&lt;br /&gt;
*'''Seconda Prova in itinere (lab)''' 19 gennaio&lt;br /&gt;
&lt;br /&gt;
====Teoria====&lt;br /&gt;
&lt;br /&gt;
* Primo compitino teoria: 13 novembre&lt;br /&gt;
* Secondo compitino teoria: 17 gennaio&lt;br /&gt;
* Esame orale conclusivo&lt;br /&gt;
&lt;br /&gt;
Il risultato del primo compitino non pregiudica l'accesso al secondo&lt;br /&gt;
&lt;br /&gt;
====Laboratorio====&lt;br /&gt;
&lt;br /&gt;
Sono previste prove in itinere (esercitazioni in aula).&lt;br /&gt;
 &lt;br /&gt;
La prima è stata mercoledì 15 novembre.&lt;br /&gt;
&lt;br /&gt;
La seconda sarà venerdì 19 gennaio.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
*''[http://pighizzini.dico.unimi.it/jb/doc/ ProgDoc] documentazione del package Prog''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab9.pdf Traccia 9]&lt;br /&gt;
 &lt;br /&gt;
* Estendere la classe Persona del package labprog.&lt;br /&gt;
* La classe Vector&lt;br /&gt;
* Implementazione di un package d'utilità per l'aritmetica in precisione illimitata.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 18-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Esempio: calcolatrice in notazione postfissa; studio e gestione delle situazioni anomale. &lt;br /&gt;
* Come sollevare le eccezioni: l'istruzione throw. &lt;br /&gt;
* Come definire nuove eccezioni. &lt;br /&gt;
* Classificazione delle eccezioni: eccezioni controllate e non controllate. &lt;br /&gt;
* Come delegare le eccezioni (throws).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 20-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab10.pdf Traccia 10]&lt;br /&gt;
&lt;br /&gt;
* Intercettare le eccezioni non controllate per gestire gli errori in fase d'esecuzione. &lt;br /&gt;
* Lettura di un file con il package prog: gestione degli errori. &lt;br /&gt;
* Copia di un file di testo: gestione degli errori.&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16660</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16660"/>
		<updated>2007-01-07T11:17:28Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* Lezione di mercoledì 13-12-2006 (lab) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
*'''Lezione sospesa 22 dicembre'''&lt;br /&gt;
Venerdì 22 dicembre le strutture dell'Università chiuderanno in anticipo. Pertanto la lezioni del corso di Programmazione non si terrà.&lt;br /&gt;
&lt;br /&gt;
=== Appelli ===&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 17 gennaio&lt;br /&gt;
*'''Seconda Prova in itinere (lab)''' 19 gennaio&lt;br /&gt;
&lt;br /&gt;
====Teoria====&lt;br /&gt;
&lt;br /&gt;
* Primo compitino teoria: 13 novembre&lt;br /&gt;
* Secondo compitino teoria: 17 gennaio&lt;br /&gt;
* Esame orale conclusivo&lt;br /&gt;
&lt;br /&gt;
Il risultato del primo compitino non pregiudica l'accesso al secondo&lt;br /&gt;
&lt;br /&gt;
====Laboratorio====&lt;br /&gt;
&lt;br /&gt;
Sono previste prove in itinere (esercitazioni in aula).&lt;br /&gt;
 &lt;br /&gt;
La prima è stata mercoledì 15 novembre.&lt;br /&gt;
&lt;br /&gt;
La seconda sarà venerdì 19 gennaio.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
*''[http://pighizzini.dico.unimi.it/jb/doc/ ProgDoc] documentazione del package Prog''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab9.pdf Traccia 9]&lt;br /&gt;
 &lt;br /&gt;
* Estendere la classe Persona del package labprog.&lt;br /&gt;
* La classe Vector&lt;br /&gt;
* Implementazione di un package d'utilità per l'aritmetica in precisione illimitata.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 18-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Esempio: calcolatrice in notazione postfissa; studio e gestione delle situazioni anomale. &lt;br /&gt;
* Come sollevare le eccezioni: l'istruzione throw. &lt;br /&gt;
* Come definire nuove eccezioni. &lt;br /&gt;
* Classificazione delle eccezioni: eccezioni controllate e non controllate. &lt;br /&gt;
* Come delegare le eccezioni (throws).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 20-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
Traccia 10&lt;br /&gt;
&lt;br /&gt;
* Eccezioni&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16632</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16632"/>
		<updated>2006-12-21T10:30:14Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* Diario del corso */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
*'''Lezione sospesa 22 dicembre'''&lt;br /&gt;
Venerdì 22 dicembre le strutture dell'Università chiuderanno in anticipo. Pertanto la lezioni del corso di Programmazione non si terrà.&lt;br /&gt;
&lt;br /&gt;
=== Appelli ===&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 17 gennaio&lt;br /&gt;
*'''Seconda Prova in itinere (lab)''' 19 gennaio&lt;br /&gt;
&lt;br /&gt;
====Teoria====&lt;br /&gt;
&lt;br /&gt;
* Primo compitino teoria: 13 novembre&lt;br /&gt;
* Secondo compitino teoria: 17 gennaio&lt;br /&gt;
* Esame orale conclusivo&lt;br /&gt;
&lt;br /&gt;
Il risultato del primo compitino non pregiudica l'accesso al secondo&lt;br /&gt;
&lt;br /&gt;
====Laboratorio====&lt;br /&gt;
&lt;br /&gt;
Sono previste prove in itinere (esercitazioni in aula).&lt;br /&gt;
 &lt;br /&gt;
La prima è stata mercoledì 15 novembre.&lt;br /&gt;
&lt;br /&gt;
La seconda sarà venerdì 19 gennaio.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
*''[http://pighizzini.dico.unimi.it/jb/doc/ ProgDoc] documentazione del package Prog''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
Traccia 9&lt;br /&gt;
&lt;br /&gt;
* La classe Vector&lt;br /&gt;
* Implementazione di classi e interfacce per riprodurre numeri di lunghezza illimitata&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 18-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Esempio: calcolatrice in notazione postfissa; studio e gestione delle situazioni anomale. &lt;br /&gt;
* Come sollevare le eccezioni: l'istruzione throw. &lt;br /&gt;
* Come definire nuove eccezioni. &lt;br /&gt;
* Classificazione delle eccezioni: eccezioni controllate e non controllate. &lt;br /&gt;
* Come delegare le eccezioni (throws).&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 20-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
Traccia 10&lt;br /&gt;
&lt;br /&gt;
* Eccezioni&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16631</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16631"/>
		<updated>2006-12-21T10:27:06Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* Laboratorio */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
*'''Lezione sospesa 22 dicembre'''&lt;br /&gt;
Venerdì 22 dicembre le strutture dell'Università chiuderanno in anticipo. Pertanto la lezioni del corso di Programmazione non si terrà.&lt;br /&gt;
&lt;br /&gt;
=== Appelli ===&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 17 gennaio&lt;br /&gt;
*'''Seconda Prova in itinere (lab)''' 19 gennaio&lt;br /&gt;
&lt;br /&gt;
====Teoria====&lt;br /&gt;
&lt;br /&gt;
* Primo compitino teoria: 13 novembre&lt;br /&gt;
* Secondo compitino teoria: 17 gennaio&lt;br /&gt;
* Esame orale conclusivo&lt;br /&gt;
&lt;br /&gt;
Il risultato del primo compitino non pregiudica l'accesso al secondo&lt;br /&gt;
&lt;br /&gt;
====Laboratorio====&lt;br /&gt;
&lt;br /&gt;
Sono previste prove in itinere (esercitazioni in aula).&lt;br /&gt;
 &lt;br /&gt;
La prima è stata mercoledì 15 novembre.&lt;br /&gt;
&lt;br /&gt;
La seconda sarà venerdì 19 gennaio.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
*''[http://pighizzini.dico.unimi.it/jb/doc/ ProgDoc] documentazione del package Prog''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
Traccia 9&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16629</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16629"/>
		<updated>2006-12-20T18:12:43Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* Appelli */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
*'''Lezione sospesa 22 dicembre'''&lt;br /&gt;
Venerdì 22 dicembre le strutture dell'Università chiuderanno in anticipo. Pertanto la lezioni del corso di Programmazione non si terrà.&lt;br /&gt;
&lt;br /&gt;
=== Appelli ===&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 17 gennaio&lt;br /&gt;
*'''Seconda Prova in itinere (lab)''' 19 gennaio&lt;br /&gt;
&lt;br /&gt;
====Teoria====&lt;br /&gt;
&lt;br /&gt;
* Primo compitino teoria: 13 novembre&lt;br /&gt;
* Secondo compitino teoria: 17 gennaio&lt;br /&gt;
* Esame orale conclusivo&lt;br /&gt;
&lt;br /&gt;
Il risultato del primo compitino non pregiudica l'accesso al secondo&lt;br /&gt;
&lt;br /&gt;
====Laboratorio====&lt;br /&gt;
&lt;br /&gt;
Sono previste prove in itinere (esercitazioni in aula). &lt;br /&gt;
La prima è stata mercoledì 15 novembre.&lt;br /&gt;
La seconda sarà venerdì 19 gennaio.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
*''[http://pighizzini.dico.unimi.it/jb/doc/ ProgDoc] documentazione del package Prog''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
Traccia 9&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16620</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16620"/>
		<updated>2006-12-18T21:44:34Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* Appelli */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
*'''Lezione sospesa 22 dicembre'''&lt;br /&gt;
Venerdì 22 dicembre le strutture dell'Università chiuderanno in anticipo. Pertanto la lezioni del corso di Programmazione non si terrà.&lt;br /&gt;
&lt;br /&gt;
=== Appelli ===&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 15 0 17 gennaio&lt;br /&gt;
&lt;br /&gt;
====Teoria====&lt;br /&gt;
&lt;br /&gt;
* Primo compitino teoria: 13 novembre&lt;br /&gt;
* Secondo compitino teoria: a gennaio (15 o 17)&lt;br /&gt;
* Esame orale conclusivo&lt;br /&gt;
&lt;br /&gt;
Il risultato del primo compitino non pregiudica l'accesso al secondo&lt;br /&gt;
&lt;br /&gt;
====Laboratorio====&lt;br /&gt;
&lt;br /&gt;
Sono previste prove in itinere (esercitazioni in aula). &lt;br /&gt;
La prima è stata mercoledì 15 novembre.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
*''[http://pighizzini.dico.unimi.it/jb/doc/ ProgDoc] documentazione del package Prog''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
Traccia 9&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16607</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16607"/>
		<updated>2006-12-16T12:44:58Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* Altro materiale consigliato */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
=== Appelli ===&lt;br /&gt;
*'''Lezione sospesa 22 dicembre'''&lt;br /&gt;
Venerdì 22 dicembre le strutture dell'Università chiuderanno in anticipo. Pertanto la lezioni del corso di Programmazione non si terrà.&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 15 0 17 gennaio&lt;br /&gt;
&lt;br /&gt;
====Teoria====&lt;br /&gt;
&lt;br /&gt;
* Primo compitino teoria: 13 novembre&lt;br /&gt;
* Secondo compitino teoria: a gennaio (15 o 17)&lt;br /&gt;
* Esame orale conclusivo&lt;br /&gt;
&lt;br /&gt;
Il risultato del primo compitino non pregiudica l'accesso al secondo&lt;br /&gt;
&lt;br /&gt;
====Laboratorio====&lt;br /&gt;
&lt;br /&gt;
Sono previste prove in itinere (esercitazioni in aula). &lt;br /&gt;
La prima è stata mercoledì 15 novembre.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
*''[http://pighizzini.dico.unimi.it/jb/doc/ ProgDoc] documentazione del package Prog''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
Traccia 9&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16606</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16606"/>
		<updated>2006-12-16T12:43:22Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* Risorse Software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
=== Appelli ===&lt;br /&gt;
*'''Lezione sospesa 22 dicembre'''&lt;br /&gt;
Venerdì 22 dicembre le strutture dell'Università chiuderanno in anticipo. Pertanto la lezioni del corso di Programmazione non si terrà.&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 15 0 17 gennaio&lt;br /&gt;
&lt;br /&gt;
====Teoria====&lt;br /&gt;
&lt;br /&gt;
* Primo compitino teoria: 13 novembre&lt;br /&gt;
* Secondo compitino teoria: a gennaio (15 o 17)&lt;br /&gt;
* Esame orale conclusivo&lt;br /&gt;
&lt;br /&gt;
Il risultato del primo compitino non pregiudica l'accesso al secondo&lt;br /&gt;
&lt;br /&gt;
====Laboratorio====&lt;br /&gt;
&lt;br /&gt;
Sono previste prove in itinere (esercitazioni in aula). &lt;br /&gt;
La prima è stata mercoledì 15 novembre.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
Traccia 9&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16605</id>
		<title>Programmazione Turno 3/2006-2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione_Turno_3/2006-2007&amp;diff=16605"/>
		<updated>2006-12-16T12:43:03Z</updated>

		<summary type="html">&lt;p&gt;Smirne: /* Risorse Software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Categoria:Corsi 2006-2007]]&lt;br /&gt;
&amp;lt;!-- non rimuovere ASSOLUTAMENTE le linee precedenti, servono per la categorizzazione della pagina (credo)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
=== Appelli ===&lt;br /&gt;
*'''Lezione sospesa 22 dicembre'''&lt;br /&gt;
Venerdì 22 dicembre le strutture dell'Università chiuderanno in anticipo. Pertanto la lezioni del corso di Programmazione non si terrà.&lt;br /&gt;
&lt;br /&gt;
*'''Primo Compitino''' 13 novembre  ([http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione] - [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati])&lt;br /&gt;
*'''Prima prova in itinere (lab)''' 15 novembre ([http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Testo] - [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati])&lt;br /&gt;
*'''Secondo Compitino''' 15 0 17 gennaio&lt;br /&gt;
&lt;br /&gt;
====Teoria====&lt;br /&gt;
&lt;br /&gt;
* Primo compitino teoria: 13 novembre&lt;br /&gt;
* Secondo compitino teoria: a gennaio (15 o 17)&lt;br /&gt;
* Esame orale conclusivo&lt;br /&gt;
&lt;br /&gt;
Il risultato del primo compitino non pregiudica l'accesso al secondo&lt;br /&gt;
&lt;br /&gt;
====Laboratorio====&lt;br /&gt;
&lt;br /&gt;
Sono previste prove in itinere (esercitazioni in aula). &lt;br /&gt;
La prima è stata mercoledì 15 novembre.&lt;br /&gt;
&lt;br /&gt;
====Esercizi====&lt;br /&gt;
&lt;br /&gt;
Gli esercizi proposti in classe e sul sito per la parte di programmazione (non lab) possono essere inviati via mail al professore, all'indirizzo pighizzini _at_ dico.unimi.it. In classe verranno corretti e analizzati (in forma anonima). &lt;br /&gt;
Esercizi proposti sul sito: &lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi A.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi B.]&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf Esercizi aggiuntivi C.]&lt;br /&gt;
&lt;br /&gt;
== Anni precedenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Programmazione Turno 3/2005-2006|Diario del Corso 2005/06]]&lt;br /&gt;
* [[Programmazione Turno 3/2003-2004|Diario del Corso 2003/04]]&lt;br /&gt;
&lt;br /&gt;
== Informazioni generali ==&lt;br /&gt;
&lt;br /&gt;
=== Docenti ===&lt;br /&gt;
Prof. '''[[Giovanni Pighizzini|Pighizzini]]''' / Prof. '''[[Vincenzo Marra|Marra]]''' per il laboratorio.&lt;br /&gt;
&lt;br /&gt;
=== Corsi di laurea ===&lt;br /&gt;
&lt;br /&gt;
*[[:Categoria:Corsi Informatica|Informatica]]&lt;br /&gt;
&lt;br /&gt;
=== Orari e luogo delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Lunedì!! Mercoledì!! Venerdì&lt;br /&gt;
|-&lt;br /&gt;
|  18:30-21:30 Aula 201 (celoria) ||  18:30-21:30 Aula 309 (LAB, celoria) || 18:30-21:30 Aula 201 (celoria) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Informazioni specifiche ==&lt;br /&gt;
=== Siti del corso ===&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/ Pagina generale dei corsi di programmazione]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/ Pagina del turno III (Pighizzini)]&lt;br /&gt;
*[http://homes.dico.unimi.it/prog/turno3-06/lab/ Laboratorio turno III (Marra)]&lt;br /&gt;
&lt;br /&gt;
=== Forum del corso, e affini ===&lt;br /&gt;
* [http://www.dsy.it/forum/forumdisplay.php?s=&amp;amp;forumid=259 Dsy.it]&lt;br /&gt;
&lt;br /&gt;
=== Testi ===&lt;br /&gt;
&lt;br /&gt;
''[[Dai fondamenti agli oggetti - Pighizzini Ferrari|Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.)]]'' - ''[[Giovanni Pighizzini]] - [[Mauro Ferrari]]'' edito da Pearson Addison Wesley&lt;br /&gt;
 &lt;br /&gt;
(il libro contiene anche un CD con librerie che saranno usate durante il corso)&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale consigliato ===&lt;br /&gt;
&lt;br /&gt;
*''K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/ Java Technology] sito internet della Sun''&lt;br /&gt;
&lt;br /&gt;
*''[http://java.sun.com/j2se/1.5.0/docs/api/ Javadoc] documentazione librerie standard''&lt;br /&gt;
&lt;br /&gt;
=== Risorse Software ===&lt;br /&gt;
''Il package [http://pighizzini.dico.unimi.it/jb/ prog], utilizzato in molti esempi del corso, e fornito con il libro di testo.''&lt;br /&gt;
''Il package [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/labprog.zip labprog], utilizzato a laboratorio.''&lt;br /&gt;
&lt;br /&gt;
=== Video delle lezioni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fruibili via streaming con account silab [http://vc.dsi.unimi.it/ http://vc.dsi.unimi.it/]&lt;br /&gt;
&lt;br /&gt;
Si possono copiare facendo richiesta alla segreteria didattica in via Comelico.&lt;br /&gt;
&lt;br /&gt;
=== Appunti ===&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=5919 Appunti vari degli anni passati]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=e888c20abaf400af960c749e4bad5364&amp;amp;threadid=24324 Appunti in generale sulla programmazione]&lt;br /&gt;
&lt;br /&gt;
=== Altro materiale in Internet ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.claudiodesio.com/download/oo_&amp;amp;&amp;amp;_java_5.zip Manuale Java 5]&lt;br /&gt;
*[http://www.java-net.it/docs/mattone/mattone.zip Java Mattone dopo Mattone]&lt;br /&gt;
*[http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=16402 Manualetto Java]&lt;br /&gt;
&lt;br /&gt;
=== Esami passati, tesine, compiti .. ===&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-04/compitini/ http://homes.dico.unimi.it/prog/turno3-04/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/ http://homes.dico.unimi.it/prog/turnoSerale-03/compitini/]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno2-02/compitini/ http://homes.dico.unimi.it/prog/turno2-02/compitini/]&lt;br /&gt;
&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=5258 Progettini 2002/03]&lt;br /&gt;
* [http://www.dsy.it/forum/showthread.php?s=&amp;amp;threadid=2563 Domande orale]&lt;br /&gt;
&lt;br /&gt;
== Diario del corso ==&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 2-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Presentazione del corso. &lt;br /&gt;
* L'evoluzione della programmazione. &lt;br /&gt;
* Algoritmi e Programmi. Informazione. &lt;br /&gt;
* Unità di misura dell'informazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 4-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Dispositivi hardware. &lt;br /&gt;
* Classificazione del software.&lt;br /&gt;
* La macchina di Von Neumann. &lt;br /&gt;
* Linguaggi macchina e assembler. &lt;br /&gt;
* Un esempio di linguaggio assembler. &lt;br /&gt;
* Dai linguaggi macchina ai linguaggi ad alto livello.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 6-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Compilatori, interpreti, assemblatori, editor, linker. &lt;br /&gt;
* Il compilatore Java. &lt;br /&gt;
* Il bytecode e la Java Virtual Machine. &lt;br /&gt;
* La programmazione strutturata: sequenza e selezione. &lt;br /&gt;
* Variabili e assegnamenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedì 9-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* La programmazione strutturata: iterazione. Esempi.&lt;br /&gt;
* Cicli infiniti. &lt;br /&gt;
* Dalla programmazione strutturata alla programmazione a oggetti.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] scrivere pseudocodice per:'''&lt;br /&gt;
&lt;br /&gt;
* elevamento a potenza (usando la moltiplicazione)&lt;br /&gt;
* elevamento a potenza (senza usare la moltiplicazione)&lt;br /&gt;
* divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari&lt;br /&gt;
* partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledi' 11-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche. &lt;br /&gt;
* Alcuni aspetti della grammatica del linguaggio Java. &lt;br /&gt;
* Il primo programma Java. &lt;br /&gt;
* Protocolli e contratti. &lt;br /&gt;
* Costruttori e operatore new. &lt;br /&gt;
* Invocazione di metodi. &lt;br /&gt;
* Variabili per riferimenti.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì' 13-10-06 (Lab) === &lt;br /&gt;
&lt;br /&gt;
* Introduzione al Laboratorio di Programmazione.&lt;br /&gt;
* Installazione di J2SE per sistemi Linux e Windows.&lt;br /&gt;
* Compilazione ed esecuzione di programmi Java.&lt;br /&gt;
* La variabile d'ambiente classpath.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Lunedi' 16-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Invocazioni di metodi e costruttori (continuazione).&lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager.&lt;br /&gt;
* Uso delle direttive d'importazione.&lt;br /&gt;
* La classe String. &lt;br /&gt;
* Prototipi e segnature dei metodi.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Elevare alla seconda una frazione, con i metodi della classe Frazione&lt;br /&gt;
* Elevare alla seconda una frazione, senza i metodi della classe Frazione&lt;br /&gt;
* Sommare due frazioni, senza i metodi della classe Frazione&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Mercoledì 18-10-06 (Lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab1.pdf traccia1]&lt;br /&gt;
&lt;br /&gt;
* Inizializzazione variabili di sistema&lt;br /&gt;
* Ciao Mondo. &lt;br /&gt;
* Importare classi da un package. &lt;br /&gt;
* Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io. &lt;br /&gt;
* Il costrutto sequenza della programmazione strutturata. &lt;br /&gt;
* Il tipo primitivo int. &lt;br /&gt;
* Usare la classe Frazione del package prog.utili&lt;br /&gt;
&lt;br /&gt;
=== Lezione di Venerdì 20-10-06 ===&lt;br /&gt;
 &lt;br /&gt;
* Variabili e tipi. &lt;br /&gt;
* Tipi primitivi e tipi riferimento. &lt;br /&gt;
* Esercizi ed esempi con le classi Frazione, String e Intero.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)&lt;br /&gt;
* preso un numero, scriverlo in lettere e scrivere il numero di lettere&lt;br /&gt;
* circondare in un riquadro di asterischi una parola fornita in input&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 23-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* Il costrutto di selezione in Java. (IF)&lt;br /&gt;
* Il tipo primitivo boolean.&lt;br /&gt;
&lt;br /&gt;
'''[Compito] Scrivere programma per'''&lt;br /&gt;
&lt;br /&gt;
* Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire. &lt;br /&gt;
* Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.&lt;br /&gt;
&lt;br /&gt;
Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 25-10-06 (lab) ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab2.pdf traccia2]&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi int e boolean. &lt;br /&gt;
* Il tipo String. &lt;br /&gt;
* Il costrutto selezione della programmazione strutturata. &lt;br /&gt;
* Esercizi con le classi Frazione e Data del package prog.utili. &lt;br /&gt;
* Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 27-10-06 ===&lt;br /&gt;
&lt;br /&gt;
* I cicli do...while e while.&lt;br /&gt;
* Il ciclo for. &lt;br /&gt;
* Quando usare e quando non usare il ciclo for.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziA.pdf Esercizi aggiuntivi gruppo A.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 30-10-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Il ciclo for: ulteriori esempi. &lt;br /&gt;
* Le istruzioni break e continue. &lt;br /&gt;
* Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata. &lt;br /&gt;
* La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 03-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab3.pdf traccia3]&lt;br /&gt;
&lt;br /&gt;
* Il costrutto iterazione della programmazione strutturata. &lt;br /&gt;
* Condizione di terminazione in testa e in coda nei cicli while. &lt;br /&gt;
* Cicli for. &lt;br /&gt;
* Il tipo StringBuffer.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 06-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le espressioni e gli effetti collaterali. &lt;br /&gt;
* La lazy evaluation. &lt;br /&gt;
* L'operatore condizionale. &lt;br /&gt;
* I tipi numerici interi. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi. &lt;br /&gt;
* Classi involucro. &lt;br /&gt;
* Metodi statici.&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/eserciziB.pdf Esercizi aggiuntivi gruppo B.] da inviare al prof tramite mail&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 08-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab4.pdf traccia4]&lt;br /&gt;
&lt;br /&gt;
* Ancora esercizi con la programmazione strutturata. &lt;br /&gt;
* I metodi statici. &lt;br /&gt;
&lt;br /&gt;
''Nota'' Per una svista del docente di Laboratorio, la traccia di questa lezione richiede nozioni sui metodi statici più approfondite di quelle impartite all'8.XI.06 nel Corso di Programmazione. In caso di difficoltà, gli studenti ignorino tutti i riferimenti ai metodi statici nella traccia, e implementino tutte le soluzioni nel solo metodo main.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 10-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* I tipi primitivi in virgola mobile.&lt;br /&gt;
* Conversioni tra valori interi e valori in virgola mobile.&lt;br /&gt;
* Perdita d'informazione e perdita di precisione. &lt;br /&gt;
* Il tipo char. &lt;br /&gt;
* Esercizi ed esempi:&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/ProvaNumeri.java ProvaNumeri.java] &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Lettere.java Lettere.java]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/sw/Scontrino.java Scontrino.java]&lt;br /&gt;
&lt;br /&gt;
=== Compitino di lunedì 13-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
Primo compitino di teoria:&lt;br /&gt;
&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/PrimoCompitino.pdf Testo]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/soluzione1.pdf Soluzione]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/compitini/risultati1.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 15-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
Prima prova in itinere con valutazione.&lt;br /&gt;
 &lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab5.pdf Traccia5]&lt;br /&gt;
* [http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/risultati1itinere.pdf Risultati]&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Tipi enumerativi. &lt;br /&gt;
* Istruzione switch. &lt;br /&gt;
* Array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 22-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab6.pdf Traccia6]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi di programmazione strutturata. &lt;br /&gt;
* L'istruzione switch per la selezione multipla. &lt;br /&gt;
* Uso delle classi involucro. &lt;br /&gt;
* Gli array. &lt;br /&gt;
* Ordinare e ricercare oggetti con gli array.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 20-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le classi Rettangolo e Quadrato. &lt;br /&gt;
* L'ereditarietà: superclassi e sottoclassi, supertipi e sottotipi.&lt;br /&gt;
* L'operatore instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 27-11-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Chiamate di metodi: compilazione ed esecuzione. &lt;br /&gt;
* Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi riferimento. &lt;br /&gt;
* Le classi Cerchio e Figura. &lt;br /&gt;
* Classi astratte. &lt;br /&gt;
* La classe Object e la gerarchia delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 29-11-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab7.pdf Traccia7]&lt;br /&gt;
&lt;br /&gt;
* Altri esercizi con gli array. &lt;br /&gt;
* La classe d'utilità StringTokenizer. &lt;br /&gt;
* Semantica del metodo Object.equals. &lt;br /&gt;
* Esercizi con i tipi generici. &lt;br /&gt;
* L'editarietà e l'istruzione instanceof.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 01-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Le interfacce Java.&lt;br /&gt;
* L'interfaccia Comparable.&lt;br /&gt;
* Esempi di classi che implementano Comparable.&lt;br /&gt;
* Interfacce e tipi riferimento.&lt;br /&gt;
* La gerarchia dei tipi. &lt;br /&gt;
* Esempi su gerarchia delle classi e gerarchia dei tipi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 04-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Cenni ai file di testo.&lt;br /&gt;
* esercizi aggiuntivi [http://homes.dico.unimi.it/prog/turno3-06/eserciziC.pdf gruppo C]&lt;br /&gt;
* Implementazione delle classi. &lt;br /&gt;
* Esempio: la classe Frazione. &lt;br /&gt;
* Implementazione dell'interfaccia Comparable da parte di Frazione.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 06-12-2006 (lab)===&lt;br /&gt;
&lt;br /&gt;
[http://homes.dico.unimi.it/prog/turno3-06/lab/docs/lezioni/lab8.pdf Traccia8]&lt;br /&gt;
&lt;br /&gt;
* Estensioni delle classi. &lt;br /&gt;
* Primi esempi di implementazione delle classi.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di lunedì 11-12-2006 ===&lt;br /&gt;
 &lt;br /&gt;
* Riepilogo sulla struttura delle classi.&lt;br /&gt;
* Organizzazione in package.&lt;br /&gt;
* Modificatori di visibilità public e private.&lt;br /&gt;
* Estensione di classi e implementazione di sottoclassi.&lt;br /&gt;
* Esempi: implementazione di Quadrato. &lt;br /&gt;
* Costruttori e gerarchia delle classi. &lt;br /&gt;
* Uso di this e di super.&lt;br /&gt;
&lt;br /&gt;
=== Lezione di mercoledì 13-12-2006 (lab) ===&lt;br /&gt;
&lt;br /&gt;
Traccia 9&lt;br /&gt;
&lt;br /&gt;
=== Lezione di venerdì 15-12-2006 ===&lt;br /&gt;
&lt;br /&gt;
* Implementazione della classe Figura. &lt;br /&gt;
* Le eccezioni: comportamento dei programmi in caso di eventi anomali. &lt;br /&gt;
* Come intercettare le eccezioni: il costrutto try/catch. &lt;br /&gt;
* La gerarchia delle eccezioni. &lt;br /&gt;
* Esempi d'uso del costrutto try/catch.&lt;/div&gt;</summary>
		<author><name>Smirne</name></author>
		
	</entry>
</feed>