CS 330 – Object Oriented Programming

In my Object-Oriented Programming course, I focused on the core principles of object-oriented programming, such as encapsulation, inheritance, polymorphism, and abstraction. I learned how to design classes and create objects, making my code more modular and reusable.

Throughout the course, I explored how to:

  • Design Classes and Define Relationships: I structured classes and established relationships like inheritance and composition to create more organized, maintainable code.
  • Apply Design Patterns: I learned common design patterns, such as Singleton, Factory, and Observer, to tackle common software design challenges.
  • Use Encapsulation and Data Hiding: I practiced safeguarding data within objects and controlling access to maintain data integrity.
  • Implement Polymorphism and Interfaces: I applied polymorphism to allow objects to behave in different ways, creating flexible, adaptable code.

Attached is an example of a UML diagram that our team used to map out our project for the course.

This course strengthened my understanding of object-oriented programming and equipped me with techniques to write efficient, organized, and scalable code.

Throughout the course, we completed several projects, one of which was a group project where we had several teams all dedicating their time to coding small snippets that were interchangeable and worked together when uploaded to a GitHub repository. It taught me a lot about project management, and the real process a team goes through when trying to communicate needs to an end goal.