Bangladesh Livestock Research Institute
Post: Assistant Maintenance Engineer
Exam Date: 20.05.2023
A half adder is a type of combinational logic circuit that performs the addition of two single-bit binary numbers. It has two inputs and two outputs.
Outputs:
- Sum (S): The result of the binary addition of the two input bits.
- Carry (C): The carry-over, which occurs when both input bits are 1, producing a value of 1.
| A | B | Sum (S) | Carry (C) |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
The output function:
Sum (S) = A’B+AB’ = A⊕B
Carry (C)= AB

Abstraction
Abstraction is an OOP concept that hides internal implementation details and shows only the essential features of an object to the user.
Why Abstraction is Used
It reduces complexity, improves security, and allows programmers to focus on what an object does rather than how it does it.
Example of Abstraction
A car dashboard shows speed, fuel level, and brake status, but the driver does not know how the engine works internally.
Programming Example:
An abstract class Shape has a method draw(). Classes like Circle and Rectangle implement the method in their own way.
Polymorphism
Polymorphism means “many forms”. It allows the same method name to perform different behaviors based on the object type.
Why Polymorphism is Used
It improves code flexibility, reusability, and makes programs easier to extend.
Example of Polymorphism
A single method sound() behaves differently for different animals like Dog, Cat, and Cow.
Programming Example:
The method draw() is called using a Shape reference, but it executes differently for Circle and Rectangle objects.
Abstraction
Abstraction হলো OOP-এর একটি ধারণা যেখানে object-এর internal implementation লুকিয়ে রেখে শুধু প্রয়োজনীয় feature user-এর সামনে উপস্থাপন করা হয়।
Abstraction ব্যবহারের কারণ
এটি program-এর জটিলতা কমায়, security বাড়ায় এবং developer-কে “কি কাজ করে” তার উপর focus করতে সাহায্য করে।
Abstraction-এর উদাহরণ
একটি গাড়ির dashboard-এ speed ও fuel দেখায়, কিন্তু engine কীভাবে কাজ করে তা driver জানে না।
Programming উদাহরণ:
Shape নামে একটি abstract class আছে যেখানে draw() method থাকে, এবং Circle ও Rectangle নিজ নিজভাবে এটি implement করে।
Polymorphism
Polymorphism অর্থ “একাধিক রূপ”। একই method name বিভিন্ন object-এর জন্য ভিন্নভাবে কাজ করে।
Polymorphism ব্যবহারের কারণ
এটি code reuse বাড়ায়, flexibility দেয় এবং program সহজে extend করা যায়।
Polymorphism-এর উদাহরণ
sound() method Dog, Cat ও Cow-এর জন্য আলাদা output দেয়।
Programming উদাহরণ:
Shape reference ব্যবহার করে draw() call করা হলে Circle ও Rectangle-এর জন্য আলাদা behavior দেখা যায়।
Diode: A diode is an electronic component that allows electric current to flow in only one direction while blocking current in the opposite direction, and it is mainly used for rectification to convert AC into DC in electronic circuits.
Inductor: An inductor is a passive electronic component that stores energy in the form of a magnetic field when current flows through it and is used to oppose sudden changes in current in electrical and electronic circuits.
Diode: Diode হলো একটি electronic component যা শুধুমাত্র একদিকে electric current প্রবাহিত হতে দেয় এবং বিপরীত দিকে প্রবাহ বাধা দেয়, এবং এটি প্রধানত rectification-এর কাজে ব্যবহৃত হয় যেখানে AC কে DC-তে রূপান্তর করা হয়।
Inductor: Inductor হলো একটি passive electronic component যা current প্রবাহিত হলে magnetic field আকারে energy সংরক্ষণ করে এবং circuit-এ current-এর হঠাৎ পরিবর্তন প্রতিরোধ করতে ব্যবহৃত হয়।
First Normal Form (1NF)
A table is in First Normal Form (1NF) if all attributes contain atomic (indivisible) values, there are no repeating groups, and each record can be uniquely identified.
Example of 1NF
If a student table stores multiple phone numbers in one column, it violates 1NF; splitting phone numbers into separate rows makes the table 1NF compliant.
<tablestyle=”max-width:450px;”>
S_IDNamePhone1Rahim017xxxx1Rahim018xxxxSecond Normal Form (2NF)
A table is in Second Normal Form (2NF) if it is already in 1NF and every non-key attribute is fully functionally dependent on the entire primary key, not on part of it.
Example of 2NF
If a table has a composite primary key and some non-key attributes depend on only part of that key, it violates 2NF; separating those attributes into another table achieves 2NF.
| S_ID | CourseID | S_Name | CourseName |
|---|---|---|---|
| 1 | C101 | Rahim | DBMS |
Here, S_Name depends only on S_ID and CourseName depends only on CourseID, so the table must be decomposed to satisfy 2NF.
First Normal Form (1NF)
একটি table তখন First Normal Form (1NF)-এ থাকে যখন প্রতিটি field-এ atomic (ভাঙা যায় না এমন) value থাকে, কোনো repeating group থাকে না এবং প্রতিটি record uniquely identify করা যায়।
1NF-এর উদাহরণ
যদি একটি column-এ একাধিক phone number রাখা হয়, তাহলে তা 1NF ভঙ্গ করে; phone number আলাদা row-এ রাখলে table 1NF হয়।
| StudentID | Name | Phone |
|---|---|---|
| 1 | Rahim | 017xxxx |
| 1 | Rahim | 018xxxx |
Second Normal Form (2NF)
একটি table তখন Second Normal Form (2NF)-এ থাকে যখন এটি 1NF-এ থাকে এবং প্রতিটি non-key attribute সম্পূর্ণভাবে পুরো primary key-এর উপর নির্ভরশীল হয়, primary key-এর অংশবিশেষের উপর নয়।
2NF-এর উদাহরণ
যদি composite primary key থাকা অবস্থায় কিছু attribute key-এর একটি অংশের উপর নির্ভর করে, তাহলে table 2NF ভঙ্গ করে; table ভাগ করলে 2NF নিশ্চিত হয়।
| S_ID | CourseID | S_Name | CourseName |
|---|---|---|---|
| 1 | C101 | Rahim | DBMS |
এখানে S_Name শুধু S_ID-এর উপর এবং CourseName শুধু CourseID-এর উপর নির্ভরশীল, তাই table আলাদা করতে হবে 2NF অর্জনের জন্য।



