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