Questa pagina fornisce il materiale didattico e le informazioni relative all'insegnamento di Principi di Sistemi Operativi (9 CFU) per il Corso di Laurea Magistrale in Ingegneria Informatica.
Contents
News
Ultime news
L'appello scritto del 15 luglio 2009 non si terrà in quanto non c'è nessun iscritto
Vecchie news
Venerdì 12 e sabato 13 giugno 2009 il sistema ESSE3 non sarà disponibile per iscriversi agli esami e neanche per compilare il questionario di valutazione Sono stati pubblicati i risultati del pre-appello scritto del 15/12/08 Sono state pubblicate le date degli appelli della sessione straordinaria 2008/2009 Sono disponibili alcuni esercizi per l'appello scritto Lunedì 15 dicembre 2008 si terrà un pre-appello scritto alle ore 11 in aula V a Matematica; per iscriversi contattare il docente I giorni 18 e 19 novembre 2008 non si svolgeranno le lezioni La prima esercitazione si terrà mercoledì 8 ottobre; quindi mercoledì 1 ottobre non ci sarà lezione Le lezione dell'AA 2008/09 inizieranno lunedì 29 settembre 2008
Informazioni sul docente
Dipartimento di Ingegneria dell'Infomazione
Università di Modena e Reggio Emilia, Via Vignolese 905 - 41100 Modena
Telefono 0592056190 - Fax 0592056129
Orario delle Lezioni
Le lezioni si tengono dal 29 settembre al 19 dicembre 2008 con il seguente orario:
- Lunedì dalle 11 alle 13 in aula VI presso il dipartimento di Matematica
- Martedì dalle 11 alle 13 in aula VI presso il dipartimento di Matematica
- Mercoledì dalle 14 alle 17 nel Laboratorio Zironi presso il dipartimento di Matematica
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.
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.
Ambienti di Programmazione Utilizzati: Compilatore C, Java 1.5 di pubblico dominio (disponibili in laboratorio).
Programma Del Corso
Programmazione ad Oggetti
- Concetti generali
- Il Linguaggio Java
- Classi ed ereditarietà in Java
- I/O in Java
- Interfacce grafiche in Java
- Programmazione basata sugli eventi
Modalità D'Esame
L'esame si compone di uno scritto e 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.
Esame scritto
L'esame scritto serve a verificare che lo studente abbia acquisito le nozioni di astrazione, classificazione, ereditarietà e polimorfismo.
L'esame consiste nella modellazione di alcune entità e la relativa implementazione in Java.
È possibile vedere il testo di alcuni esercizi.
NOTE:
- l'esame scritto è solo per l'insegnamento da 9 CFU;
- per l'iscrizione all'esame scritto è necessario inviare una email al docente entro 2 giorni prima dell'appello scritto stesso;
- è necessario aver superato lo scritto per presentare il progetto;
- la presentazione del progetto può avvenire anche in un appello diverso da quello dello scritto;
- la consegna di uno scritto cancella il voto precedente; la partecipazione ad uno scritto senza consegnare non cancella il voto precedente.
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 interfaccia grafica tramite cui interagire con il programma stesso.
- Sfrutti i meccanismi della programmazione ad oggetti:
- incapsulamento;
- ereditarietà e, se necessario, le classi astratte e le interfacce (si considerano escluse le relazioni di ereditarietà diretta da classi di libreria Java);
- polimorfismo.
- Sfrutti le classi di sistema Java per la gestione dell'input/output (Reader, Writer, InputStream, OutputStream).
Il programma deve essere una applicazione Java e NON una applet. 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. È opportuno provare il proprio programma in laboratorio prima di presentarlo in sede d'esame.
Il software deve essere accompagnato da pagine di documentazione HTML (tipicamente le pagine generate tramite Javadoc) che descrivano le scelte di progetto effettuate e la struttura del sistema software.
A progetto realizzato, si valuterà il progetto (e il voto conseguente), ferma restando la possibilità del docente (e dello studente) di richiedere l'integrazione nel progetto di ulteriori funzionalità/caratteristiche.
È possibile presentare progetti di gruppo (2 persone), posto che l'ampiezza del progetto sia tale da giustificare il suo sviluppo cooperativo. In tale caso, comunque, la discussione sarà esplicitamente volta a valutare, per ciascuno dei componenti del gruppo, l'effettiva padronanza d'uso dei concetti di base della programmazione ad oggetti, del linguaggio Java e delle sue librerie Java, oltre naturalmente all'apporto individuale dato al progetto globale da ogni singolo membro del gruppo.
Problemi DA EVITARE in sede di esame:
- Il programma non funziona
- Manca qualcosa (di solito, la documentazione)
- Il progetto è diviso su più programmi (eventualmente da concordare con il docente)
- L’ereditarietà è usata male
- "Non mi ricordo perché ho fatto il programma tempo fa"
Appelli
La sessione è aperta. Le date degli appelli sono disponibili sul sito del corso di laurea all'indirizzo
http://informatica.scienze.unimore.it/calendario_esami.shtml
Dall'AA 2006/07 viene usata la verbalizzazione elettronica; chi vuole sostenere l'esame DEVE quindi iscriversi tramite il sito di ESSE3.
NOTA: sul sito di ESSE3 sono presenti le date degli appelli orali, per la presentazione dei progetto. Per l'iscrizione agli appelli scritti è necessario inviare una email al docente entro 2 giorni prima dell'appello scritto stesso, usando l'indirizzo email universitario e specificando nome, cognome e matricola.
Risultati
Risultati degli appelli scritti:
- 15 dicembre 2008
- 14 gennaio 2009
- 19 febbraio 2009
- 10 giugno 2009
- 22 giugno 2009
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 Programmazione ad Oggetti e Introduzione alla Programmazione ad Oggetti è 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
- Novità di Java 2 SE 5
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.
- È possibile, per la parte C soltanto, usare un ambiente di programmazione integrato per il C disponibile qui: Il compilatore DJGPP
Esercitazioni di laboratorio
Gli esercizi di laboratorio si possono trovare nella seguente pagina: Esercizi di Programmazione ad Oggetti.