Skip to content

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Repository files navigation

ICS4U - Computer Science (Java)

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.

Technologies

  • 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

Assignment 1: Student File Inputs, Searches, and Sorts

A file-processing application that reads student records and allows users to sort, search, display, and save information.

Features

  • Student record file input
  • Last-name sorting
  • Student number searching
  • Record printing
  • Sorted file output
  • Menu-driven interface

Skills Demonstrated

  • File I/O
  • 2D Arrays
  • Searching Algorithms
  • Bubble Sort
  • Input Validation
  • Exception Handling
  • Modular Programming

Files

  • StudentReader.java

Assignment 2: Classes and Inheritance

A travel reservation management system that demonstrates object-oriented programming through hotel, vehicle, and airline reservations.

Features

  • Hotel reservations
  • Car rental management
  • Airline booking system
  • Customer information management
  • Reservation summaries
  • Interactive booking interface

Skills Demonstrated

  • Object-Oriented Programming
  • Inheritance
  • Encapsulation
  • Constructors
  • Method Overloading
  • Class Design
  • User Input Validation

Files

  • BookingInterface.java
  • Reservation.java
  • Hotel.java
  • Car.java
  • Airline.java
  • primaryClient.java

Assignment 3: File Writes and D&D Character Records

A role-playing game character management system capable of reading, editing, searching, and writing character records using both text and binary files.

Features

  • Character creation
  • Character editing
  • Random stat generation
  • Class and race management
  • Binary file storage
  • Random-access file processing
  • Character searching
  • Character deletion

Skills Demonstrated

  • Random Access Files
  • Binary File Processing
  • Object-Oriented Programming
  • Arrays of Objects
  • File Conversion
  • Data Persistence
  • Menu-Driven Interfaces

Files

  • Interface.java
  • Character.java
  • CharacterStats.txt

Assignment 4: Recursive Routines

A collection of recursive programs that solve various computational problems using recursive algorithms.

Features

  • Palindrome checker
  • Fractal pattern generator
  • Shape counter
  • Mock stock market analyzer
  • Recursive file processing

Skills Demonstrated

  • Recursive Algorithms
  • Divide and Conquer
  • Flood Fill Techniques
  • 2D Array Traversal
  • File Processing
  • Algorithm Design
  • Problem Decomposition

Files

  • Interface.java
  • data41.txt

Assignment 5: Graphics and Animation

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.

Features

  • Animated mandala generator
  • Beam battle simulation
  • Shape acceleration screensaver
  • Real-time rendering
  • Collision detection
  • Dynamic color transitions
  • Procedural visual effects
  • Multi-scene animation system

Skills Demonstrated

  • Graphics Programming
  • Animation Systems
  • Collision Detection
  • Real-Time Rendering
  • Event-Driven Programming
  • Object-Oriented Design
  • Visual Simulation Development
  • Custom Graphics Library Usage

Files

  • Interface.java

Libraries and Technologies

  • Java AWT
  • HSA2 Graphics Library
  • GraphicsConsole Framework

Assignment 6: Searches and Sorts

An algorithm benchmarking application that compares the performance of multiple searching and sorting algorithms using large datasets.

Features

  • Selection Sort
  • Quick Sort
  • Merge Sort
  • Sequential Search
  • Binary Search
  • Runtime benchmarking
  • Performance reports
  • Random array generation

Skills Demonstrated

  • Algorithm Design
  • Big O Analysis
  • Performance Benchmarking
  • Recursion
  • Array Manipulation
  • Search and Sort Optimization
  • Data Processing

Files

  • MoveAndFind.java
  • TreasureHunter.java

Assignment 7: Binary Tree Branches

A text-analysis application that reads files into a Binary Search Tree and performs searches, frequency analysis, and alphabetical output.

Features

  • Binary Search Tree construction
  • Word frequency tracking
  • Alphabetical word listings
  • Word searching
  • Tree traversal
  • Node counting
  • Text file analysis

Skills Demonstrated

  • Binary Search Trees
  • Tree Traversal
  • Recursion
  • Data Structures
  • File Processing
  • Text Parsing
  • Frequency Analysis

Files

  • rootInterface.java
  • liberty.txt

Key Learning Outcomes

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

Future Improvements

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

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages