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
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.
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.
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.
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 |
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 |
The laboratory component (CSL304) focuses on hands-on implementation of object-oriented programming concepts using Java, providing practical experience in developing robust applications.
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.
| # | 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 |
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 |
| # | Resource | Description |
|---|---|---|
| 1 | Interactive Lab Portfolio | Interactive dashboard with source code descriptions and visualizations |
| 2 | Lab README | Detailed navigation guide with source code descriptions |
Important
Special thanks to Mega Satish and Saakshi Deokar for their meaningful contributions, guidance, and support that helped shape this work.
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.
| # | 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 |
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.
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.
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.
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
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.
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.


