Differenze tra le versioni di "Programmazione Turno 3/2005-2006"

Da WikiDsy.
(NEWS)
(NEWS)
Riga 3: Riga 3:
  
 
'''SECONDO COMPITINO CONFERMATO PER VENERDI 2 DICEMBRE (non sarà necessaria nessuna iscrizione via sifa poichè il prof. Pighizzini ha già l'elenco dei partecipanti al primo compitino''')
 
'''SECONDO COMPITINO CONFERMATO PER VENERDI 2 DICEMBRE (non sarà necessaria nessuna iscrizione via sifa poichè il prof. Pighizzini ha già l'elenco dei partecipanti al primo compitino''')
'''IL TEMA DEL PRIMO PROGETTINO SARA DISPONIBILE SUL SITO [http://homes.dico.unimi.it/prog/turno3-05/lab/] DI LABORATORIO DI PROGRAMMAZIONE A PARTIRE DA VENERDI 2 DICEMBRE '''
+
'''IL TEMA DEL PRIMO PROGETTINO SARA DISPONIBILE SUL SITO DI LABORATORIO DI PROGRAMMAZIONE[http://homes.dico.unimi.it/prog/turno3-05/lab/] A PARTIRE DA VENERDI 2 DICEMBRE '''
  
 
== Informazioni generali ==
 
== Informazioni generali ==

Versione delle 08:26, 29 nov 2005

NEWS

SECONDO COMPITINO CONFERMATO PER VENERDI 2 DICEMBRE (non sarà necessaria nessuna iscrizione via sifa poichè il prof. Pighizzini ha già l'elenco dei partecipanti al primo compitino) IL TEMA DEL PRIMO PROGETTINO SARA DISPONIBILE SUL SITO DI LABORATORIO DI PROGRAMMAZIONE[1] A PARTIRE DA VENERDI 2 DICEMBRE

Informazioni generali

Programma del corso

http://www.dsi.unimi.it/files/occorrenza/programma/programma258676.doc

Docenti

Prof. Pighizzini / Prof. Marra per il laboratorio

Orari e luogo delle lezioni

Lunedì Mercoledì Venerdì
18:30-21:30 Aula 405 (celoria) 18:30-21:30 Aula 405 (celoria) 18:30-21:30 Aula 405 (celoria)

Orario di ricevimento studenti

Da definire.

Sito del corso

http://homes.dico.unimi.it/prog/turno3-05/

Materiale didattico

libro di testo:

dai fondamenti agli oggetti corso di programmazione java seconda edizione 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.

Java Technology sito internet della Sun

http://java.sun.com/

video delle lezioni tenute lo scorso anno

si possono copiare facendo richiesta alla segreteria didattica in via Comelico.

Fruibili via streaming con account silab http://streaming.dico.unimi.it

Vecchi compitini http://homes.dico.unimi.it/prog/turno3-04/compitini/

Modalità d'esame

Scritto + Orale + Progetto


3 compitini svolti in itinere, danno la possibilità di essere esentati dallo scritto di fine semestre infatti chi dovesse passare tutti e 3 i compitini non sarà tenuto a dare lo scritto.

Sarà inoltre possibile al posto che il progetto di fine semestre realizzare 3 progettini, il buon esito dei 3 progettini infatti darà la possibilità di non presentare il progetto di fine semestre.


Se sia i compitini che il progetto risultassero molto buoni non sarà necessario neanche dare l'orale.


il prof ha già dato 3 date indicative per i 3 compitini

  • 2 Novembre
  • 2 Dicembre
  • 20 Gennaio

I 3 progettini ed il progetto finale saranno organizzati da prof. Marra

Diario del corso

Lezione di Lunedì 3-10-05

Argomenti trattati nella lezione di oggi:

Lezione di Mercoledì 5-10-05

Argomenti trattati nella lezione di oggi :

esempi di calcolo utilizzo della memeoria per una pagina in ascii
esempio calcolo memoria per un'immagine 800X600 fatta con 2/16/256/65536 colori non compressa

  • Computer/calcolatrice le differenze
  • Modello di VON NEUMANN
  • La CPU fetch/decode/execute
  • I registri della CPU / la RAM e le sue Locazioni
  • LINGUAGGI ASSEMBLER
    • comandi trasferimento dati
    • comandi aritmetico logici
    • istruzioni di controllo e salto


esempio codice per sommare 2 numeri e salvarne il risultato nella cella X


Compito per casa

provare a scrivere con i comandi assembler imparati del codice che, utilizzando l'algoritmo di Euclide, calcoli il massimo comun divisore tra 2 numeri. supposto di avere i due numeri in 2 celle 101 e 102 e di dover lasciare il risultato nella cella 103 e tenendo presente che non mi interessa salvare i dati inizialmente contenuti nelle celle 101 e 102

Lezione di Venerdì 7-10-05

Argomenti trattati nella lezione di oggi :

  • correzione compito per casa (programmino in assembler)
    • osservazione approposito degli svantaggi della programmazione in assembler

esempio somma di interi su 2 architetture diverse (una con interi rappresentati da 16 bit ed una da 32 bit)

  • JAVA
    • il compilatore
    • il BYTECODE
    • la JVM
    • i vantaggi di questa architettura
    • svantaggi
      • prestazioni
    • le funzioni normalmente solte dal linker in Java ( controllo e colegamento negli altri ling. svolti dal linker)
    • le applet Java

Lezione di Lunedì 10-10-05

Argomenti trattati nella lezione di oggi :

  • Strutture fondamentali della programmazione strutturata
    • SEQUENZA
    • SELEZIONE
    • ITERAZIONE
  • esempio algoritmo di una telefonata utilizzando le strutture fondamentali
  • esempio algoritmo equazioni di secondo grado
  • Le variabili
    • istruzioni di assegnamento
  • ITERAZIONE
    • controllo in coda
    • controllo in testa
  • scrivere i seguenti algoritmi come compito
  • Algoritmo che legge una sequenza di numeri interi in ingresso e ne calcola la media
  • Algoritmo che legge una sequenza di numeri interi in ingresso e ne calcola quanti pari e quanti dispari
  • Algoritmo che legge 2 numeri interi e calcola il loro prodotto usando solo somma e sottrazione
  • Algoritmo che legge 2 numeri interi e calcola il quoziente e il resto del primo diviso il secondo usando solo addizione e sottrazione

Lezione di Mercoledì 12-10-05

(fino la fine del primo capitolo del libro)

  • Ulteriori esempi di programmazione strutturata
  • Aspetti sintattici dei linguaggi
    • le grammatiche
    • BNF e carte sintattiche

Lezione di Venerdì 14-10-05

Laboratorio di programmazione

  • Introduzione al corso (logistica, programma)
  • Installazione di Java 1.5 e della sua documentazione.
  • Editor per il codice sorgente (ad esempio, ConText)
  • Impostazione delle variabili di sistema PATH e CLASSPATH
  • Il primo programma Java: compilazione ed esecuzione

Lezione di Lunedì 17-10-05

  • Il primo programma Java
  • Protocolli e contratti
  • Costruttori
  • Invocazioni di metodi
  • Le classi ConsoleInputManager e ConsoleOutputManager

il package prog in cui sono contenute queste classi è fornito con il libro di testo ed è liberamente scaricabile da questo link http://homes.dico.unimi.it/prog/turno3-05/sw/prog.tar


Lezione di Mercoledì 19-10-05

  • La classe String
  • Prototipi e segnature dei metodi
  • Variabili e tipi di variabile
    • Primitivi
    • Riferimento
  • Esercizi ed esempi con le classi Frazione, String e Intero.


Lezione di Venerdì 21-10-05

laboratorio di programmazione

  • Struttura di una classe
  • esempio di una classe che utilizza il metodi della classe ConsoleInputManager del package prog
  • leggere la documentazione delle classi
  • esempio classe che ci fa meglio comprendere i riferimente in java ( è stato istanziato un oggetto della classe String dichiarando 2 riferimenti)
  • riferimenti null "espliciti" ed "impliciti"


Lezione di Lunedì 24-10-05

  • La selezione in Java
  • Il tipo primitivo Boolean


Lezione di Mercoledì 26-10-05

  • L'iterazione in Java
    • I cicli do-while e while
    • Il ciclo for
    • Quando usare e quando non usare il ciclo for


Lezione di Lunedì 31-10-05

laboratorio di programmazione

  • durante la lezione abbiamo implementato un rudimentale programma di gestione delle anagrafiche, che mediante l'utilizzo delle classi Persona e Archivio, archivia persone inserite dall'utente e su richiesta dell'utente le stampa a video ordinate alfabeticamente.

il programma è stato sviluppato usando un ciclo while e un menù che permette all'utente di scegliere se stampare le anagrafiche o inserirne di nuove


Lezione di Mercoledì 2-11-05

PRIMO COMPITINO

http://homes.dico.unimi.it/prog/turno3-05/compitini/#compitino1


Lezione di Venerdì 4-11-05

  • Esempi sul ciclo For
  • Break e Continue
  • La lazy evaluation
  • L'operatore condizionale
  • Promozioni e cast (tipi numerici interi primitivi)


Lezione di Lunedì 7-11-05

laboratorio di programmazione

  • il costrutto di selezione switch
  • la classe StringTokenizer
  • abbiamo modificato il codice del programma iniziato la scorsa lezione utilizzando switch al posto degli If annidati
  • usando la classe StringTokenizer abbiamo modificato il codice in modo che l'output del programma fosse un elenco numerato


Lezione di Mercoledì 9-11-05

  • I tipi primitivi a virgola mobile
    • esponente e mantissa
    • Virgola mobile IN JAVA
      • float e double


  • promozioni implicite e cast tra primitivi interi e a virgola mobile
    • perdita di precisione
    • perdita di informazione


  • il tipo primitivo char
    • sequenze di escape


  • l'istruzione switch


Lezione di Venerdì 11-11-05


Lezione di Lunedì 14-11-05

Laboratorio aula 311

  • impostato path e classpath sul pc del laboratorio
  • copia dei package prog e labprog
  • test funzionamento librerie
  • spiegazione del progetto che svolgeremo durante le ore passata sul pc in laboratorio
  • introduzione alla comunicazione di rete

seconda parte aula 200

  • programma per il controllo di stringhe palindrome , usando le classi specchio e finestra del package labprog
  • per casa migliorare il programma gestione delle anagrafiche
    • permettendo di cancellare un anagrafica selezionandone il numero
    • possibilità di fare una sempilce cifratura dei dati (usando la classe specchio)
    • possibilita di decifrare

Lezione di Mercoledì 16-11-05

  • Array ulteriori esempi
    • ArrayIndexOutofBoundsException
    • da fare per casa - modificare il programma svolto a lezione in modo che legga delle stringhe e le salvi in un array (fino a che l'utente risponde S al metodo ReadSiNo("inserire altra Stringa?") , se si arriva alla dimensione massima dell'array, il programma dovrà crearne uno nuovo di dimensione doppia ,copiando i riferimenti alle stringhe nel nuovo array
  • for each
  • Ereditarietà e polimorfismo
    • Superclassi e sottoclassi
    • supertipi e sottotipi
    • esempi con la classe rettangolo e quadrato
  • l'operatore instanceof ("riferimanto" instanceof "tipo riferimento")

Lezione di Venerdì 18-11-05

  • Ereditarietà e Polimorfismo
    • Chiamate di metodi: compilazione ed esecuzione
    • Promozioni e casting fra tipi riferimento
    • Classe cerchio e figura(classe astratta)
  • le classi astratte
  • la classe object

Lezione di Mercoledì 23-11-05

  • Le classi sequenza e sequenza ordinata
  • I Tipi generici
  • esercizio classe sequenza (creata oggetto sequenza in cui sono stati memorizzati e stampati diversi sottotipi di un supertipo)
  • la classe sequenza ordinata
  • Le Interfacce JAVA
    • Esempio con Classe SequenzaOrdinata (classe in grado di "immagazzinare" oggetti che implementano l'interfaccia comparable)
  • Le interfacce tipi riferimento
    • le interfacce e la gerarchia dei tipi