Programmazione Turno 3/2005-2006

Da WikiDsy.
Versione del 10 ott 2005 alle 15:21 di 82.186.240.163 (discussione) (Modalità d'esame)

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

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:

  • definizione di informatica e programmazione


  • Breve storia della Programmazione:
    • Linguaggio macchina
    • Fortran
    • Linguaggi Algol
    • Programmazione strutturata (Pascal)
    • Programmazione ad oggetti (Java)


  • Definizione di Algoritmo


  • esempio algoritmo di Euclide per calcolare il massimo comun divisore


  • definizione programma (differenze da un algoritmo)


Lezione di Mercoledì 5-10-05

Argomenti trattati nella lezione di oggi :

  • Analogico/Digitale
  • Definizione Di BIT
  • BIT/BYTE/Kb/KB.....
  • IL CODICE ASCII

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
  • Breve classificazione HARDWARE
    • processore
    • memoria centrale
    • memoria di massa
    • periferiche
  • Differenze e caratteristiche memoria centrale/ memoria di massa


  • Classificazione SOFTWARE
    • sistema operativo
    • utility
    • software applicativi
  • 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

ok spero di non essermi dimenticato niente

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
  • I linguaggi ad alto livello
    • il compilatore
    • il linker
    • L'interprete
    • Errori
      • durante la compilazione
      • usando il linker
    • la fase di testing
    • I limiti della portabilità del codice

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
      • La portabilità del codice
      • la portabilità del compilatore
    • svantaggi
      • prestazioni
    • le funzioni normalmente solte dal linker in Java( controllo e colegamento negli altri ling. svolti dal linker)
    • le applet Java