Object Oriented Programming A - L

Academic Year 2023/2024 - Teacher: Antonella DI STEFANO

Expected Learning Outcomes

The course is an introduction to the object-oriented programming (OOP) by Java.
The course has the main objective of providing students with the basic concepts of class and object and the fundamental principles of encapsulation, polymorphism, inheritance and exception handling.
The course also introduces techniques and tools for application programs development using the Java programming language, also using parametric, multithreaded and event programming concepts.

Course Structure

Lessons ex-catedra and laboratory activities.

Detailed Course Content

Topics

  1. 1  (*) Objects. Classes and interfaces.

  2. 2  (*) Object oriented programming principles: encapsulation, inheritance and polimorphism.

  3. 3  Introduction to UML.

  4. 4  IDE for Java programming: NetBeans.

  5. 5  (*) Introduction to Java.

  6. 6  (*) Encapsulation and access modifiers.

  7. 7  (*) Inheritance and polimorphism.

  8. 8  (*) Abstract classes and packages.

  9. 9  (*) Exception handling.

  10. 10  Strings.

  11. 11  I/O package

  12. 12  (*) Parametric programming.

  13. 13  Enumerations and autoboxing.

  14. 14  Collections.

  15. 15  (*) Multithreading.

  16. 16  Events programming.

  17. 17  GUI.

  18. 18  Socket and network programming.

  19. (*) Compulsory topics.

Course Planning

 SubjectsText References
1(*)Concetto di ''oggetto''. Relazione tra oggetti. Concetto di ''classe'' e di ''interfaccia''. Contratto di una classe.
2(*)Principi di base della programmazione ad oggetti: incapsulamento, ereditatietà e polimorfismo.
3Cenni di UML e regole di progettazione del software
4Uso di un IDE per la programmazione Java: es. NetBeans
5(*)il linguaggio di programmazione ad oggetti di riferimento: Java
6(*)Incapsulamento e modificatori di accesso
7(*)Ereditarietà e polimorfismo
8(*)Classi astratte ed interfacce e Package
9(*)Gestione delle eccezioni
10I/O package
11(*)Programmazione parametrica -Generics
12classi wrapper
13(*)Collections, Collection e Map
14ordinamento: Comparator<> e Comparable<>
15Enumerazioni
16(*)Multithreading
17cenni sulle classi e le interfacce di rete: i socket
18gli argomento contrassegnati con (*) indica conoscenze minime irrinunciabili per il superamento dell'esame: la loro conoscenza è condizione necessaria ma non sufficiente per il superamento dell'esame
VERSIONE IN ITALIANO