Object-Oriented Programming Laboratory
Hands-on Java laboratory synchronized with the Object-Oriented Programming course: each session applies concepts from the preceding POO class.
Schedule
Laboratory onboarding: JDK, IDE, Git, and initial project setup (preparation for OOP)
First Java project: compilation, execution, simple classes, and objects (application of the 10/08 OOP class)
Abstract data types, classes, and objects: state, behavior, and identity (application of the 17/08 OOP class)
Implementing attributes, methods, references, and object creation in Java (application of the 24/08 OOP class)
UML modeling: class diagrams, associations, and whole-part structures (application of the 31/08 OOP class)
UML workshop: turning requirements into classes, associations, and responsibilities; review after the holiday
Encapsulation in Java: modifiers, getters/setters, invariants, and validation (application of the 14/09 OOP class)
Responsibilities and design quality: cohesion, coupling, and method refactoring (application of the 21/09 OOP class)
Overloading and constructors: initialization, lifecycle, and garbage collection in Java (application of the 28/09 OOP class)
Packages and visibility: public, protected, private, and default access in a Java project (application of the 05/10 OOP class)
Scope and visibility lab: reorganizing packages and correcting access after the holiday
Science and Technology Week - guided, non-assessment activity: Java project organization and integration of previous units
Inheritance in Java: superclasses, subclasses, overriding, and behavior extension (application of the 26/10 OOP class)
Inheritance and composition lab: class hierarchies and reuse after the holiday
Interfaces and abstract classes: implementing contracts and comparing composition with inheritance (application of the 09/11 OOP class)
- No class
National Day of Zumbi and Black Consciousness holiday
Integrative project: class hierarchy, GRASP, and object-oriented refactoring (application of the 16/11 and 23/11 OOP classes)
Polymorphism and dynamic binding: interfaces, overriding, and project integration (application of the 30/11 OOP class)
- Special exams
special examination period; no regular laboratory session