Guilherme Soares

Guilherme Soares

HomeTeaching

Object-Oriented Programming

Java-based course schedule for the 2026.2 semester. Primary reference: Applying UML and Patterns by Craig Larman, with Java syntax support from Deitel & Deitel.

Schedule

  1. Programming paradigms; motivation for object orientation; introduction to Java (syllabus Unit 1; Larman, ch. 1)

  2. Abstract data types, classes, and objects; state, behavior, and identity; first Java examples (syllabus Unit 2; Larman, chs. 1 and 9)

  3. Java classes and objects: attributes, methods, references, object creation, and object use (syllabus Unit 2; Deitel, chs. 3-6)

  4. UML: class diagrams, associations, and whole-part structures (syllabus Unit 3; Larman, chs. 9 and 16)

  5. No class

    Brazilian Independence Day national holiday

  6. Object responsibilities, cohesion, coupling, and Java method implementation (syllabus Unit 3 — encapsulation block; Larman, chs. 17 and 20)

  7. Assessment

    Assessment 1 - programming paradigms, abstract data types, classes, objects, and UML (20 points)

  8. Overloading, constructors, initialization, and object lifecycle in Java; garbage collection (syllabus Unit 4; Deitel, chs. 3-8)

  9. Scope and visibility: packages and public, protected, private, and default access (syllabus Unit 5; Deitel, ch. 8)

  10. No class

    Our Lady of Aparecida national holiday

  11. Science and Technology Week - guided, non-assessment activity: scope, visibility, and organization of a Java project (syllabus Unit 5)

  12. Assessment

    Assessment 2 - encapsulation, methods, constructors, scope, and visibility (20 points)

  13. No class

    All Souls' Day national holiday

  14. Inheritance and interfaces: abstract classes, composition, and preferring composition over inheritance (syllabus Unit 6; Larman, ch. 16)

  15. Inheritance and design: substitution, protected variations, and GRASP application (syllabus Unit 6; Larman, chs. 17 and 25)

  16. Java class hierarchy lab; refactoring an object-oriented solution (syllabus Unit 6; Larman, chs. 20-21; Fowler, chs. 1-3)

  17. Assessment

    Assessment 3 - inheritance, composition, interfaces, and polymorphism (20 points)

  18. Applied polymorphism, Strategy and Observer patterns, and integrative course synthesis (syllabus Unit 7; Larman, ch. 26; Gamma et al.)

  19. Special exams

    no regular classes; any course exam date and time to be confirmed

Object-Oriented Programming - Guilherme Soares