Java examples, educational tools, applications, and games supporting CSC 3100: Introduction to Software Engineering.
These repositories illustrate how software evolves from requirements and UML models to implementation, testing, and maintenance. Topics include object-oriented design, design patterns, architecture, dependency management, user interfaces, and communication.
Repositories are grouped by purpose: edu- for teaching examples, app- for applications and projects, game- for games, and cloud- for networking and service examples.
- edu-plantuml — Create and render UML diagrams with PlantUML.
- edu-patterns — Study common object-oriented design patterns.
- edu-maven — Explore Maven and Java dependency management.
- edu-logging — Practice application logging with SLF4J and Logback.
- edu-plotter — Compare classic, modern, and legacy Java plotting examples using Observer and Decorator.
- edu-swing — Explore Java Swing components, event handling, and graphical interfaces.
- app-paint — Explore modular design and interaction in a drawing application.
- app-planIt-poker — Starter application for Java UI design.
- app-codeviz-template — Starter template for visualizing code and software structure.
- cloud-http-fundamentals — Consume external HTTP APIs from Java, including JSON and authentication examples.
- cloud-mqtt-fundamentals — Demonstrate publish–subscribe communication with Java and MQTT.
- game-pong — Explore Java sockets and client–server communication.
- game-mqttworld — Explore an MQTT-connected Java game world.
- game-pacman — Practice timers, threads, and keyboard events.
- game-tictactoe — Practice modular design and object-oriented principles.
- game-battleship — Explore a draft Battleship implementation.
- game-hanoitowers — Explore a graphical Tower of Hanoi implementation.
Additional course applications and exercises are available to organization members in private repositories.
These projects are intended for educational exploration, experimentation, and extension. See each repository's README for setup instructions and its license for usage terms.