Skip to content

Amey-Thakur/OOPM-JAVA-LAB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

325 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

University of Mumbai

Object-Oriented Programming Methodology (OOPM) Lab

CSL304 ยท Semester III ยท Computer Engineering

License: CC BY 4.0 University Institution Curated by

A comprehensive academic resource for Object-Oriented Programming Methodology (OOPM) Lab, covering Java fundamentals, object-oriented concepts, inheritance, polymorphism, exception handling, multithreading, and GUI development essential for computer engineering foundations.


Overview ย ยทย  Contents ย ยทย  Reference Books ย ยทย  Quizzes ย ยทย  Laboratory ย ยทย  Mini-Project ย ยทย  Authors ย ยทย  Syllabus ย ยทย  Usage Guidelines ย ยทย  License ย ยทย  About ย ยทย  Acknowledgments


Overview

Object-Oriented Programming Methodology (OOPM) Lab (CSL304) is a core subject in the Second Year (Semester III) of the Computer Engineering curriculum at the University of Mumbai. This course establishes the foundational understanding of object-oriented programming principles using Java, which is crucial for developing robust, maintainable, and scalable software systems.

Course Topics

The curriculum encompasses several key domains in object-oriented programming theory and application:

  • Introduction to Java: History, features, JVM architecture, compilation process, and program structure.
  • Data Types and Operators: Primitive types, variables, type casting, and operator precedence.
  • Control Statements: Decision-making (if-else, switch), loops (for, while, do-while), and branching (break, continue, return).
  • Classes and Objects: Class definition, object creation, methods, constructors, and access modifiers.
  • Arrays and Strings: Single and multi-dimensional arrays, String class, StringBuffer, and string manipulation.
  • Inheritance: Single, multilevel, and hierarchical inheritance, method overriding, and super keyword.
  • Polymorphism: Method overloading, constructor overloading, and runtime polymorphism.
  • Abstract Classes and Interfaces: Abstraction, abstract methods, and interface implementation.
  • Packages: Built-in packages, user-defined packages, and access protection.
  • Exception Handling: Try-catch-finally, throw, throws, and custom exceptions.
  • Multithreading: Thread creation, lifecycle, synchronization, and inter-thread communication.
  • Applets: Applet lifecycle, graphics, event handling, and parameter passing.
  • Collections Framework: Vector, ArrayList, and other collection classes.

Repository Purpose

This repository represents a curated collection of study materials, reference books, practice quizzes, and laboratory programs compiled during my academic journey. The primary motivation for creating and maintaining this archive is simple yet profound: to preserve knowledge for continuous learning and future reference.

As I progress in my career, I recognize that object-oriented programming fundamentals remain essential for software engineering, system design, and technical interviews. This repository serves as my intellectual reference point: a resource I can return to for relearning concepts, reviewing methodologies, and strengthening understanding when needed.

Why this repository exists:

  • Knowledge Preservation: To maintain organized access to comprehensive study materials beyond the classroom.
  • Continuous Learning: To support lifelong learning by enabling easy revisitation of fundamental OOP concepts.
  • Academic Documentation: To authentically document my learning journey through OOPM and OOPM Lab.
  • Community Contribution: To share these resources with students and learners who may benefit from them.

Note

All materials in this repository were created, compiled, and organized by me throughout my undergraduate program (2018-2022) as part of my coursework, laboratory assignments, and project implementations.


Repository Contents

Reference Books

This collection includes comprehensive reference materials covering all major topics:

# Resource Focus Area
1 Java The Complete Reference - Herbert Schildt Comprehensive Java reference guide
2 Programming With Java A Primer - E. Balagurusamy Core Java programming concepts
3 Java Programming From the Ground Up - Bravaco & Simoson Foundational Java programming
4 Java Notes For Professionals Quick reference notes
5 Java For Beginners, In 8 Hours Beginner-friendly Java guide
6 Oracle Certified Professional Java SE 7 Programmer Exams Certification preparation
7 Algorithms Notes For Professionals Algorithm implementation reference

Quizzes

Practice tests for Java fundamentals and concept reinforcement:

# Quiz Description Date Marks
1 Practice Test of Java Basics 1 Java Basics August 24, 2020 37/37
2 Practice Test of Java Basics 2 Java Basics 2 July 20, 2020 60/60
3 Practice Test of Java Basics 3 Java Basics 3 July 27, 2020 49/50
4 Practice Test of Java Basic Strings Java Basics Strings August 3, 2020 50/50

