Differenze tra le versioni di "Fondamenti di architettura e programmazione T2/2008-2009"

Da WikiDsy.
(Diario del corso del Laboratorio di programmazione (H-Z))
Riga 8: Riga 8:
 
== Info (H-Z) ==
 
== Info (H-Z) ==
  
=== Docenti ===
+
=== [Docenti] ===
  
 
*FAP: [http://www.ccdi.unimi.it/it/docenti/ALBERTI-MARIA%20ALBERTA-05S.html Maria Alberta Alberti];
 
*FAP: [http://www.ccdi.unimi.it/it/docenti/ALBERTI-MARIA%20ALBERTA-05S.html Maria Alberta Alberti];
 
*LABORATORIO: [http://www.ccdi.unimi.it/it/docenti/ALBERTI-MARIA%20ALBERTA-05S.html Lorenzo Capra]
 
*LABORATORIO: [http://www.ccdi.unimi.it/it/docenti/ALBERTI-MARIA%20ALBERTA-05S.html Lorenzo Capra]
  
=== Orario lezioni ===
+
=== [Orario lezioni] ===
  
 
'''''Fondamenti di architettura e programmazione'''''
 
'''''Fondamenti di architettura e programmazione'''''
Riga 31: Riga 31:
 
*Martedì: 8.30 - 12.30 (aula Sigma - Comelico)
 
*Martedì: 8.30 - 12.30 (aula Sigma - Comelico)
  
=== Materiale didattico ===
+
=== [Materiale didattico] ===
  
 
*[http://homes.dico.unimi.it/~alberti/Fond08/#materiale Fondamenti di Architettura e programmazione];
 
*[http://homes.dico.unimi.it/~alberti/Fond08/#materiale Fondamenti di Architettura e programmazione];
 
*[http://homes.dico.unimi.it/~capra/FondProg08/#Materiale Laboratorio di programmazione]
 
*[http://homes.dico.unimi.it/~capra/FondProg08/#Materiale Laboratorio di programmazione]
  
=== Testi consigliati ===
+
=== [Testi consigliati] ===
  
 
*G. Pighizzini, M. Ferrari: Dai fondamenti agli oggetti. Corso di programmazione JAVA (II o III edizione), Addison-Wesley, Pearson Education Italia, 2005.
 
*G. Pighizzini, M. Ferrari: Dai fondamenti agli oggetti. Corso di programmazione JAVA (II o III edizione), Addison-Wesley, Pearson Education Italia, 2005.
  
=== Modalità esami ===
+
=== [Modalità esami] ===
 
Sono previsti quattro compitini ('''non obbligatori''') molto probabilmente fissati per:
 
Sono previsti quattro compitini ('''non obbligatori''') molto probabilmente fissati per:
  
Riga 57: Riga 57:
 
== Diario del corso di FAP (H-Z) ==
 
== Diario del corso di FAP (H-Z) ==
  
=== Prima lezione, 1.10.08 ===
+
=== [Prima lezione], 1.10.08 ===
  
 
* Il calcolatore nella storia
 
* Il calcolatore nella storia
Riga 67: Riga 67:
 
* Criteri di bontà degli algoritmi
 
* Criteri di bontà degli algoritmi
  
=== Seconda lezione, 3.10.08 ===
+
=== [Seconda lezione], 3.10.08 ===
  
 
*Ripasso generale, rivolto in particolare alla dimostrazione della quarta caratteristica dell'algoritmo, soddisfatto per l'algoritmo di Euclide
 
*Ripasso generale, rivolto in particolare alla dimostrazione della quarta caratteristica dell'algoritmo, soddisfatto per l'algoritmo di Euclide
Riga 80: Riga 80:
 
*Struttura del programma Java
 
*Struttura del programma Java
  
=== Terza lezione, 7.10.08 ===
+
=== [Terza lezione], 7.10.08 ===
  
 
*Il processore e il suo linguaggio
 
*Il processore e il suo linguaggio
Riga 94: Riga 94:
 
*Componenti dei linguaggi funzionali
 
*Componenti dei linguaggi funzionali
  
=== Quarta lezione, 8.10.08 ===
+
=== [Quarta lezione], 8.10.08 ===
  
 
*Sintassi e semantica
 
*Sintassi e semantica
Riga 107: Riga 107:
 
*Gli errori (sintattici, di compilazione, logici)
 
*Gli errori (sintattici, di compilazione, logici)
  
=== Quinta lezione, 10.10.08 ===
+
=== [Quinta lezione], 10.10.08 ===
  
 
*Introduzione agli oggetti
 
*Introduzione agli oggetti
Riga 127: Riga 127:
 
*L'operatore new
 
*L'operatore new
  
=== Sesta lezione, 14.10.08 ===
+
=== [Sesta lezione], 14.10.08 ===
  
 
*Riferimenti
 
*Riferimenti
Riga 144: Riga 144:
 
*La classe ConsoleOutputManager
 
*La classe ConsoleOutputManager
  
=== Settima lezione, 15.10.08 ===
+
=== [Settima lezione], 15.10.08 ===
  
 
*Ripresa di argomenti vari (oggetti, classi, metodi, ecc..) riferendosi all'esempio di una moneta
 
*Ripresa di argomenti vari (oggetti, classi, metodi, ecc..) riferendosi all'esempio di una moneta

Versione delle 18:06, 27 ott 2008


News & Avvisi (H-Z)

  • Venerdì 17 ottobre, causa sciopero dei mezzi, la lezione di FAP sarà sospesa.

Info (H-Z)

[Docenti]

[Orario lezioni]

Fondamenti di architettura e programmazione

  • Martedì: 14.30 - 17.30 (aula V3 - Venezian)
  • Mercoledì: 15.30 - 18.30 (aula V3 - Venezian)
  • Venerdì: 14.30 - 16.30 (aula V3 - Venezian)

Laboratorio di Programmazione

Turno A

  • Lunedì: 10.30 - 12.30 (aula V5 - Venezian)
  • Giovedì: 9.30 - 13.30 (aula 309 - Celoria)

Turno B

  • Lunedì: 10.30 - 12.30 (aula V5 - Venezian)
  • Martedì: 8.30 - 12.30 (aula Sigma - Comelico)

[Materiale didattico]

[Testi consigliati]

  • G. Pighizzini, M. Ferrari: Dai fondamenti agli oggetti. Corso di programmazione JAVA (II o III edizione), Addison-Wesley, Pearson Education Italia, 2005.

[Modalità esami]

Sono previsti quattro compitini (non obbligatori) molto probabilmente fissati per:

Fondamenti di architettura e programmazione

  • 12 novembre
  • 12 dicembre

Laboratorio di programmazione

  • 25 novembre (Turno B) o 27 novembre (Turno A)
  • 13 gennaio (Turno B) o 15 gennaio (Turno A)

[Sezione da completare]

Diario del corso di FAP (H-Z)

[Prima lezione], 1.10.08

  • Il calcolatore nella storia
  • Gli algoritmi
  • L'algoritmo di Euclide
  • Come si trovano gli algoritmi
  • I programmi
  • Algoritmi e programmi
  • Criteri di bontà degli algoritmi

[Seconda lezione], 3.10.08

  • Ripasso generale, rivolto in particolare alla dimostrazione della quarta caratteristica dell'algoritmo, soddisfatto per l'algoritmo di Euclide
  • Analisi dei tempi di esecuzione dei vari algoritmi
  • Massima istanza
  • Miglioramento tecnologico
  • I linguaggi di programmazione
  • Il compilatore
  • L'interprete
  • Confrontro tra compilatore e inteprete
  • Java virtual Machine
  • Struttura del programma Java

[Terza lezione], 7.10.08

  • Il processore e il suo linguaggio
  • Il ciclo del processore (fetch-decode-execute)
  • Linguaggio di basso livello, svantaggi
  • Somma di due numeri e Algoritmo di Euclide in assembler
  • L'esigenza e il ruolo di una macchina astratta
  • I tre livelli dei linguaggi
  • Storia del linguaggio ad alto livello (dagli anni '50 agli anni '80)
  • I paradigmi di programmazione
  • Influenza del modello di macchina
  • La macchina Von Neumann
  • Componenti dei linguaggi funzionali

[Quarta lezione], 8.10.08

  • Sintassi e semantica
  • Descrizione delle regole sintattiche
  • Esempi di sintassi nella forma BNF
  • Grammatiche
  • Linguaggi regolari
  • Le carte sintattiche
  • Concetti di base della programazione oo
  • Java, le sue caratteristiche, la struttura
  • Componenti di Java (commenti, spazi vuoti, lessico, identificatori, separatori e operatori, costanti)
  • Gli errori (sintattici, di compilazione, logici)

[Quinta lezione], 10.10.08

  • Introduzione agli oggetti
  • Astrazione
  • Gli oggetti Software
  • Oggetti e cassi
  • Gli oggetti come astrazione
  • Le istanze
  • Incapsulamento dei dati
  • I messaggi
  • Interfaccia
  • Inviare messaggi
  • Invocazione dei metodi
  • Metodi e oggetti
  • I membri delle classi
  • I campi statici di classe
  • La classe predefinita rectangle
  • Creare oggetti
  • L'operatore new

[Sesta lezione], 14.10.08

  • Riferimenti
  • Gli oggetti e i loro riferimenti
  • Aree di memoria (Stack, Heap)
  • Variabili
  • Assegnamento
  • Variabili e riferimenti a oggetti
  • Alias
  • Garbage collection
  • Espressioni
  • Tipi di dati
  • Tipi e astrazioni
  • Dichiarazione e inizializzazione
  • La classe ConsoleInputManager
  • La classe ConsoleOutputManager

[Settima lezione], 15.10.08

  • Ripresa di argomenti vari (oggetti, classi, metodi, ecc..) riferendosi all'esempio di una moneta
  • Flusso di controllo dei metodi
  • Analisi di alcuni esempi in Java riguardanti il lancio di una moneta

Diario del corso del Laboratorio di programmazione (H-Z)

Premessa: Il lunedì è giorno di teoria, in cui vengono spesso trattati argomenti già noti in FAP, mentre il giovedì è giorno di laboratorio.

[Prima settimana]

Lunedì 6.10.08

Giovedì 9.10.08

[Seconda settimana]

Lunedì 12.10.08

  • Importazioni di classi
  • Le variabili Classpath
  • ConsoleInputManager
  • Metodi di String

Giovedì 16.10.08

[Terza settimana]

Lunedì 20.10.08

  • Le stringhe e metodi da conoscere:
    • charAt, replace, length, to Overcase/Uppercase, substring, indexOf, lastIndexOf, valueOf.
  • Esercizio: Istruzione che permette di trovare la stringa corrispondente ad s con l'iniziale in maiuscolo