Combined Bank
Post: Assistant Programmer,
Exam Date: 17.01.2026
Inheritance in Object-Oriented Programming (OOP)
Inheritance is an OOP concept where a child (derived) class inherits properties and behaviors from a parent (base) class. It helps reuse existing code and represents real-world hierarchical relationships (like Animal → Dog).
Types of Inheritance
1) Single Inheritance
One child class inherits from one parent class.
Animal | Dog
Here, Dog inherits features (like eating, breathing) from Animal.
2) Multiple Inheritance
One child class inherits from more than one parent class.
Printer Scanner
\ /
\ /
AllInOne
Here, AllInOne inherits features of both Printer and Scanner.
3) Multilevel Inheritance
A class is derived from another derived class, forming a chain.
Vehicle | Car | ElectricCar
Here, ElectricCar indirectly inherits features from Vehicle through Car.
Object-Oriented Programming (OOP) এ Inheritance
Inheritance হলো OOP এর একটি ধারণা যেখানে একটি child (derived) class, তার parent (base) class এর বৈশিষ্ট্য ও আচরণ উত্তরাধিকারসূত্রে পায়। এটি code পুনঃব্যবহার সহজ করে এবং বাস্তব জীবনের সম্পর্ক উপস্থাপন করে।
Inheritance এর ধরন (Tree উদাহরণসহ)
1) Single Inheritance
একটি child class একটি মাত্র parent class থেকে inherit করে।
Animal | Dog
এখানে Dog class, Animal class এর বৈশিষ্ট্য পায়।
2) Multiple Inheritance
একটি child class একাধিক parent class থেকে inherit করে।
Printer Scanner
\ /
\ /
AllInOne
এখানে AllInOne class, Printer ও Scanner উভয়ের বৈশিষ্ট্য পায়।
3) Multilevel Inheritance
একটি derived class থেকে আরেকটি class inherit করলে multilevel inheritance হয়।
Vehicle | Car | ElectricCar
এখানে ElectricCar পরোক্ষভাবে Vehicle এর বৈশিষ্ট্য পায়।
Software Development Life Cycle (SDLC)
The Software Development Life Cycle (SDLC) is a structured process used to design, develop, test, deploy, and maintain software systems. It provides a systematic approach to building high-quality software that meets user requirements, stays within budget, and is delivered on time.
Main Phases of SDLC
1) Requirement Analysis
In this phase, user needs and system requirements are collected and analyzed to understand what the software should do.
2) System Design
Based on the requirements, the overall system architecture, database design, and technical specifications are prepared.
3) Implementation (Coding)
The actual software is developed by writing code according to the design specifications.
4) Testing
The software is tested to identify and fix bugs and ensure it works correctly and meets user expectations.
5) Deployment
After successful testing, the software is released and deployed in a real user environment.
6) Maintenance
Once deployed, the software is maintained through updates, bug fixes, and enhancements based on user feedback.
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC) হলো একটি ধাপে ধাপে পদ্ধতি যা software system design, develop, test, deploy এবং maintain করার জন্য ব্যবহার করা হয়। এটি পরিকল্পিতভাবে উন্নতমানের software তৈরি করতে সাহায্য করে।
SDLC এর প্রধান ধাপসমূহ
1) Requirement Analysis
এই ধাপে user এর প্রয়োজনীয়তা সংগ্রহ ও বিশ্লেষণ করা হয়, যাতে software কী কাজ করবে তা স্পষ্টভাবে বোঝা যায়।
2) System Design
Requirement অনুযায়ী system architecture, database design এবং technical structure তৈরি করা হয়।
3) Implementation (Coding)
এই ধাপে design অনুযায়ী software এর coding করা হয়।
4) Testing
Software এ error আছে কিনা এবং এটি সঠিকভাবে কাজ করছে কিনা তা পরীক্ষা করা হয়।
5) Deployment
Testing শেষ হলে software টি বাস্তব পরিবেশে user এর জন্য release করা হয়।
6) Maintenance
Deployment এর পর software update, bug fix এবং user feedback অনুযায়ী উন্নয়ন করা হয়।
IP Addressing and Routing with OSPF
IP addressing provides a unique logical address to every device in a network, which allows packets to be identified and routed to the correct destination. Routing is the process of selecting the best path for these packets to travel across interconnected networks.
Role of OSPF at the Network Layer
Open Shortest Path First (OSPF) is a link-state routing protocol used at the network layer. Each router running OSPF maintains a complete map of the network topology using IP addresses and link information.
How Packet Delivery Works Using OSPF
• Routers exchange link-state advertisements (LSAs) containing information about their networks and IP subnets.
• Each router builds a link-state database representing the entire network.
• OSPF uses the Dijkstra shortest path algorithm to calculate the best path to every destination IP network based on cost (bandwidth).
• The routing table is updated with the shortest paths.
• When a packet arrives, the router checks the destination IP address and forwards the packet to the next-hop router based on the routing table.
Result
Using IP addressing for identification and OSPF for intelligent routing, packets are delivered efficiently, reliably, and dynamically across large networks, even when network changes occur.
OSPF ব্যবহার করে IP Addressing ও Routing
IP addressing প্রতিটি device কে একটি unique logical address দেয়, যার মাধ্যমে packet গুলো সঠিক destination এ পৌঁছাতে পারে। Routing হলো এই packet গুলোর জন্য সর্বোত্তম পথ নির্বাচন করার প্রক্রিয়া।
Network Layer এ OSPF এর ভূমিকা
Open Shortest Path First (OSPF) হলো একটি link-state routing protocol যা network layer এ কাজ করে। OSPF চালু থাকা প্রতিটি router IP address ও link information ব্যবহার করে পুরো network এর একটি topology map তৈরি করে।
OSPF দিয়ে Packet কীভাবে পৌঁছায়
• Router গুলো link-state advertisement (LSA) আদান-প্রদান করে, যেখানে network ও IP subnet এর তথ্য থাকে।
• প্রতিটি router একটি link-state database তৈরি করে, যা পুরো network এর চিত্র দেখায়।
• OSPF Dijkstra shortest path algorithm ব্যবহার করে প্রতিটি destination network এর জন্য সবচেয়ে কম খরচের পথ নির্ধারণ করে।
• Routing table আপডেট হয় সর্বোত্তম path দিয়ে।
• Packet আসলে router destination IP address দেখে routing table অনুযায়ী পরবর্তী router এ পাঠায়।
ফলাফল
IP addressing এবং OSPF routing একসাথে ব্যবহার করে packet দ্রুত, নির্ভরযোগ্য এবং স্বয়ংক্রিয়ভাবে বিভিন্ন network অতিক্রম করে destination এ পৌঁছে যায়, এমনকি network পরিবর্তন হলেও।
Universal Gate
A Universal Gate is a logic gate that can be used to implement any Boolean function (i.e., any logic circuit). If we can build the basic gates NOT, AND, and OR using only one type of gate, then that gate is called a universal gate.
Proof: NAND is a Universal Gate
To prove NAND is universal, we show that we can construct NOT, AND, and OR using only NAND gates.

