Skip to content

JulianLopez11/POOB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

140 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

POOB - Programación Orientada a Objetos

Collection of laboratories and projects of the subject "Programación Orientada a Objetos" at the Escuela Colombiana de Ingeniería Julio Garavito (ECI).

Purpose

This repository documents the learning process of the POOB university course, focusing on object-oriented design, design patterns, GUI development with Java Swing, and iterative software delivery. It includes laboratory assignments and two major iterative projects that demonstrate proficiency in Java, UML modeling, and domain/presentation architecture.

Feel free to explore and use any of the resources here for non-commercial and educational purposes. If you find something useful, you're welcome to reference it in your own learning journey.


Labs

The labs are dedicated to progressive learning of Java OOP concepts, going from basic objects to full simulation systems.

Lab 01: Basic Shapes & Kalah Game

Introduction to Java OOP fundamentals using the BlueJ IDE. Covers:

  • Basic class design (Circle, Rectangle, Triangle)
  • Canvas drawing
  • Kalah/Mancala board game implementation (Pit structure)
  • Objects First with Java methodology

Lab 02: Shapes Evolution

Continuation of Lab 01 with an evolution of the shape hierarchy and BlueJ project organization. Covers:

  • Refinement of shape classes
  • Code organization and class relationships

Lab 03: Schelling Segregation Model (Initial)

First implementation of the Schelling residential segregation model, transitioning from BlueJ to console-based execution. Covers:

  • Migration from BlueJ IDE to console project structure
  • UML design with Astah (schelling_Avance.asta)
  • First domain model for city and agent simulation
  • JAR packaging

Lab 04: Plan 15 Design Project

Design-focused laboratory centered on UML modeling and architecture planning. Covers:

  • Object-oriented analysis and design
  • UML class diagrams with Astah (Plan15.asta)
  • BlueJ-based implementation

Lab 05: DMaxwell — Maxwell's Demon Simulation

A physics-inspired simulation of Maxwell's Demon using a domain/presentation architecture. Covers:

  • Domain/Presentation layer separation
  • Custom exception handling (DMaxwellExceptions)
  • Java Swing GUI (DMaxwellGUI)
  • Unit testing (DMaxwellTest)
  • Particle simulation (red/blue particles, wall gates, grid cells)
  • Persistent data files (.dat) for test scenarios

Lab 06: Schelling Segregation Model (Final)

Final and complete implementation of the Schelling model, rebuilt in IntelliJ IDEA with a clean layered architecture. Covers:

  • Full domain model: Agent, Block, City, Person, Walker, Katalan, Light, Identifier
  • Custom exception class (CityException)
  • Java Swing GUI (CityGUI)
  • Unit testing (CityTest)
  • Persistent simulation data files (.dat)
  • Executable JAR packaging (schelling.jar)

Projects

PROBLEM MAXWELL — Maxwell's Demon (4 Cycles)

An iterative project developing and refining a simulation of Maxwell's Demon over four delivery cycles.

Cycle Description
Cycle 1 Initial design and prototype
Cycle 2 Core domain implementation
Cycle 3 Advanced logic and refinement
Final Cycle Complete deliverable with full functionality

POOBkemon — Pokemon-Inspired Strategy Game (3 Cycles)

The main course project: a fully functional Pokemon-inspired battle game built in Java with Swing. Developed across three delivery cycles with incremental feature additions.

E01 — Conceptual Design

  • UI/UX mockups (MockUp.pdf)
  • UML class diagram (PokemonEsmeralda.asta)

E02 — Development Progress

  • Updated UML design (POOBkemon.asta)
  • Development retrospective documentation

E03 — Complete Implementation

A complete, playable game with the following features:

  • Pokemon system: Type effectiveness, stats, level-based attributes
  • Move system: Physical, Special, Attribute, and State-based moves with effects
  • Trainer AI types: AttackingTrainer, ChangingTrainer, DefensiveTrainer, ExpertTrainer, MachineTrainer
  • Item system: Normal Potion, Super Potion, Hyper Potion, Revive
  • Game modes: Player vs Machine, Machine vs Machine
  • Pokedex: Full Pokemon browser panel
  • Persistent game state: Java serialization (.dat files)
  • Static and dynamic analysis reports
  • Full UML design documentation (POOBkemon.asta)

Technologies Used

  • Java 17
  • Java Swing
  • BlueJ (Labs 1–4)
  • IntelliJ IDEA (Labs 5–6, Projects)
  • Astah Professional (UML diagramming)
  • JUnit (unit testing)
  • Git

Authors


License

Distributed under the MIT License. See LICENSE for more information.

About

Collection of labs, projects, workshops and exams from the 2025-1 semester of Object-Oriented Programming (POOB) course at Escuela Colombiana de Ingeniería Julio Garavito.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors