Fondamenti di Informatica C IEI (AA 2009/10)

From Agentgroup

Jump to: navigation, search

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

Docente.png

Prof. Giacomo Cabri

Dipartimento di Ingegneria dell'Infomazione

Università di Modena e Reggio Emilia, Via Vignolese 905 - 41125 Modena

Telefono 0592056190 - Fax 0592056126

giacomo.cabri@unimore.it



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

Tesina.png

È disponibile la traccia per il progetto da realizzare per l'esame.




Testi Consigliati

Testo Del Corso

Textbook.png
  • 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

Lucidi.png

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.

  1. Presentazione del corso
  2. Classi di memorizzazione in C
  3. Classi Astratte e Interfacce in Java
  4. Tabelle con JTable



Esercizi presentati a lezione

EserciziLezione.png

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
Download.png
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

Grafica File
Download.png
CalcButton.java, CalcPanel.java, Calculator.java, Es10Panel.java, Es11Panel.java, Es12Panel.java, Es13Panel.java, Es14Panel.java, Es15Panel.java, Es16Panel.java, Es7Panel.java, Es8Panel.java, Es9Panel.java, EsSwing1.java, EsSwing10.java, EsSwing11.java, EsSwing12.java, EsSwing13.java, EsSwing14.java, EsSwing15.java, EsSwing16.java, EsSwing2.java, EsSwing3.java, EsSwing4.java, EsSwing5.java, EsSwing6.java, EsSwing7.java, EsSwing8.java, EsSwing9.java, EsSwingCalculator.java, FunctionPanel.java, ImgPanel.java, MyFrame.java, MyPanel.java, Terminator.java

Java: Le Applet

Le Applet File
Download.png
Applet1.java, Applet2.java, Applet2Listener.java, Applet3.java, Applet3Listener.java,

Applet4.java, Applet5.java, Application2.java



Strumenti Software

Strumenti.png

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.

Personal tools
Pagine riservate ai CdS di Ing. Informatica