12-Week Course Plan: Object Oriented Programming & Methodology
Week 1: Introduction to Programming Paradigms
Topics
- Programming paradigms overview
- Procedural vs Object-Oriented Programming
- Concepts of software methodology
- History and evolution of OOP
- Advantages of OOP
Lab
- Setup development environment
- Write first program (Hello World) in OOP language (Java/C++/Python)
Learning Outcome
- Understand why OOP is used in modern software development.
Week 2: Basic Programming Constructs
Topics
- Variables and data types
- Operators
- Control structures (if, switch)
- Loops (for, while, do-while)
- Input/output handling
Lab
- Programs using loops and conditions
- Number operations (prime, factorial, Fibonacci)
Learning Outcome
- Ability to write basic programs.
Week 3: Functions and Modular Programming
Topics
- Functions/methods
- Parameter passing
- Return types
- Scope of variables
- Recursion basics
Lab
- Programs using functions
- Recursive algorithms
Learning Outcome
- Break programs into reusable modules.
Week 4: Introduction to Classes and Objects
Topics
- Classes and objects
- Attributes and methods
- Object creation and memory concepts
- Constructors and destructors
Lab
- Create simple classes (Student, Book, BankAccount)
Learning Outcome
- Understand object modelling.
Week 5: Encapsulation and Data Hiding
Topics
- Access specifiers (public, private, protected)
- Encapsulation concept
- Getter and setter methods
- Advantages of data hiding
Lab
- Create encapsulated classes with validation
Learning Outcome
- Protect data using encapsulation.
Week 6: Inheritance
Topics
- Concept of inheritance
- Types of inheritance
- Single
- Multilevel
- Hierarchical
- Multiple (language dependent)
- Code reuse through inheritance
Lab
- Create class hierarchies (Person → Student → Graduate)
Learning Outcome
- Build reusable class structures.
Week 7: Polymorphism
Topics
- Function overloading
- Operator overloading (language dependent)
- Method overriding
- Dynamic binding
Lab
- Programs demonstrating compile-time and runtime polymorphism
Learning Outcome
- Implement flexible and extensible code.
Week 8: Abstraction and Interfaces
Topics
- Abstraction concept
- Abstract classes
- Interfaces
- Difference between interface and abstract class
Lab
- Implement abstract classes and interfaces
Learning Outcome
- Design generalized systems.
Week 9: Exception Handling
Topics
- Types of errors
- Exception handling concepts
- try, catch, finally
- Custom exceptions
Lab
- Programs handling runtime errors
Learning Outcome
- Build robust programs.
Week 10: File Handling
Topics
- File input/output
- Reading and writing files
- Serialization (if Java)
- File management operations
Lab
- Student record management using files
Learning Outcome
- Store and retrieve persistent data.
Week 11: Object-Oriented Design & UML
Topics
- Object-oriented analysis and design
- UML diagrams
- Class diagrams
- Sequence diagrams
- Use case diagrams
Lab
- Design UML for a mini project
Learning Outcome
- Translate real problems into OOP design.
Week 12: Mini Project & Revision
Topics
- Review of OOP concepts
- Design patterns introduction
- Code optimization and testing
Lab / Project
- Mini project examples:
- Library Management System
- Banking System
- Student Management System
Learning Outcome
- Apply OOP concepts to real applications.
- Teacher: Admin User