Object-Oriented Programming - MC322

The course aims to introduce and develop object-oriented thinking in students. It covers fundamental OO concepts such as classes, objects, encapsulation, inheritance, and polymorphism, as well as good practices for designing and implementing classes. It also teaches how to use UML for modeling and apply design patterns, preparing students to create robust and scalable software.

Contents

  • Understanding Basic OO Concepts: Teaching the difference between procedural and object-oriented programming, and introducing the concepts of class, object, attribute, and method.

  • Developing Object-Oriented Thinking: Helping students think in terms of objects, encapsulation, inheritance, and polymorphism.

  • Learning to Design and Implement Classes: Teaching how to design robust classes, with minimal and efficient interfaces, as well as good practices for access methods (getters and setters) and data hiding.

  • Working with Inheritance and Composition: Explaining how to use inheritance for code reuse and composition for building complex objects from simpler objects.

  • Applying Design Patterns: Introducing design patterns that facilitate code reuse and maintenance.

  • Modeling with UML: Teaching how to use UML (Unified Modeling Language) to model object-oriented systems.

  • Practical Implementation: Providing practical examples and exercises for implementing the concepts in programming languages such as Java, C#, and others.

References

Marcos M. Raimundo
Marcos M. Raimundo
Professor of Machine Learning and Optimization

My research interests include Machine Learning, Multi-objective Optimization, Ethical AI, mathematical programming.