Programma definitivo del corso di

Programmazione in Rete + Lab. (Corso C)

a.a. 2002/2003, II semestre, 9 CFU

Corso di Laurea Triennale in Informatica


Docente: Dr. Francesca A. Lisi
Ricevimento studenti: mercoledì ore 10-12
email: lisi@di.uniba.it - tel. 080 544 2276


Fondamenti delle reti:
 

  • Reti di calcolatori ed Internet

  • Che cos'è Internet. Che cos'è un protocollo. La sezione di accesso della rete. La sezione interna della rete. Reti di accesso e mezzi trasmissivi. Ritardi e perdite nelle reti di commutazione di pacchetto. Strati protocollari (pile). La rete dorsale di Internet, NAP e ISP. Breve storia dell'interconnessione dei calcolatori e di Internet.
     
  • Lo strato di applicazione

  • Servizi e principi. Modello client/server. Il World Wide Web ed il protocollo HTTP. Trasferimento di file ed il protocollo FTP. Posta elettronica in Internet. DNS: il servizio directory di Internet. Programmazione dei socket con TCP e con UDP. Costruzione di un semplice server Web con Java.
     
  • Lo strato di trasporto

  • Servizi e principi. Multiplexing e demultiplexing delle applicazioni. Trasporto senza connessione: UDP. Principi di un trasferimento affidabile dei dati. Trasporto orientato alla connessione: TCP. Principi di controllo della congestione. Controllo della congestione del TCP.
     
  • Lo strato di rete

  • Servizi e principi. Principi di instradamento. Instradamento gerarchico. Protocollo IP. Instradamento in Internet. Cenni ad IPv6.
     
  • Sicurezza nelle reti di calcolatori

  • Che cos'è la sicurezza di rete. Principi di crittografia. Autenticazione. Integrità. Distribuzione della chiave e certificazione. Sicurezza dello strato di applicazione: PGP. Sicurezza dello strato di trasporto: SSL, SET. Sicurezza dello strato di rete: IPsec.
     

    Programmazione:
     

  • Il linguaggio HTML

  • Origini ed evoluzione di HTML. Sintassi di base. Struttura standard del documento HTML. Formattazione del testo di base. Le immagini. I collegamenti ipertestuali. Gli elenchi. Le tabelle. I frame.
     
  • I fogli di stile a cascata

  • I livelli dei fogli di stile. I formati di specifica dello stile. Le classi di stile. Le proprietà ed i valori di proprietà. Il colore.
     
  • Introduzione a XML

  • Sintassi di XML. La struttura del documento XML. Le definizioni dei tipi di dati. I namespace. La visualizzazione di documenti XML grezzi e con CSS. Le trasformazioni XML e i fogli di stile.
     
  • Nozioni di base di JavaScript

  • Panoramica su JavaScript. L'orientamento agli oggetti e JavaScript. Le caratteristiche sintattiche generali. Primitive, operazioni ed espressioni. Output su schermo. Le istruzioni di controllo. La creazione e modifica di oggetti. Gli array. Le funzioni. I costruttori. Pattern matching.
     
  • Programmazione ad eventi con JavaScript

  • L'ambiente di esecuzione di JavaScript. Il Document Object Model (DOM). Introduzione alla programmazione ad eventi. Eventi, attributi e tag. Utilizzo degli eventi load e unload. Gli handler di evento per gli eventi dei pulsanti. Il controllo dell'input del form. L'oggetto navigator. La propagazione degli eventi.
     
  • HTML dinamico con JavaScript

  • Supporto dei browser ai documenti dinamici. Il posizionamento degli elementi. Lo spostamento degli elementi. La visibilità degli elementi. I colori ed i caratteri dinamici. Il contenuto dinamico. La sovrapposizione degli elementi.
     
  • Le applet Java

  • Introduzione a Java. Le principali attività delle applet. il metodo paint. Il tag <object>. I parametri dell'applet. Grafica semplice. Il colore. Le applet interattive.
     
  • Programmazione concorrente in Java

  • Il concetto di thread. Stati e metodi di thread. Utilizzo dei thread per implementare applet animate. Realizzazione di server Web multi-threaded.
     
  • Le servlet Java

  • Richiami alle caratteristiche generali dei server Web. Il concetto di servlet. Dettagli per la realizzazione di servlet. La memorizzazione delle informazioni sui client: i cookie e il tracking di sessione.
     

    Testi adottati

  • Kurose & Ross, "Internet e Reti di Calcolatori", McGraw-Hill, 2001: capp. 1, 2, 3 (tranne 3.4.2, 3.4.3, 3.4.4, 3.6.3, 3.7.3), 4 (tranne 4.6, 4.8), 7
  • Sebesta, "Programmare il World Wide Web", McGraw-Hill, 2003: capp. 1, 2, 3, 6, 7, 8, 9, 10, 11

  •