OOPM Laboratory

The laboratory component (CSL304) focuses on hands-on implementation of object-oriented programming concepts using Java, providing practical experience in developing robust applications.

Total Source Codes Language

Live Demo

Tip

Live Implementation: For a comprehensive visual showcase, visit the OOPM Lab Portfolio Dashboard. For the complete source code and detailed documentation, visit the OOPM Lab directory. Visualization is key. Always draw the state of your objects and class hierarchies on paper before and during code implementation.

Laboratory Experiments

# Category Programs Topics Covered
1 Arrays 3 1-D arrays, 2-D arrays, array parameters
2 Looping & Branching 8 for, while, do-while, break, continue, return
3 Classes & Objects 1 Class creation, methods, object instantiation
4 Method Overloading 1 Method signature variations, compile-time polymorphism
5 Constructors 3 Default, parameterized, constructor overloading
6 Inheritance 2 Single inheritance, multilevel inheritance
7 Abstract Class 1 Abstraction, abstract methods
8 User Defined Package 3 Package creation, import statements
9 Exception Handling 1 Custom exceptions, try-catch
10 String Operations 2 String class, StringBuffer operations
11 Multithreading 1 Thread creation, concurrent execution
12 Vector 1 Dynamic arrays, Vector class operations
13 Input Methods 3 Scanner, BufferedReader, Console
14 Applets 5 Basic applets, parameter passing, graphics

Program Details

Array Operations (3 Programs)
Program Description Code
Student_Marks_Report.java Basic 1-D array operations (Student Marks) View
Array_Parameter_Passing.java Passing arrays as method parameters View
Matrix_Addition.java 2-D array operations and matrix handling View
Looping & Branching (8 Programs)

Looping Constructs:

Program Description Code
For_Loop.java For loop demonstration View
While_Loop.java While loop demonstration View
Do_While_Loop.java Do-while loop demonstration View

Branching Statements:

Program Description Code
Break_Statement.java Break statement usage View
Continue_Statement.java Continue statement usage View
Return_Statement.java Return statement usage View
Labelled_Break.java Labelled break for nested loops View
Labelled_Continue.java Labelled continue for nested loops View
Classes, Methods & Objects (1 Program)
Program Description Code
Class_Method_Demo.java Class creation with methods and object instantiation View
Method Overloading (1 Program)
Program Description Code
Method_Overloading_Demo.java Method overloading with different parameters View
Constructor & Constructor Overloading (3 Programs)
Program Description Code
Default_Constructor_Demo.java Default constructor demonstration View
Constructor_Types_Demo.java Different types of constructors View
Constructor_Overloading_Demo.java Constructor overloading examples View
Single & Multilevel Inheritance (2 Programs)
Program Description Code
Single_Inheritance_Demo.java Single inheritance demonstration View
Multilevel_Inheritance_Demo.java Multilevel inheritance demonstration View
Abstract Class (1 Program)
Program Description Code
Abstract_Class_Demo.java Abstract class and method implementation View
User Defined Package (3 Programs)
Program Description Code
Package_Demo.java Main program using custom package View
Area_Calc.java Area calculation package View
Perimeter_Calc.java Perimeter calculation package View
User Defined Exception (1 Program)
Program Description Code
User_Defined_Exception_Demo.java Custom exception class implementation View
String Operations (2 Programs)
Program Description Code
String_Operations_Demo.java String class operations and methods View
String_Buffer_Demo.java StringBuffer operations View
Multithreading (1 Program)
Program Description Code
Multithreading_Demo.java Thread creation and concurrent execution View
Vector (1 Program)
Program Description Code
Vector_Operations_Demo.java Vector class operations and dynamic arrays View
Accept Input from User (3 Programs)
Program Description Code
Input_Using_Scanner.java Input using Scanner class View
Input_Using_Buffered_Reader.java Input using BufferedReader View
Input_Using_Console.java Input using Console class View
Applets (5 Programs)

Basic Applets:

Program Description Code
Fill_Color_Applet.java Basic applet with color filling View
Fill_Color_Applet.html HTML file for applet embedding View

Passing Parameters to Applets:

