University Logo

Università
di Padova

Diploma in Ingegneria Informatica
Corso di Fondamenti di Informatica 2
2 Moduli

A.A. 2001/2002

Versione 1.0 30/09/2001


Programma-schema del corso

Qui di seguito trovate gli argomenti che verranno trattati in ciascun incontro, nella prima parte (1h30'), denominata per semplicità 'lezione', con il docente ufficiale in teleconferenza, nella seconda (1h45'), denominata per semplicità 'laboratorio', con il docente locale, nonché il programma dell'attività di studio personale, denominata 'studio', che è relativa al materiale trattato nella lezione immediatamente precedente. La seconda parte di ciascun incontro comprenderà anche la risposta, da parte del docente locale, ai quesiti e alle richieste di chiarimento posti dagli studenti in relazione al materiale della lezione appena terminata. Durante il laboratorio il docente locale interverrà, se necessario, con integrazioni sulla teoria, risposte a domande varie, e condurrà l'attività pratica. A tale scopo, per ciascun incontro il docente locale sceglierà dalla voce Laboratorio gli esercizi da sviluppare al calcolatore, proponendo e risolvendo eventualmente altri esercizi relativi alla materia da analizzare, in base alle esigenze della classe. Gli esercizi suggeriti nel programma sono quelli che appaiono più utili al consolidamento della teoria e come base per le realizzazioni pratiche: lo studente quindi si sforzerà a casa, PRIMA dell'incontro, di affrontarne il maggior numero possibile, in base al tempo a disposizione, assieme alla realizzazione in Java del pseudocodice ricavato dagli esercizi e problemi proposti. È CALDAMENTE suggerito allo studente di anticipare l'attività pratica a casa: a questo fine si suggerisce di installare nel proprio PC una versione aggiornata del JDK e della sua documentazione in linea (vedi software di supporto).

Alla fine dello studio della settimana lo studente potrà verificare se ha raggiunto gli obiettivi principali, svolgendo successivamente gli esercizi di verifica suggeriti (di alcuni viene fornita la soluzione). Alla fine di questa pagina si trova un riassunto delle pagine da studiare dal libro base di teoria [Good]. I temi qui elencati, sia per quanto riguarda le lezioni che i laboratori, vanno intesi come traccia di massima per mantenere un ritmo adeguato: durante lo svolgimento del corso potranno essere attuate dal docente e/o dai docenti locali tutte le correzioni che si rivelassero necessarie per il buon andamento del corso stesso.

Suddivisione temporale

Pagina principale Torna alla pagina principale


Calendario del corso (2 moduli)

Lezioni in teleconferenza e incontri con il docente locale (tot. n. 27):
1, 4, 8, 11, 15, 18, 22, 25, 29 ottobre 2001; 5, 8, 12, 15 novembre 2001; 3, 6, 10, 13, 17, 20 dicembre 2001; 7, 10, 14, 17, 21, 24, 28, 31 gennaio 2002
Le prove intermedie si terranno presso i centri locali nelle date 26 novembre 2001 e 28 gennaio 2002.



Settimana 1 (dal 01/10/01)

Lunedì 01/10/01 Incontro 1

Lezione a RO:

Laboratorio:

  1. Esplorazione degli strumenti di sviluppo: editor realj, compilatore javac, interpreti java e appletviewer
  2. Ciclo di produzione e collaudo di un'applicazione
  3. Prova di qualche semplice esempio (primi esempi tratti da [Arn], FI2.Examples.Point)
  4. Uso del tool javadoc
  5. Visita del sito del corso: http://linda.dei.unipd.it/fi2/

Studio:

  1. Analisi degli argomenti del primo seminario
  2. Uso delle convenzioni per i commenti nei programmi
  3. Contenuto del JDK ([Hor] Cap. 2)
  4. Iniziare il ripasso della sintassi di java ([Good] Cap. 1, [Hor] Cap. 3)

Giovedì 04/10/01 Incontro 2

