Coursework completed for Grade 11 Computer Science (ICS3U).
This repository contains eight major Java assignments that progressively develop skills in programming fundamentals, problem solving, object-oriented design, file handling, graphical programming, and data processing.
- Java
- Object-Oriented Programming (OOP)
- Java Swing
- File I/O
- Arrays
- Methods and Modular Programming
- String Manipulation
- Conditional Logic and Loops
A collection of programs focused on arithmetic operations, variables, and numerical problem solving.
- Cash register and change calculator
- Sales tax calculations
- Bill and coin breakdowns
- Weighted test score calculator
- Percentage-based calculations
- Variables and constants
- Mathematical calculations
- Type conversion
- Switch statements
- Numeric data manipulation
cashHelp.javaWeighedDown.java
Programs that model exponential growth and explore Java's numeric data types.
- Rabbit population growth simulation
- Annual cost tracking
- Exponential growth modeling
- Large number calculations
- Integer and long data type comparisons
- Loops
- Growth algorithms
- Data types
- Mathematical modeling
- Program flow control
RabbitRabbit.javaRabbitsRabbits.java
Interactive console applications that use string manipulation, user input, and menu-driven programming.
- Name formatting utility
- Paragraph word search and analysis
- Interactive calculator
- Payroll calculator
- Menu-driven interfaces
- String manipulation
- User input with Scanner
- Conditional logic
- Switch statements
- Text processing
- Input validation
StringyCheese.javaScrabble.javaCalcTime.javaWantsAndNeeds.java
Games and applications built using reusable methods and modular program design.
- Number guessing game
- Random number generation
- Two-player Pig dice game
- Score tracking
- Turn-based gameplay
- Method creation
- Parameter passing
- Return values
- Program decomposition
- Game logic implementation
GuessGuess.javaPigGame.java
An object-oriented monster battle game using custom classes and object interactions.
- Custom Monster class
- Player-created monsters
- Turn-based combat system
- Health and power management
- Battle and upgrade mechanics
- Object-Oriented Programming
- Classes and objects
- Constructors
- Instance variables
- Method design
- Object interaction
MonsterBattle.java
An introduction to graphical user interfaces and computer graphics using Java Swing.
- Window creation with Swing
- Custom graphics rendering
- House scene drawing
- Shape and color manipulation
- Event-driven programming
- Java Swing
- Graphics programming
- GUI development
- Coordinate systems
- Event handling
HouseInTheHills.java
An array manipulation project that performs various operations on collections of data.
- Random array generation
- Array searching
- Array reversal
- Average calculations
- Element replacement
- Array transformation
- Array processing
- Searching algorithms
- Iteration
- Data manipulation
- Method reuse
ArrayOfSunshine.java
A file-processing application that analyzes class grades and generates statistics.
- Student grade management
- File reading and writing
- Grade lookup
- Highest and lowest grade analysis
- Class average calculation
- Grade curving system
- File I/O
- BufferedReader and BufferedWriter
- Data parsing
- Arrays
- Statistical analysis
- Exception handling
ClassList.javastudent.txt
A culminating project that combines concepts learned throughout the course into a complete trivia game.
- 20-question trivia challenge
- Multiple-choice question system
- File-based question database
- Prize money tracking
- Lives/chance system
- Win and lose conditions
- File processing
- Arrays
- Methods
- User interaction
- Game development
- Data organization
- Program design
WinBigOrGoHome.javaQnA.txt
Throughout these assignments I gained experience with:
- Java programming fundamentals
- Object-oriented software development
- GUI programming with Java Swing
- File input and output
- Array manipulation and processing
- String processing
- Modular program design
- Algorithmic problem solving
- Game development
- Data analysis and reporting
- Software testing and debugging
- Technical documentation
Potential future enhancements include:
- Database integration
- More advanced graphical interfaces
- Persistent save systems
- Networking and multiplayer functionality
- Unit testing
- Design patterns
- API integrations
- Full-stack application development