Quick Start Guide for COMP 132 Students

If you’ve taken COMP 132 (Principles of Object-Oriented Design), you have valuable experience with Java and object-oriented programming principles that will serve you well during the hackathon!

What You Already Know

From COMP 132, you’re familiar with:

  • Java programming language fundamentals
  • Object-oriented design principles
  • Classes and objects
  • Encapsulation, inheritance, and polymorphism
  • Code modularity and reusability
  • Unit testing
  • Recursion

Project Ideas Perfect for Your Skill Level

1. Desktop Application

Build a Java application with a graphical user interface using:

  • JavaFX or Swing for the GUI
  • Your object-oriented design skills to structure the application
  • MVC (Model-View-Controller) architecture

2. Mobile App Prototype

Create a simple Android app using:

  • Android Studio
  • Java for Android development
  • Material Design components

These technologies build on your Java and OOP foundations:

  • JavaFX: Modern GUI development
  • Spring Boot: Java-based web applications
  • Android SDK: Mobile app development
  • JUnit 5: Testing Framework

Getting Started Steps

  1. Set up your development environment:

    • Make sure Java JDK is installed (JDK 17+ recommended)
    • Install an IDE like IntelliJ IDEA or Eclipse
    • Set up Maven or Gradle for dependency management
  2. Join the hackathon GitHub organization:

    • Follow the Git Setup Guide
    • Create a repository for your project
    • Set up a proper .gitignore for Java projects
  3. Plan your architecture:

    • Draw class diagrams for your main components
    • Define interfaces and relationships
    • Apply design patterns where appropriate
  4. Implement incrementally:

    • Start with core functionality
    • Add features one by one
    • Write tests alongside your code
  • Mobile App Development with Prof. Goble - Perfect extension of your Java skills
  • Intro to Git & GitHub - Essential for project submission

Remember that good design is more important than complex features. Focus on writing clean, well-organized code that demonstrates solid OOP principles.