Lezione a FL:

  • I metodi: prototipo/contratto
  • Sovraccaricamento (overloading) dei metodi e dei costruttori
  • Controllo della visibilità dei membri, i membri statici
  • La classe String, l'operatore '+'
  • Il costrutto array, array multidimensionali
  • Il metodo main come metodo di collaudo
  • Il metodo toString
  • Laboratorio:

    1. Analisi e collaudo dell'esempio FI2.Examples.Point
    2. Semplici esempi di classi con membri sia privati che pubblici e ripasso di Java (dichiarazioni, costrutti di controllo del flusso, espressioni complesse, ecc.)
    3. Generazione del javadoc degli esempi sviluppati

    Studio:

    1. Classi e oggetti: campi, controllo d'accesso (public, private), costruttori, metodi, overloading, membri statici ([Good] Parr. 1.1-1.4, [Hor] Cap. 4 fino a pag. 141, anche [Arn] 2.1-2.9 )
    2. Metodi main e toString ([Good] Par. 1.2, [Hor] Cap. 4 pag. 155, Cap. 5 pag. 219, anche [Arn] 2.1-2.9)
    3. La classe FI2.Examples.Point e l'esempio di [Good] Par. 1.7
    4. Esercizi: [Arn] 1.4, 1.5, 1.6, 1.9, 1.11, 2.1-2.4, 2.6, 2.8, 2.10, 2.12-2.15
      [Good] R1.1..1.3, R1.5..1.6, R1.8..1.9, R1.13..1.14, C1.2..1.3, C1.5..1.7, P1.1

    Indice Torna all'indice temporale

    Settimana 2 (dal 08/10/01)

    Lunedì 08/10/01 Incontro 3

    Lezione a TV:

    Studio:

    1. Classi estese, ridefinizione di membri, super, final, Object, clonazione di classi, eccezioni ([Good] Parr. 2.1-2.3, [Hor] Parr. 5.1-5.2 5.2, 5.5, anche [Arn] 1.10, 1.12, 2.3, 3.1-3.6, 3.8-3.10)
    2. Classi e metodi astratti ([Good] Par. 2.4, [Hor] Par. 5.1, anche [Arn] 3.7)
    3. Classi interne ([Hor] Par. 6.2, vedi anche argomento supplementare)
    4. Interfacce ([Good] Par. 2.4, [Hor] Par. 6.1, anche [Arn] 1.11, 4.1)
    5. Ereditarietà multipla e realizzazione di interfacce ([Arn] 4.2-4.6)
    6. Analisi degli esempi FI2.Examples.Pixel e FI2.Examples.Rect
    7. Esercizi: [Arn] 3.5, 3.8, 3.9
      [Good] R2.6, R2.8..2.10, C2.4, P2.1

    Laboratorio:

    1. Collaudo della soluzione degli esercizi 1.5 e 1.6 di [Arn] sviluppata a casa
    2. Collaudo di esempi di [Hor] cap. 4 (Calendar, Employee)
    3. Collaudo delle soluzioni di alcuni degli esercizi proposti

    Giovedì 11/10/01 Incontro 4

    Lezione a PD:

    Laboratorio:

    1. Analisi e collaudo dell'esempio FI2.Examples.PointE
    2. Sperimentazioni varie con classi estensibili
    3. Verifica, mediante semplici esempi con classi estese, anche tratti da [Arn] e da [Hor] Capp. 5 e 6, delle regole di visibilità discendenti dall'attributo protected, dal mascheramento e ridefinizione, dalla gerarchia dei costruttori
    4. Collaudo con gli esempi FI2.Examples.Pixel e FI2.Examples.Rect

    Studio:

    1. Completare lettura e/o ripasso di [Good] Capp. 1-2 e [Hor] Capp. 3-4 (oppure [Arn] 5 e 6) (INCLUDENDO le parti riferentesi ad ereditarietà tra classi)
    2. Ripasso della teoria sulle classi estese (vedi incontro A)
    3. Analisi dei concetti di polimorfismo, specializzazione e generalizzazione, gerarchia delle classi estese, isA e hasA ([Good] Par. 2.2, [Hor] Par. 5.1, anche [Arn] 3.9, 3.10)
    4. Gestione di stringhe ([Hor] Par. 3.7, anche [Arn] cap. 8)
    5. Analisi di alcune classi di utilità: BitSet ([Arn] 12.1) Vector ([Arn] 12.4, vedi anche [Hor] Par. 5.2 pag. 230), Date e GregorianCalendar ([Hor] Par. 4.2 pag. 127), Random, Observer/Observable ([Arn] 12.9), StringTokenizer ([Arn] 12.10-12.12, [Hor] Par. 12.4 pag. 768) e delle classi wrapper ([Arn] Parr. 13.3-13.9 [Hor] Par. 5.2 pag. 237)
    6. Esercizi: [Arn] 3.6, 3.7, 3.8, 3.9, 3.12

    Indice Torna all'indice temporale

    Indice Torna all'indice temporale


    Riassunto delle pagine da studiare da [Good]

    Capitolo 1 (Java Programming)
    Tutto
    Capitolo 2 (Object-Oriented Design)
    Tutto
    Capitolo 3 (Analysis Tools)
    98..103 (3.2.2 compreso), 111..125
    Capitolo 4 (Stacks, Queues, and Deques)
    136..173 (4.4.4 compreso)
    Capitolo 5 (Vectors, Lists, and Sequences)
    Tutto
    Capitolo 6 (Trees)
    Tutto
    Capitolo 7 (Priority Queues)
    Tutto (il par. 7.3.5 si può leggere)
    Capitolo 8 (Dictionaries)
    334..361, 370(da 8.7)..372
    Capitolo 9 (Search Trees)
    380..392
    Capitolo 10 (Sorting, Sets, and Selection)
    448..486 (10.7.2 compreso)
    Capitolo 11 (Text Processing)
    496..502 (11.2.1 compreso), 507(da 11.2.3)..511, 523..525
    Pagina principale Torna alla pagina principale