Questa pagina fornisce il materiale didattico e le informazioni relative all'insegnamento di Fondamenti di Informatica C IEI per il Corso di Laurea in Ingegneria Informatica IEI.
Contents
Informazioni sul docente
Dipartimento di Ingegneria dell'Infomazione
Università di Modena e Reggio Emilia, Via Vignolese 905 - 41125 Modena
Telefono 0592056190 - Fax 0592056126
Finalità Del Corso E Consigli Utili
L'informatica odierna non consiste solo nel definire algoritmi e programmi che realizzano tali algoritmi, ma anche nel comporre architetture software e hardware sulla base di componenti software o hardware. Partendo da questo motivo dominante, il corso affronta i seguenti argomenti:
- Programmazione ad Oggetti: verranno illustrati i concetti generali, quali incapsulamento, ereditarietà e polimorfismo; verranno accennati i concetti di riusabilità e di composizione dei componenti software, illustrando il passaggio dalla programmazione modulare alla programmazione ad oggetti.
- Il linguaggio Java: verrà utilizzato come esempio di linguaggio ad oggetti, spiegando come i concetti generali sono implementati in Java; verrà inoltre spiegato come Java può essere sfruttato per lo sviluppo di interfacce grafiche.
- Dati strutturati in Java: verrà illustrata l'implementazione di strutture dati complesse come liste, pile, code, alberi e grafi in Java; su tali strutture verrà introdotto il problema della complessità e il relativo studio.
Per superare agevolmente l'esame si consiglia agli studenti di seguire con continuitá le lezioni e le esercitazioni del corso. Inoltre, si consiglia di non focalizzare la preparazione dell'esame esclusivamente sullo studio dei libri e degli appunti, ma piuttosto di preparare l'esame sperimentando direttamente i concetti presentati a lezione sul calcolatore. Puó risultare estremamente difficile superare con successo l'esame senza una conoscenza di tipo sperimentale, ottenuta con esercitazioni in laboratorio.
Programma Del Corso
Programmazione ad Oggetti
- Concetti Generale
- Il Linguaggio Java
- Classi ed Ereditarietà in Java
- I/O in Java
- Interfacce grafiche in Java
- Programmazione basata sugli eventi
Strutture dati
- Liste
- Pile
- Code
Modalità D'Esame
L'esame si comporra' di una discussione di un programma in Java che lo studente deve presentare all'esame (e la cui proposta di progetto deve essere stata preventivamente approvata dal docente). Per maggiori dettagli, vedere il seguito di questa pagina.
Modalità di Sviluppo del Progetto Java
All'esame si deve presentare e discutere un programma realizzato in Java e che presenti le seguenti caratteristiche:
- Sia dotato di interfacce grafiche con cui interagire con il programma stesso.
- Sfrutti i meccanismi di ereditarietà e, se necessario, le classi astratte e le interfacce, per la definizione delle classi del sistema (si considerano escluse le relazioni di ereditarietà diretta da classi di libreria Java).
- Sfrutti le classi di sistema Java per la gestione dell'input/output.
- Utilizzi una struttura dati tra quelle presentate a lezione o derivate.
Il programma deve essere eseguito da linea di comando; non devono essere usate librerie proprietarie (ad es. quelle degli ambienti integrati) a meno di averlo concordato con il docente.
Il software deve essere accompagnato da pagine di documentazione HTML (ivi incluse le pagine generate tramite Javadoc) che descrivano le scelte di progetto effettuate e la struttura del sistema software.
Traccia per il progetto
È disponibile la traccia per il progetto da realizzare per l'esame.
Testi Consigliati
Testo Del Corso
- G. Cabri, F. Zambonelli, "Programmazione a oggetti in Java: dai fondamenti a Internet", Pitagora editrice, 2003.
Altri Testi
- B. Eckel, "Thinking in Java", 4 edizione italiana, Pearson, (scaricabile gratuitamente da Internet la versione inglese http://www.BruceEckel.com).
- Arnold, Gosling, Holmes, "Il linguaggio Java. Manuale ufficiale", Pearson.
- C.S. Horstmann, G. Cornell, "Java 2: i Fondamenti", Mc Graw Hill, The Sun Microsystems Press.
Per chi vuole approfondire:
- Mazzanti, Milanese, "Programmazione di applicazioni grafiche in Java", Apogeo.
- Gamma, Helm, Johnson, Vlissides, "Design Patterns", Addison-Wesley.
- J.R. Hubbard, "Strutture dati in Java", McGraw-Hill.
- M.A. Weiss, "Data Structures And Problem Solving Using Java", 2nd Edition, Addison Wesley.
Lucidi del Corso
Il materiale dei corsi di Fondamenti di Informatica C IEI contenuto nel libro "Programmazione a oggetti in Java: dai fondamenti a Internet", Pitagora editrice, 2003.
In questa pagina sono riportati alcuni lucidi non presenti nel libro.
- Presentazione del corso
- Classi di memorizzazione in C
- Classi Astratte e Interfacce in Java
- Tabelle con JTable
Esercizi presentati a lezione
Gli esercizi sono forniti alcuni in formato pdf, visualizzabili e stampabili con il programma Adobe Acrobat, di pubblico domino, altri in semplice formato testo. Tutti gli esercizi sono stati realizzati in collaborazione con la Prof. Letizia Leonardi.
Programmazione ad Oggetti e Java
Gli esercizi sono gli stessi contenuti nei lucidi della parte teorica, ma da qui e' possibile salvare su un file (facendo "salva link con nome") il sorgente della gran parte degli esercizi.
Java: Le Classi
Le Classi | File |
![]() | |
Counter.java, Esempio0.java, Esempio1.java, Esempio2.java, Esempio2bis.java, Esempio3.java, Esempio4.java, Esempio5.java, Esempio5bis.java, Esempio6.java, Esempio7.java, Point.java |
Java: Classi Astratte e Interfacce
Java: Ereditarietà
Java: Le Eccezioni
Java: Input e Output
Java: Programmazione Grafica e ad Eventi
Java: Le Applet
Le Applet | File |
![]() | |
Applet1.java, Applet2.java, Applet2Listener.java, Applet3.java, Applet3Listener.java, |
Strumenti Software
Si indicano di seguito gli strumenti software che si utilizzano durante il corso e si indica dove e' possibile reperirli.
- Per sviluppare programmi in Java si utilizza il JDK (Java Development Kit). È di pubblico domino e si puo' scaricare dal sito The Java Sun Site.
- NOTA: Si consiglia di usare la versione 1.5 o la 1.6. È comunque necessario utilizzare Java2, che corrisponde alle versioni del jdk dalla 1.2 alla 1.6.
- Molte riviste di informatica e libri su Java allegano il CD con Java in omaggio
- Come ambiente integrato (IDE) è possibile utilizzare quello che si preferisce. Quello consigliato è Eclipse.
Esercitazioni di laboratorio
Gli esercizi di laboratorio si possono trovare nella seguente pagina: Esercizi di fondamenti di informatica C IEI.