Program Description Code
Applet_Parameters_Demo.java Applet receiving parameters View
Applet_Parameters_Demo.html HTML file with applet parameters View

Laboratory Documentation

# Resource Description
1 Interactive Lab Portfolio Interactive dashboard with source code descriptions and visualizations
2 Lab README Detailed navigation guide with source code descriptions

OOPM Mini-Project

A classic graphical Hangman game implemented using Java Applets and AWT/Swing components.

Presentation Code Repository


Hangman Game Demo

Important

๐Ÿค๐Ÿป Special Acknowledgement

Special thanks to Mega Satish and Saakshi Deokar for their meaningful contributions, guidance, and support that helped shape this work.

Project Overview

A classic Hangman Word Game developed as a mini-project for the Object-Oriented Programming Methodology (Java) Lab. The application challenges users to guess hidden words character by character within a limited number of attempts. It leverages Java for robust backend logic, utilizing fundamental Object-Oriented Programming principles like inheritance and encapsulation to structure the game's components effectively. This project showcases the practical application of Java syntax and logic to build an interactive and entertaining desktop application.

Note

Research Impact: The source code, presentation, and project report are published on ResearchGate.

Resources

# Resource Description Link
1 Presentation Research paper presentation and visuals ResearchGate DOI
2 Source Code Original source code publication ResearchGate DOI
3 Game Repository Standalone repository for the game Hangman Word Game
4 Project README Internal documentation for the mini-project Detailed Documentation

Syllabus

Official CBCGS Syllabus
Complete Second Year Computer Engineering syllabus document from the University of Mumbai, including detailed course outcomes, assessment criteria, and module specifications for OOPM and OOPM Lab.

Important

Always verify the latest syllabus details with the official University of Mumbai website, as curriculum updates may occur after this repository's archival date.


Usage Guidelines

This repository is openly shared to support learning and knowledge exchange across the academic community.

For Students
Use these resources as reference materials for understanding concepts, reviewing problem-solving techniques, and preparing for examinations. All content is organized for self-paced learning.

For Educators
These materials may serve as curriculum references, assignment examples, or supplementary teaching resources. Attribution is appreciated when utilizing content.

For Researchers
The documentation and organization may provide insights into academic resource curation and educational content structuring.


License

This repository and all linked academic content are made available under the Creative Commons Attribution 4.0 International License (CC BY 4.0). See the LICENSE file for complete terms.

Note

Summary: You are free to share and adapt this content for any purpose, even commercially, as long as you provide appropriate attribution to the original author.


About This Repository

Created & Maintained by: Amey Thakur
Academic Journey: Bachelor of Engineering in Computer Engineering (2018-2022)
Institution: Terna Engineering College, Navi Mumbai
University: University of Mumbai

This repository represents a comprehensive collection of study materials, reference books, practice quizzes, and laboratory programs curated during my academic journey. All content has been carefully organized and documented to serve as a valuable resource for students pursuing Object-Oriented Programming Methodology (OOPM) Lab.

Connect: GitHub ย ยทย  LinkedIn ย ยทย  ORCID

Acknowledgments

Grateful acknowledgment to Mega Satish and Saakshi Deokar for their collaboration on the Mini-Project. Their valuable insights and teamwork played a significant role in the successful completion of the game development, and their contributions were instrumental throughout the course.

Grateful acknowledgment to the faculty members of the Department of Computer Engineering at Terna Engineering College for their guidance and instruction in Object-Oriented Programming Methodology. Their clear teaching and continued support helped me develop a strong understanding of object-oriented principles and Java programming.

Special thanks to the mentors and peers whose encouragement, discussions, and support contributed meaningfully to this learning experience.


โ†‘ Back to Top

Overview ย ยทย  Contents ย ยทย  Reference Books ย ยทย  Quizzes ย ยทย  Laboratory ย ยทย  Mini-Project ย ยทย  Authors ย ยทย  Syllabus ย ยทย  Usage Guidelines ย ยทย  License ย ยทย  About ย ยทย  Acknowledgments


๐Ÿ”ฌ OOPM Laboratory ย ยทย  Mini-Project ย ยทย  ๐ŸŽฎ Hangman Word Game Repository


Computer Engineering (B.E.) - University of Mumbai

Semester-wise curriculum, laboratories, projects, and academic notes.