Since we can build NOT, AND, and OR using only NAND gates, we can build any Boolean expression. Therefore, the NAND gate is a Universal Gate.
Universal Gate
Universal Gate হলো এমন একটি logic gate যার সাহায্যে যেকোনো Boolean function বা যেকোনো logic circuit তৈরি করা যায়। যদি একটি মাত্র gate ব্যবহার করে NOT, AND, এবং OR gate তৈরি করা যায়, তাহলে সেই gate কে universal gate বলা হয়।
প্রমাণ: NAND Gate Universal Gate
NAND universal প্রমাণ করতে হলে দেখাতে হবে যে শুধুমাত্র NAND gate দিয়ে NOT, AND, এবং OR তৈরি করা যায়।

কারণ শুধুমাত্র NAND gate ব্যবহার করে NOT, AND, এবং OR তৈরি করা যায়, তাই যেকোনো Boolean function তৈরি করা সম্ভব। সুতরাং NAND gate একটি Universal Gate।
Version Control (Git)
Version Control is a system that helps developers track changes in source code over time. Git is a popular version control system that allows multiple developers to work on the same project, manage different versions of code, and revert to previous states when needed.
Difference between Committing and Pushing Code
Committing Code
Committing means saving changes to the local repository. It records a snapshot of the code with a message describing what was changed. The changes are stored only on the developer’s local machine.
Pushing Code
Pushing means sending committed changes from the local repository to a remote repository (such as GitHub or GitLab). This makes the changes available to other team members.
Key Difference
Committing saves changes locally, while pushing uploads those committed changes to a remote server.
Version Control (Git)
Version Control হলো এমন একটি system যা source code এর পরিবর্তনগুলো track করতে সাহায্য করে। Git একটি জনপ্রিয় version control system, যার মাধ্যমে একাধিক developer একই project এ কাজ করতে পারে, code এর version নিয়ন্ত্রণ করতে পারে এবং প্রয়োজনে আগের অবস্থায় ফিরে যেতে পারে।
Committing এবং Pushing Code এর পার্থক্য
Committing Code
Committing মানে হলো code এর পরিবর্তনগুলো local repository তে সংরক্ষণ করা। এটি একটি snapshot তৈরি করে এবং কী পরিবর্তন হয়েছে তা message আকারে রাখে। এই পরিবর্তন শুধু নিজের computer এই থাকে।
Pushing Code
Pushing মানে হলো local repository তে commit করা পরিবর্তনগুলো remote repository (যেমন GitHub বা GitLab) এ পাঠানো। এতে অন্য developer রাও সেই পরিবর্তন দেখতে ও ব্যবহার করতে পারে।
মূল পার্থক্য
Committing করলে পরিবর্তন local থাকে, আর pushing করলে সেই পরিবর্তন remote server এ পাঠানো হয়।
