Interazione Uomo-Macchina:
Programmazione di interfacce grafiche
Obiettivi
Il corso presenta le tecniche e gli strumenti della programmazione
di interfacce grafiche e dello sviluppo di applicazioni sul Web.
Si studiano le tecniche di programmazione specifiche in ambienti grafici:
programmazione ad eventi e programmazione ad oggetti.
Si introducono i linguaggi ad oggetti C++, Java e C#, l'organizzazione e l'uso
di ambienti grafici a finestre, la progettazione e realizzazione di
applicazioni interattive sul Web e di Web Service.
Il corso fa parte del minor
Multimedia ed ha come prerequisito il corso di Fondamenti di Computer
Graphics che si tiene nel primo semestre.
Programma
Tecniche di programmazione
- Programmazione ad oggetti
- Introduzione al C++
- Framework e pattern
- Programmazione a eventi
- Piattaforma .Net
Sistemi a finestre
- Microsoft Windows
- X Windows
- Toolkit (Motif, TCL/Tk, Gnome)
- Application Framework (MFC, Swing, Windows Forms)
Programmazione Web
- Ipertesti e linguaggi ipertestuali: HTML, DHTML, XML
- Architettura del World Wide Web
- Programmazione Java e Swing
- Programmazione JavaScript
- Programmazione CGI: Perl e Servlet
- Web Service (UDDI, WSDL, SOAP)
- Confronto tra Web Service con J2EE
- Aspetti multimediali: audio, video, animazione
Libri di Riferimento
- K. Arnold, J. Gosling, The Java Programming Language
(2nd edition), Addison Wesley, 1997.
- M. Morgan, Using Java 1.2, Que, 1999.
- D. S. Siegel, Creating Killer Web Sites, second edition,
Hayden Books, 1997.
- SamsDevGroup,
HTML, Java, CGI, VRML, SGML Web Publishing Unleashed,
Sams Net, 1996.
- Jeffrey Veen, The Art & Science of Web Design,
New Riders, 2000.
- Steve Krug, Don't Make Me Think! - A Common Sense Approach
to Web Usability, QUE, 2000.
- Kruglinski, Sheperd, Wingo, Programmare in Visual C++,
5 edizione, Mondadori Informatica, 1998.
- S. Holzner, Visual C++ Programming, Brady, 1993.
- J. Richter, Advanced Windows (3rd edition),
Microsoft Press, 1997.
- G. Attardi, A. Amato,
Programmazione di Interfacce Grafiche,
Università di Pisa, SEU, 1997.
- F. B. Brokken, K. Kubat,
C++ Annotations,
ICCE, University of Groningen, 1998. (Capitoli 1-5, 10, 12, 14-16).
- Peter Müller,
Introduction to object-oriented programming using C++,
Globewide Network Academy, 1997.
Esame
L'esame finale consiste nella discussione di un progetto. La scelta
dell'argomento del progetto è lasciata allo studente. I
requisiti sono che si tratti di un progetto in cui ci sia un utilizzo
rilevante della grafica e che sia realizzato singolarmente dallo
studente. Il progetto può anche essere un'interfaccia grafica
ad una applicazione preesistente o scritta da altri, ma per l'esame
verrà valutata solo la parte grafica. Il progetto deve
essere realizzato in un linguaggio di programmazione ad oggetti
(C++, Java o C#); vivamente sconsigliati VisualBasic e Delphi.
Tra i temi svolti in passato ci sono stati:
- Fibonacci in VRML
- Visualizzatore RoboCup in VRML
- CoolTalk: lavagna condivisa via rete (selezionato tra i top
15% JAR)
- strumenti di visualizzazione 3D e rendering
- giochi animati
- strumento di visualizzazione di grafici e bar chart 3D
- sistema di calcolo delle rotte veliche
- interfaccia ipertestuale ad un sistema di documentazione
- morphing di immagini
- realizzazione di una libreria grafica
Durante il semestre verranno assegnati degli esercizi da svolgere,
il cui completamento verrà considerato nella valutazione
finale.
Laboratorio
Per il corso è disponibile un laboratorio dedicato formato
da due PC Pentium MMX con Windows NT.
Per sviluppi avanzati è disponibile il
Laboratorio Multimediale del Dipartimento.
Pagina Web del Corso
http://medialab.di.unipi.it/web/IUM/IUP.html
Lezioni
Esercitazioni
Materiale
per le esercitazioni di laboratorio.
Materiale Utile