Skip to content

zayd-aziz/29projects

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

29projects

A self-directed Java portfolio of 29 programs I built to learn object-oriented programming from the ground up. Instead of following a single tutorial, I worked through one concept at a time and implemented each one myself so I could explain how and why it works.

What this is

This isn't a polished product — it's a learning portfolio. Each project is a small, focused program that practices a specific OOP or computer-science concept. The goal was depth of understanding: building things from scratch rather than relying on libraries, so I actually understand what's happening underneath.

Concepts covered

  • Encapsulation & abstraction — designing classes with clear responsibilities that model real-world systems and data relationships
  • Inheritance — sharing and extending behavior across related classes
  • Polymorphism & interface-based design — writing flexible, reusable code that works across multiple types
  • Data structures from scratch — implementing stacks, queues, and linked lists by hand to understand memory and algorithmic efficiency
  • Exception handling & file I/O — reading and writing data while gracefully managing errors
  • Recursion — solving progressively harder problems by breaking them down

How to navigate

Each project is a standalone .java file in the repo root, named for what it does — for example Bank_Account_Management.java, calc_overloading.java, circle_and_cylinder.java, hierarrical_inheritance.java, and discount_system_capstone.java. Some files are core classes (like Player.java or abstract_shape_hier.java) used by the programs that demonstrate them.

To run any of them:

javac FileName.java
java FileName

Use the file whose class contains main as the entry point (for example Main.java or Main_POLY.java). Some files define supporting classes rather than a runnable main.

About me

Built by Zayd Aziz — a high school student (Class of 2027) focused on backend and ML. Profile: github.com/zayd-aziz · LinkedIn: linkedin.com/in/zaydaziz

About

29 practice coding projects

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages