Fondamenti di architettura e programmazione T2/2008-2009
Indice
- 1 News & Avvisi (H-Z)
- 2 Info (H-Z)
- 3 Diario del corso di FAP (H-Z)
- 3.1 [Prima lezione], 1.10.08
- 3.2 [Seconda lezione], 3.10.08
- 3.3 [Terza lezione], 7.10.08
- 3.4 [Quarta lezione], 8.10.08
- 3.5 [Quinta lezione], 10.10.08
- 3.6 [Sesta lezione], 14.10.08
- 3.7 [Settima lezione], 15.10.08
- 3.8 [Ottava lezione], 21.10.08
- 3.9 [Nona lezione], 22.10.08
- 3.10 [Decima lezione], 24.10.08
- 3.11 [Undicesima lezione], 28.10.08
- 3.12 [Dodicesima lezione], 29.10.08
- 3.13 [Tredicesima lezione], 31.10.08
- 3.14 [Quattordicesima lezione], 5.11.08
- 3.15 [Quindicesima lezione], 7.11.08
- 4 Diario del corso del Laboratorio di programmazione (H-Z)
News & Avvisi (H-Z)
- Venerdì 17 ottobre, causa sciopero dei mezzi, la lezione di FAP sarà sospesa.
Info (H-Z)
[Docenti]
- FAP: Maria Alberta Alberti;
- LABORATORIO: Lorenzo Capra
[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
[Ottava lezione], 21.10.08
- La classe predefinita String
- Gli oggetti Stringhe, come creari
- Esempi di Classi che usano String
- Campi d'istanza
- Effettuare test sulle classi
- Errori comuni
- Costruttori vs Metodi
- Concatenazione di Stringhe
- Sequenza di escape
- Metodi per le stringhe
- Incapsulamento
- I modificatori di visibilità
- Dichiarazione di metodi
L'istruzione Return
- Passaggio di valori a parametri
[Nona lezione], 22.10.08
- Prototipi e segnature, con esempi
- Overloading di metodi
- La nozione di tipo di dato
- Tipi di dati e Java
- Dichiarazione e inizializzazione
- Tipi di dati semplici
- Espressioni
- Operatori su tipi aritmetici interi
- Conversioni implicite ed esplicite
- Intervalli numerici e precisione
- Operatori di incremento/decremento
[Decima lezione], 24.10.08
- I caratteri
- I caratteri ASCII
- I caratteri Unicode
- Formato ASCII esteso
- Formato ISO10646
- Il tipo Boolean
- Gli operatori logici (not, and, or)
- Tavole di verità
- Espressioni booleane
- Espressioni con operatori logici
- Precedenze degli operatori
[Undicesima lezione], 28.10.08
- Rappresentazione dei numeri reali
- Implementazione in Java
- Rappresentazione interna
- Legge di De Morgan e semplificazioni
- Metodi predicativi
- Lazy evaluation
- I Flag
- Operatori di incremento e decremento
- Operatori di assegnamento
- Operatore condizionale
- Precedenze di operatori
- Associatività degli operatori
- Conversioni tra tipi primitivi
- Librerie di classi
- Packages
- Dichiarazione di import
- Metodi statici di classe e loro invocazione
- Numeri pseudo - casuali
- Classe Random
[Dodicesima lezione], 29.10.08
- Ordine di esecuzione
- Flusso di controllo
- Istruzione condizionale
- Istruzione if, semantica ed esempi
- Istruzione if-else, semantica ed esempi
- Istruzione blocco
- If innestati
- Confronti tra caratteri
- Confronti tra stringhe
- Confronti tra oggetti
- Confronto con null
- Confronti tra valori in virgola mobile
[Tredicesima lezione], 31.10.08
- L'istruzione Switch
- Istruzioni di ripetizione
- Istruzioni while, semantica
- Istruzione do-while, semantica
- Confronto while e do-while
- Ciclo for, semantica
- Variabili del ciclo for
- Cicli infiniti
- Istruzioni vuote nel ciclo for
- Contare le iterazioni
- Elaborazioni di dati in input
[Quattordicesima lezione], 5.11.08
- Analisi del codice StringMutation.java
- Leggere i dati di input
- Migliorare la leggibilità del ciclo
- Enunciato break e continue
- Cercare in una stringa di caratteri e riga di input
- La classe StringTokenizer
- I separatori di Token
[Quindicesima lezione], 7.11.08
- Modifica del codice LeggiNumeri.java con la classe StringTokenizer
- Analisi del codice LeggiStringhe.java
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
Giovedì 23.10.08
[Quarta settimana]
Lunedì 27.10.08
- Il metodo swap e stringBuffer
- I costruttori di default
- I metodi statici
- Le classi a involucro