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
Recommended Technologies to Explore
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
-
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
-
Join the hackathon GitHub organization:
- Follow the Git Setup Guide
- Create a repository for your project
- Set up a proper .gitignore for Java projects
-
Plan your architecture:
- Draw class diagrams for your main components
- Define interfaces and relationships
- Apply design patterns where appropriate
-
Implement incrementally:
- Start with core functionality
- Add features one by one
- Write tests alongside your code
Workshops Recommended for You
- 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.