Linguaggi e Metodologie di Programmazione
Primo Emicorso: Programmazione Orientata agli Oggetti
Benvenuto nella pagina del primo emicorso di Linguaggi e Metodologie di Programmazione, dedicato alla Programmazione ad Oggetti ed al Linguaggio Java . Questa pagina contiene tutto il materiale didattico aggiornato.
Avvisi
E' possibile iscriversi al corso per l'a.a. 2023-24 tramite il seguente link Teams.Le lezioni del 13/11/2023, 15/11/2023 e 20/11/2023 sono annullate, come preannunciato, dato che il docente è in missione.
Programma
Introduzione al Paradigma OO, e a Java come linguaggio “puramente ad oggetti”, Gli Oggetti , Classi ed oggetti, Operatori, Controllo del flusso di esecuzione di un programma, Inizializzazione e eliminazione di oggetti, Controllo dell’accesso, Riuso di classi, Polimorfismo, Interfacce, Classi interne, Strutture dati, Gestione degli Errori: le Eccezioni, MetaInformazioni, Generics (..e cosa li differenzia dai Template del C++), I/O, Tipi enumerati, Meta-programmazione: le Annotazioni
Cenni su: Programmazione Concorrente e gestione della grafica
Argomenti avanzati e/o a corredo: novità di Java 8 e Java 9, Gestione OO di progetti e gestione avanzata delle dipendenze, Gestione avanzata di dipendenze a compile time: Maven, Gestione avanzata dipendenze a run-time: OSGi
Materiale didattico di accompagno al corso
Oltre al libro Thinking in Java (4th edition) gli studenti potranno avere un immediato riferimento nelle slide (in HTML) dei Sun Java Tutorials. E' possibile scaricare una versione completamente offline di questi tutorial, in vari formati, da qui
Il corso è introdotto da un breve excursus sull' evoluzione delle metodologie e dei linguaggi di programmazione
Di seguito, gli argomenti del corso allineati rispetto ai capitoli del libro e ai tutorial della Sun:
- Capitoli: Introduction to Objects (pag. 15), Everything Is an Object (pag. 41) del libro
- Java Sun Tutorials: The Java Technology Phenomenon, Object-Oriented Programming Concepts, Classes and Objects
- Capitoli: Controlling Execution (pag. 93) del libro
- Java Sun Tutorials: Expressions, Statements, and Blocks, Control Flow Statements
- Capitoli: Initialization & Cleanup (pag. 107) del libro
- Java Sun Tutorials: Object-Oriented Programming Concepts, Classes and Objects
- Capitoli: Access Control (pag. 145), Reusing Classes (pag. 165), Polymorphism (pag. 193), Interfaces (pag. 219), Inner Classes (pag. 243) del libro
- Java Sun Tutorials: Interfaces and Inheritance (escluso Enums)
- Java Sun Tutorials: The Platform Environment, Packages
- Capitoli: Holding Your Objects (pag. 275), Arrays (pag. 535, escluso parte sui Generics), Containers in Depth (pag. 567) del libro
- Java Sun Tutorials: Collections
- Capitoli: Error Handling with Exceptions (pag. 313) del libro
- Java Sun Tutorials: Exceptions
- Capitoli: Type Information (pag. 393), Strings (pag. 355) del libro
- Java Sun Tutorials: Trail on Reflection, Strings,
- Capitoli: Generics (pag. 439), Arrays (pag. 535, solo parte sui Generics) del libro
- Java Sun Tutorials: Generics
- Capitoli: I/O (pag. 647) del libro
- Java Sun Tutorials: Basic I/O
- Capitoli: Enumerated Types (pag. 725) del libro
- Java Sun Tutorials: Enum Types
- Capitoli: Annotazioni (pag. 761) del libro
- Java Sun Tutorials: Annotations
- Maven e il "Project Object Model"
- Scaricare Maven e studiare il relativo manuale utente
Introduzione al Paradigma OO, e a Java come linguaggio “puramente ad oggetti”, Gli Oggetti, Classi ed oggetti
Operatori
Controllo del flusso di esecuzione di un programma
Inizializzazione e eliminazione di oggetti
Controllo dell’accesso, Riuso di classi, Polimorfismo, Interfacce, Classi interne
Organizzazione del codice
Strutture Dati
Gestione degli Errori: le Eccezioni
MetaInformazioni
Generics
I/O
Tipi enumerati
Meta-programmazione: le Annotazioni
Gestione OO di progetti e delle dipendenze
Esercizi
Il corso frontale non seguirà necessariamente gli esercizi del libro Thinking in Java (4th edition) o dei Java Tutorial della Sun e sarà invece basato su un approccio "live" allo sviluppo di codice in Java, che accompagni le nozioni teoriche su ognuno degli argomenti trattati.
Riportiamo tuttavia qui di seguito gli esercizi a corredo del materiale didattico consigliato:- Esercizi del libro: Thinking in Java (4th edition)
- Esercitazioni svolte in classe
Compiti di Prova
Riportiamo alcuni esempi di prove d'esame, prese da compiti realmente assegnati negli anni precedenti: