Coursework completed for Grade 12 Computer Science (ICS4U).
This repository contains seven major Java assignments that progressively develop skills in file processing, object-oriented programming, recursion, graphics programming, algorithm analysis, and advanced data structures.
- Java
- Object-Oriented Programming (OOP)
- File I/O
- Random Access Files
- Arrays and Array Processing
- Recursion
- Searching and Sorting Algorithms
- Binary Search Trees
- Data Structures
- Algorithm Analysis
- Modular Programming
- Java AWT
- HSA2 Graphics Library
A file-processing application that reads student records and allows users to sort, search, display, and save information.
- Student record file input
- Last-name sorting
- Student number searching
- Record printing
- Sorted file output
- Menu-driven interface
- File I/O
- 2D Arrays
- Searching Algorithms
- Bubble Sort
- Input Validation
- Exception Handling
- Modular Programming
StudentReader.java
A travel reservation management system that demonstrates object-oriented programming through hotel, vehicle, and airline reservations.
- Hotel reservations
- Car rental management
- Airline booking system
- Customer information management
- Reservation summaries
- Interactive booking interface
- Object-Oriented Programming
- Inheritance
- Encapsulation
- Constructors
- Method Overloading
- Class Design
- User Input Validation
BookingInterface.javaReservation.javaHotel.javaCar.javaAirline.javaprimaryClient.java
A role-playing game character management system capable of reading, editing, searching, and writing character records using both text and binary files.
- Character creation
- Character editing
- Random stat generation
- Class and race management
- Binary file storage
- Random-access file processing
- Character searching
- Character deletion
- Random Access Files
- Binary File Processing
- Object-Oriented Programming
- Arrays of Objects
- File Conversion
- Data Persistence
- Menu-Driven Interfaces
Interface.javaCharacter.javaCharacterStats.txt
A collection of recursive programs that solve various computational problems using recursive algorithms.
- Palindrome checker
- Fractal pattern generator
- Shape counter
- Mock stock market analyzer
- Recursive file processing
- Recursive Algorithms
- Divide and Conquer
- Flood Fill Techniques
- 2D Array Traversal
- File Processing
- Algorithm Design
- Problem Decomposition
Interface.javadata41.txt
A graphical screensaver suite developed in Java using the HSA2 Graphics Library. The program cycles through multiple animated scenes and visual simulations that demonstrate real-time graphics rendering and animation concepts.
- Animated mandala generator
- Beam battle simulation
- Shape acceleration screensaver
- Real-time rendering
- Collision detection
- Dynamic color transitions
- Procedural visual effects
- Multi-scene animation system
- Graphics Programming
- Animation Systems
- Collision Detection
- Real-Time Rendering
- Event-Driven Programming
- Object-Oriented Design
- Visual Simulation Development
- Custom Graphics Library Usage
Interface.java
- Java AWT
- HSA2 Graphics Library
- GraphicsConsole Framework
An algorithm benchmarking application that compares the performance of multiple searching and sorting algorithms using large datasets.
- Selection Sort
- Quick Sort
- Merge Sort
- Sequential Search
- Binary Search
- Runtime benchmarking
- Performance reports
- Random array generation
- Algorithm Design
- Big O Analysis
- Performance Benchmarking
- Recursion
- Array Manipulation
- Search and Sort Optimization
- Data Processing
MoveAndFind.javaTreasureHunter.java
A text-analysis application that reads files into a Binary Search Tree and performs searches, frequency analysis, and alphabetical output.
- Binary Search Tree construction
- Word frequency tracking
- Alphabetical word listings
- Word searching
- Tree traversal
- Node counting
- Text file analysis
- Binary Search Trees
- Tree Traversal
- Recursion
- Data Structures
- File Processing
- Text Parsing
- Frequency Analysis
rootInterface.javaliberty.txt
Throughout these assignments I gained experience with:
- Advanced Java programming
- Object-oriented software development
- File input and output
- Binary and random-access file management
- Graphics programming and animation
- Recursive problem solving
- Searching and sorting algorithms
- Performance analysis and benchmarking
- Binary Search Trees
- Data structures and algorithms
- Event-driven programming
- Software testing and debugging
- Technical documentation
Potential future enhancements include:
- JavaFX-based graphical interfaces
- Database integration
- Advanced data visualizations
- Additional data structures (heaps, graphs, hash tables)
- Design pattern implementation
- Unit testing frameworks
- Multithreaded applications
- Network programming
- More advanced game development projects
- Full-stack software development