Hugo Tekeng
INF1035Fall 2024Object-Oriented Programming
← Back to university path

Advanced Object-Oriented Concepts

Detailed view of the course, studied concepts, technologies used, and major academic work associated with it.

Code

INF1035

Session

Fall 2024

Domain

Object-Oriented Programming

Overview

Advanced object-oriented programming course focused on higher-level software design and development mechanisms. It allowed me to go beyond core OOP concepts by studying generics, design patterns, application robustness, event-driven programming, and advanced concepts such as design by contract and aspect-oriented programming.

Technologies used

JavaC#AspectJEclipseVisual C#Spring Boot

Key concepts covered

  • Advanced review of object-oriented concepts
  • Single and multiple inheritance
  • Class hierarchies
  • Polymorphism
  • Static and dynamic binding
  • Abstract classes and interfaces
  • Class extensions and partial structures
  • Generics
  • Collections and data structures
  • Delegates and lambda expressions in Java and C#
  • Event-driven programming
  • Exception handling
  • Refactoring
  • GoF design patterns
  • Inversion of control and dependency injection
  • Persistence with JPA and Spring Data
  • Metaprogramming: annotations and attributes
  • Memory management: GC and ARC
  • Design by contract
  • Aspect-oriented programming: aspects, interception, and OOP limits
  • Robustness, extensibility, and maintainability of applications

Coursework and evaluated components

  • Lab 1 on advanced object-oriented concepts
  • Lab 2 applying advanced concepts and/or frameworks
  • Exercises in Java and C#
  • Midterm exam
  • Final exam