Programmazione Turno 3/2006-2007

Da WikiDsy.
Versione del 7 nov 2006 alle 22:08 di Smirne (discussione | contributi) (Esercizi)


News

Primo compitino

Il primo compitino si terrà lunedì 13 novembre. Gli studenti si devono iscrivere entro mercoledì 8 novembre tramite il servizio SIFA. Gli studenti che devono ancora completare le procedure d'iscrizione possono lasciare il nome al docente, durante le lezioni.

Appelli

'Primo Compitino' 13 novembre

Teoria

  • Primo compitino teoria: 13 novembre
  • Secondo compitino teoria: a gennaio
  • Esame orale conclusivo

Laboratorio

Da definire con il professor Marra. Sono previste prove in itinere

Esercizi

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). Esercizi proposti sul sito:

Esercizi aggiuntivi A.

Esercizi aggiuntivi B.

Anni precedenti

Informazioni generali

Docenti

Prof. Pighizzini / Prof. Marra per il laboratorio.

Corsi di laurea

Orari e luogo delle lezioni

Lunedì Mercoledì Venerdì
18:30-21:30 Aula 201 (celoria) 18:30-21:30 Aula 309 (LAB, celoria) 18:30-21:30 Aula 201 (celoria)

Informazioni specifiche

Siti del corso

Forum del corso, e affini

Testi

Dai fondamenti agli oggetti - Corso di programmazione java (2^ ed.) - Giovanni Pighizzini - Mauro Ferrari edito da Pearson Addison Wesley

(il libro contiene anche un CD con librerie che saranno usate durante il corso)

Altro materiale consigliato

  • K. Arnold, J. Gosling, D. Holmes, Java - Manuale ufficiale, Addison Wesley, 2001.

Risorse Software

Il package prog, utilizzato in molti esempi del corso, e fornito con il libro di testo.

Video delle lezioni

Si possono copiare facendo richiesta alla segreteria didattica in via Comelico. Fruibili via streaming con account silab http://streaming.dico.unimi.it

Appunti

Altro materiale in Internet

Esami passati, tesine, compiti ..

Diario del corso

Lezione di Lunedì 2-10-06

  • Presentazione del corso.
  • L'evoluzione della programmazione.
  • Algoritmi e Programmi. Informazione.
  • Unità di misura dell'informazione.

Lezione di Mercoledì 4-10-06

  • Dispositivi hardware.
  • Classificazione del software.
  • La macchina di Von Neumann.
  • Linguaggi macchina e assembler.
  • Un esempio di linguaggio assembler.
  • Dai linguaggi macchina ai linguaggi ad alto livello.

Lezione di Venerdì 6-10-06

  • Compilatori, interpreti, assemblatori, editor, linker.
  • Il compilatore Java.
  • Il bytecode e la Java Virtual Machine.
  • La programmazione strutturata: sequenza e selezione.
  • Variabili e assegnamenti.

Lezione di Lunedì 9-10-06

  • La programmazione strutturata: iterazione. Esempi.
  • Cicli infiniti.
  • Dalla programmazione strutturata alla programmazione a oggetti.

[Compito] scrivere pseudocodice per:

  • elevamento a potenza (usando la moltiplicazione)
  • elevamento a potenza (senza usare la moltiplicazione)
  • divisione: ottenere quoziente e resto, utilizzando solo addizione e sottrazione
  • partendo da una sequenza di dati (che termina con 0) calcolare: il prodotto dei numeri forniti
  • partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri pari
  • partendo da una sequenza di dati (che termina con 0) calcolare: la somma dei numeri dispari

Lezione di Mercoledi' 11-10-06

  • Aspetti sintattici dei linguaggi: le grammatiche. BNF e carte sintattiche.
  • Alcuni aspetti della grammatica del linguaggio Java.
  • Il primo programma Java.
  • Protocolli e contratti.
  • Costruttori e operatore new.
  • Invocazione di metodi.
  • Variabili per riferimenti.

Lezione di Venerdì' 13-10-06 (Lab)

  • Introduzione al Laboratorio di Programmazione.
  • Installazione di J2SE per sistemi Linux e Windows.
  • Compilazione ed esecuzione di programmi Java.
  • La variabile d'ambiente classpath.

Lezione di Lunedi' 16-10-06

  • Invocazioni di metodi e costruttori (continuazione).
  • Le classi ConsoleInputManager e ConsoleOutputManager.
  • Uso delle direttive d'importazione.
  • La classe String.
  • Prototipi e segnature dei metodi.

[Compito] Scrivere programma per

  • Elevare alla seconda una frazione, con i metodi della classe Frazione
  • Elevare alla seconda una frazione, senza i metodi della classe Frazione
  • Sommare due frazioni, senza i metodi della classe Frazione

Lezione di Mercoledì 18-10-06 (Lab)

traccia1

  • Inizializzazione variabili di sistema
  • Ciao Mondo.
  • Importare classi da un package.
  • Le classi ConsoleInputManager e ConsoleOutputManager del package prog.io.
  • Il costrutto sequenza della programmazione strutturata.
  • Il tipo primitivo int.
  • Usare la classe Frazione del package prog.utili

Lezione di Venerdì 20-10-06

  • Variabili e tipi.
  • Tipi primitivi e tipi riferimento.
  • Esercizi ed esempi con le classi Frazione, String e Intero.

[Compito] Scrivere programma per

  • Eseguire operazioni e riportare i risultati in forma letterale. (con la classe Intero di prog.utili)
  • preso un numero, scriverlo in lettere e scrivere il numero di lettere
  • circondare in un riquadro di asterischi una parola fornita in input

Lezione di lunedì 23-10-06

  • Il costrutto di selezione in Java. (IF)
  • Il tipo primitivo boolean.

[Compito] Scrivere programma per

  • Farsi dare un prezzo in euro, con l'apposita classe del package prog. Convertire in lettere e in lire.
  • Farsi dare % di sconto, e applicarla. Farsi dare i soldi pagati e dare il resto o esplicitare il debito.

Il prof ha chiesto a chi vuole di mandargli gli esercizi dati per compito via mail (pighizzi _AT_ dico.unimi.it)

Lezione di mercoledì 25-10-06 (lab)

traccia2

  • I tipi primitivi int e boolean.
  • Il tipo String.
  • Il costrutto selezione della programmazione strutturata.
  • Esercizi con le classi Frazione e Data del package prog.utili.
  • Facoltativo: Input e output rudimentale con le finestre di dialogo di javax.swing.JOptionPane.

Lezione di venerdì 27-10-06

  • I cicli do...while e while.
  • Il ciclo for.
  • Quando usare e quando non usare il ciclo for.

Lezione di lunedì 30-10-2006

  • Il ciclo for: ulteriori esempi.
  • Le istruzioni break e continue.
  • Introduzione ai tipi generici: le classi Sequenza e SequenzaOrdinata.
  • La classe involucro Integer. Il tipo riferimento Integer e il tipo primitivo int: autoboxing e unboxing.

Lezione di venerdì 03-11-2006 (lab)

traccia3

  • Il costrutto iterazione della programmazione strutturata.
  • Condizione di terminazione in testa e in coda nei cicli while.
  • Cicli for.
  • Il tipo StringBuffer.

Lezione di lunedì 06-11-2006

  • Le espressioni e gli effetti collaterali.
  • La lazy evaluation.
  • L'operatore condizionale.
  • I tipi numerici interi.
  • Conversioni implicite (promozioni) ed esplicite (forzature o cast) tra tipi primitivi.
  • Classi involucro.
  • Metodi statici.