Loading...
Previous Question Analysis

You must subscribe & Login to view more.

Don’t have an account? Register

Or your subscription is under review by admin. Please message on WhatsApp / Telegram.

Combined Bank

Post: Senior Officer (IT),
Exam Date: 17.10.2025
1. Determine whether the following pair of graphs are isomorphic, and justify your answer in one sentence. (10 Marks)

Isomorphic Pairs:
Graph 1 and Graph 2 are isomorphic because they have the same number of vertices, same number of edges, and identical degree sequence with preserved adjacency structure.
Graph 3 and Graph 4 are also isomorphic since their vertex connections follow the same pattern, even though their drawings look different.

Graph-1:
Vertices = 6
(u1, u2, u3, u4, u5, u6)
Degree sequence = (3, 3, 3, 3, 3, 3)

Graph-2:
Vertices = 6
(v1, v2, v3, v4, v5, v6)
Degree sequence = (3, 3, 3, 3, 3, 3)

Conclusion for Graph-1 & Graph-2:
Both graphs have the same number of vertices (6) and the same degree sequence, so they are isomorphic.

Graph-3:
Vertices = 6
(u1, u2, u3, u4, u5, u6)
Degree sequence = (3, 3, 2, 2, 3, 3)

Graph-4:
Vertices = 6
(v1, v2, v3, v4, v5, v6)
Degree sequence = (2, 3, 3, 2, 2, 3)

Conclusion for Graph-3 & Graph-4:
have not the identical degree sequences, so they are not isomorphic.

Isomorphic পেয়ার:
Graph 1 এবং Graph 2 পরস্পর isomorphic, কারণ এদের vertex সংখ্যা, edge সংখ্যা এবং degree sequence একই এবং adjacency ঠিকভাবে সংরক্ষিত।
Graph 3 এবং Graph 4isomorphic, কারণ দুটির connection pattern এক হলেও আঁকার ধরন আলাদা।

Graph-1:
Vertex সংখ্যা = ৬টি
(u1, u2, u3, u4, u5, u6)
Degree sequence = (3, 3, 3, 3, 3, 3)

Graph-2:
Vertex সংখ্যা = ৬টি
(v1, v2, v3, v4, v5, v6)
Degree sequence = (3, 3, 3, 3, 3, 3)

Graph-1 ও Graph-2 এর সিদ্ধান্ত:
উভয় graph-এ vertex সংখ্যা সমান (৬) এবং degree sequence একই, তাই এরা isomorphic

Graph-3:
Vertex সংখ্যা = ৬টি
(u1, u2, u3, u4, u5, u6)
Degree sequence = (3, 3, 2, 2, 3, 3)

Graph-4:
Vertex সংখ্যা = ৬টি
(v1, v2, v3, v4, v5, v6)
Degree sequence =(2, 3, 3, 2, 2, 3)

Graph-3 ও Graph-4 এর vertex সংখ্যা সমান (৬) ,degree sequence একই নয়, তাই এরা isomorphic নয়

2. Explain the Quick Sort algorithm with a suitable example. Under what conditions does Quick Sort exhibit its worst-case time complexity, and why does this situation occur?(10 Marks)

Quick Sort Algorithm Quick Sort is a divide-and-conquer sorting algorithm. It works by selecting a pivot element, partitioning the array into two parts (elements smaller than pivot and elements greater than pivot), and then recursively sorting the sub-arrays. It is fast and widely used in practice.

Steps of Quick Sort Choose a pivot → Partition the array → Recursively apply Quick Sort on left and right sub-arrays.

Worst-Case Time Complexity The worst-case time complexity of Quick Sort is O(n²).

When does Worst Case Occur? Worst case occurs when the pivot element is always the smallest or largest element in the array.
Examples: already sorted array, reverse sorted array (when first or last element is chosen as pivot).

Why does this happen? In this case, partitioning creates highly unbalanced sub-arrays (one with n−1 elements and the other with 0). This leads to maximum number of recursive calls, resulting in O(n²) time complexity.

Quick Sort Algorithm Quick Sort হলো একটি divide-and-conquer based sorting algorithm। এখানে একটি pivot element নেওয়া হয়, তারপর array কে pivot এর চেয়ে ছোট এবং বড় দুই ভাগে ভাগ করা হয় এবং এই sub-array গুলোকে recursively sort করা হয়। এটি দ্রুত এবং বাস্তবে খুব বেশি ব্যবহৃত হয়।

Quick Sort এর ধাপসমূহ Pivot নির্বাচন → Array partition → Left ও right sub-array এ recursive sorting।
Worst-Case Time Complexity Quick Sort এর worst-case time complexity হলো O(n²)

Worst Case কখন ঘটে? Worst case ঘটে যখন pivot সবসময় array এর সবচেয়ে ছোট বা সবচেয়ে বড় element হয়।
উদাহরণ: already sorted বা reverse sorted array (যখন first বা last element pivot নেওয়া হয়)।

কেন এমন হয়? এই অবস্থায় partition ঠিকভাবে balanced হয় না। একদিকে n−1 element আর অন্যদিকে 0 element থাকে। ফলে recursive call এর সংখ্যা বেড়ে যায় এবং time complexity O(n²) হয়ে যায়।

3. Consider a logical address space of 512 pages, each of 2-KB page size, mapped onto a physical memory containing 128 frames.
a. How many bits are required in the logical address?
b. How many bits are required in the physical address? (10 Marks)
Given Logical address space = 512 pages Page size = 2 KB = 2048 bytes Physical memory = 128 framesa) Bits required in the Logical Address Number of pages = 512 = 29 → Page number bits = 9 bits Page size = 2048 bytes = 211 → Offset bits = 11 bits So, Logical address bits = Page number bits + Offset bits = 9 + 11 = 20 bitsb) Bits required in the Physical Address Number of frames = 128 = 27 → Frame number bits = 7 bits Offset remains same = 11 bits So, Physical address bits = Frame number bits + Offset bits = 7 + 11 = 18 bits
প্রদত্ত তথ্য Logical address space = 512 pages Page size = 2 KB = 2048 bytes Physical memory = 128 framesa) Logical Address এর জন্য কত bit লাগবে Page সংখ্যা = 512 = 29 → Page number এর জন্য লাগবে 9 bit Page size = 2048 bytes = 211 → Offset এর জন্য লাগবে 11 bit সুতরাং Logical address bits = 9 + 11 = 20 bitb) Physical Address এর জন্য কত bit লাগবে Frame সংখ্যা = 128 = 27 → Frame number এর জন্য লাগবে 7 bit Offset একই থাকবে = 11 bit সুতরাং Physical address bits = 7 + 11 = 18 bit
4. Why does the Domain Name System (DNS) primarily use UDP as its transport layer protocol instead of TCP? Describe the sequence of events that take place during the DNS name resolution process when a user enters www.companybd.com into a web browser and presses Enter.(10 Marks)

Why DNS primarily uses UDP instead of TCP
DNS mainly uses UDP because it is fast and lightweight. UDP does not require connection establishment, which reduces delay and overhead. Most DNS queries and responses are small in size and can easily fit within a single UDP packet. Using UDP allows DNS to provide quick responses, which is important for fast web browsing. TCP is only used in special cases, such as zone transfers or when the response size is too large.

DNS Name Resolution Process for www.companybd.com
1) The user enters www.companybd.com in the web browser and presses Enter.
2) The browser first checks its local DNS cache to see if the IP address is already available.
3) If not found, the request is sent to the local DNS resolver (usually provided by the ISP).
4) The resolver contacts the Root DNS Server, which directs it to the .com Top-Level Domain (TLD) server.
5) The TLD server provides the address of the authoritative DNS server for companybd.com.
6) The authoritative DNS server returns the IP address of www.companybd.com.
7) The resolver sends the IP address back to the browser and stores it in cache for future use.
8) Using the obtained IP address, the browser connects to the web server and loads the website.

DNS কেন প্রধানত TCP এর পরিবর্তে UDP ব্যবহার করে
DNS মূলত UDP ব্যবহার করে কারণ এটি দ্রুত এবং কম overhead তৈরি করে। UDP তে connection establish করার দরকার হয় না, ফলে delay কম হয়। বেশিরভাগ DNS query এবং response ছোট আকারের হয়, যা একটি UDP packet এই পাঠানো যায়। দ্রুত response পাওয়ার জন্য UDP ব্যবহার করা হয়। বিশেষ ক্ষেত্রে যেমন zone transfer বা বড় response হলে TCP ব্যবহার করা হয়।

www.companybd.com এর ক্ষেত্রে DNS Name Resolution Process
1) User browser এ www.companybd.com লিখে Enter চাপ দেয়।
2) প্রথমে browser নিজের DNS cache এ IP address খোঁজে।
3) না পেলে request local DNS resolver (সাধারণত ISP) এর কাছে পাঠানো হয়।
4) Resolver Root DNS Server এর সাথে যোগাযোগ করে, যা তাকে .com Top-Level Domain (TLD) server এর ঠিকানা দেয়।
5) TLD server companybd.com এর authoritative DNS server এর ঠিকানা দেয়।
6) Authoritative DNS server www.companybd.com এর IP address পাঠিয়ে দেয়।
7) Resolver সেই IP address browser এ পাঠায় এবং ভবিষ্যতের জন্য cache এ সংরক্ষণ করে।
8) প্রাপ্ত IP address ব্যবহার করে browser web server এর সাথে সংযোগ করে এবং website load করে।

5. Explain the concept of thrashing in an operating system, describing how it occurs in a demand-paged virtual memory system and how it impacts CPU utilization and overall system performance. (10 Marks)
Thrashing in Operating System Thrashing is a condition in an operating system where the system spends most of its time swapping pages in and out of memory instead of executing actual processes. It mainly occurs in a demand-paged virtual memory system when there are not enough frames to support the working sets of active processes.How Thrashing Occurs in Demand Paging In demand paging, pages are loaded into memory only when they are needed. If too many processes are running and physical memory is insufficient, frequent page faults occur. The OS continuously replaces pages, but the required pages are again needed immediately, causing excessive paging activity. This situation leads to thrashing.Impact on CPU Utilization During thrashing, CPU utilization becomes very low because the CPU waits for disk I/O operations caused by page faults. Even though many processes are active, the CPU remains mostly idle.Impact on System Performance Overall system performance degrades severely. Response time increases, throughput decreases, and the system becomes slow and inefficient. To handle thrashing, the OS may reduce the degree of multiprogramming or use working set and page fault frequency control techniques.
Operating System এ Thrashing Thrashing হলো একটি অবস্থা যেখানে operating system অধিকাংশ সময় memory থেকে page আনা-নেওয়ায় ব্যয় করে, process execute করার পরিবর্তে। এটি মূলত demand-paged virtual memory system এ ঘটে, যখন active process গুলোর জন্য যথেষ্ট frame থাকে না।Demand Paging এ Thrashing কীভাবে ঘটে Demand paging এ page তখনই memory তে আনা হয় যখন সেটি দরকার হয়। যদি একসাথে অনেক process চালানো হয় এবং physical memory কম থাকে, তাহলে বারবার page fault ঘটে। OS এক page remove করে আরেকটা আনে, কিন্তু আগের page আবার দরকার পড়ে। এতে অতিরিক্ত paging শুরু হয়, যা thrashing সৃষ্টি করে।CPU Utilization এর উপর প্রভাব Thrashing এর সময় CPU utilization খুব কমে যায়, কারণ CPU বারবার disk I/O এর জন্য অপেক্ষা করে। অনেক process থাকা সত্ত্বেও CPU প্রায় idle থাকে।System Performance এর উপর প্রভাব System performance অনেক খারাপ হয়ে যায়। Response time বেড়ে যায়, throughput কমে যায় এবং system ধীরগতির হয়ে পড়ে। Thrashing কমাতে OS degree of multiprogramming কমাতে পারে অথবা working set ও page fault frequency technique ব্যবহার করতে পারে।
6. Write a structured program (in C or Python) that takes an integer input n and prints the sum of all even numbers from 1 to n.
#include <stdio.h>
/* Function to calculate sum of even numbers from 1 to n */
int sumOfEven(int n) {
    int sum = 0;
    for (int i = 2; i <= n; i += 2) {
        sum += i;
    }
    return sum;
}
int main() {
    int n, result;
    printf("Enter an integer: ");
    scanf("%d", &n);
    result = sumOfEven(n);
    printf("Sum of even numbers from 1 to %d = %d\n", n, result);
    return 0;
}
    
Sample I/O:
  Enter an integer: 50
Sum of even numbers from 1 to 50 = 650


=== Code Execution Successful ===
        


🔗 Run Online: Sum of even number.

7. Write a program using any object-oriented language (e.g., C++ / Java / Python) to represent a Bank Account. Your program should include:
. A class BankAccount with data members for account holder's name, account number, and balance.
. Member functions to deposit() money, withdraw() money (ensuring sufficient balance), and display() account details.
Demonstrate the concept of encapsulation by keeping data member's private and providing appropriate public methods for accessing and modifying them.
#include <iostream>
using namespace std;

class BankAccount {
private:
    string name;
    int accountNumber;
    double balance;

public:
    void setDetails(string n, int accNo, double bal) {
        name = n;
        accountNumber = accNo;
        balance = bal;
    }

    void deposit(double amount) {
        balance += amount;
        cout << "Deposited: " << amount << endl;
    }

    void withdraw(double amount) {
        if (amount <= balance) {
            balance -= amount;
            cout << "Withdrawn: " << amount << endl;
        } else {
            cout << "Insufficient balance" << endl;
        }
    }
    void display() {
        cout << "\nAccount Details\n";
        cout << "Account Holder: " << name << endl;
        cout << "Account Number: " << accountNumber << endl;
        cout << "Balance: " << balance << endl;
    }
};
int main() {
    BankAccount acc;
    string name;
    int accNo;
    double bal, dep, wit;
    cout << "Enter account holder name: ";
    getline(cin, name);

    cout << "Enter account number: ";
    cin >> accNo;
    cout << "Enter initial balance: ";
    cin >> bal;
    acc.setDetails(name, accNo, bal);
    cout << "Enter amount to deposit: ";
    cin >> dep;
    acc.deposit(dep);
    cout << "Enter amount to withdraw: ";
    cin >> wit;
    acc.withdraw(wit);
    acc.display();
    return 0;
}
    
        Sample I/O:
 Enter account holder name: itjobqns
Enter account number: 02252016
Enter initial balance: 5000
Enter amount to deposit: 300
Deposited: 300
Enter amount to withdraw: 100
Withdrawn: 100

Account Details
Account Holder: itjobqns
Account Number: 2252016
Balance: 5200
=== Code Execution Successful ===
        


🔗 Run Online: Bank Balance & Deposit.

8. Explain the difference between direct, immediate, and register addressing modes in the 8086 microprocessor.

Addressing Modes in 8086 Microprocessor

1) Immediate Addressing Mode
In immediate addressing mode, the actual data (operand) is specified directly in the instruction itself.

Example:

MOV AX, 1234H

Here, 1234H is the immediate data loaded directly into the AX register.

2) Register Addressing Mode
In register addressing mode, the operand is stored in a CPU register, and the instruction specifies the register name.

Example:

MOV BX, AX

Here, data is moved from register AX to register BX.

3) Direct Addressing Mode
In direct addressing mode, the memory address of the operand is directly specified in the instruction.

Example:

MOV AX, [2000H]

Here, the data stored at memory location 2000H is loaded into the AX register.

8086 Microprocessor এ Addressing Mode গুলোর পার্থক্য

1) Immediate Addressing Mode
Immediate addressing mode এ data সরাসরি instruction এর মধ্যেই দেওয়া থাকে।

উদাহরণ:

MOV AX, 1234H

এখানে 1234H হলো immediate data যা সরাসরি AX register এ load হয়।

2) Register Addressing Mode
Register addressing mode এ operand টি CPU register এ থাকে এবং instruction এ register এর নাম দেওয়া হয়।

উদাহরণ:

MOV BX, AX

এখানে AX register থেকে data BX register এ transfer করা হয়।

3) Direct Addressing Mode
Direct addressing mode এ operand এর memory address সরাসরি instruction এ উল্লেখ থাকে

উদাহরণ:

MOV AX, [2000H]

এখানে memory location 2000H এ থাকা data AX register এ load করা হয়।

9. Consider the following relation:
Sales(sales_id, salesman, region, sale_amount, sale_date)
,
Write an SQL query to display the region, average sale amount, and total number of sales for each region where: The average sale amount exceeds BDT 50,000 and the total number of sales in that region is at least 5.

SQL Query
The following query displays the region, average sale amount, and total number of sales for each region where the average sale amount is greater than BDT 50,000 and the total number of sales is at least 3.

SELECT region,
       AVG(sale_amount) AS avg_sale_amount,
       COUNT(*) AS total_sales
FROM Sales
GROUP BY region
HAVING AVG(sale_amount) > 50000
   AND COUNT(*) >= 3;

SQL Query
নিচের query টি প্রতিটি region অনুযায়ী average sale amount এবং total sales সংখ্যা দেখায়, যেখানে average sale amount BDT 50,000 এর বেশি এবং ঐ region এ মোট sales কমপক্ষে 3টি

SELECT region,
       AVG(sale_amount) AS avg_sale_amount,
       COUNT(*) AS total_sales
FROM Sales
GROUP BY region
HAVING AVG(sale_amount) > 50000
   AND COUNT(*) >= 3;
10. Explain the concept of ACID properties in a database transaction. Describe how each property-Atomicity, Consistency, Isolation, and Durability- ensures the reliability and integrity of a database system.

ACID Properties in Database Transactions
ACID properties are a set of rules that ensure reliability, consistency, and integrity of a database during transactions. Each transaction must satisfy these four properties to maintain a correct database state.

1) Atomicity
Atomicity ensures that a transaction is treated as a single unit. Either all operations of the transaction are completed successfully, or none of them are applied. If any part fails, the entire transaction is rolled back, preventing partial updates.

2) Consistency
Consistency ensures that a transaction moves the database from one valid state to another valid state. All integrity constraints, rules, and conditions must be satisfied before and after the transaction.

3) Isolation
Isolation ensures that multiple transactions executed at the same time do not interfere with each other. Each transaction behaves as if it is executed independently, preventing problems like dirty reads or lost updates.

4) Durability
Durability guarantees that once a transaction is committed, its changes are permanently stored in the database. Even if the system crashes, the committed data will not be lost.

Database Transaction এ ACID Properties
ACID properties হলো কিছু গুরুত্বপূর্ণ নিয়ম যা database transaction চলাকালীন reliability, consistency এবং integrity নিশ্চিত করে। প্রতিটি transaction কে এই চারটি property অনুসরণ করতে হয়।

1) Atomicity
Atomicity নিশ্চিত করে যে একটি transaction সম্পূর্ণভাবে execute হবে অথবা একেবারেই হবে না। যদি transaction এর কোনো একটি অংশ ব্যর্থ হয়, তাহলে পুরো transaction rollback হয়, ফলে partial update হয় না।

2) Consistency
Consistency নিশ্চিত করে যে transaction এর আগে ও পরে database একটি valid state এ থাকে। সব ধরনের rule, constraint এবং integrity condition মানা হয়।

3) Isolation
Isolation নিশ্চিত করে যে একাধিক transaction একসাথে চললেও তারা একে অপরকে প্রভাবিত করবে না। প্রতিটি transaction আলাদাভাবে execute হওয়ার মতো আচরণ করে।

4) Durability
Durability নিশ্চিত করে যে transaction একবার commit হয়ে গেলে তার পরিবর্তন স্থায়ীভাবে database এ সংরক্ষিত থাকে, system crash হলেও data হারায় না।

11. What are SOAP and RESTful APIs in web services? State one main difference between SOAP and REST in terms of how they exchange data.

SOAP API
SOAP (Simple Object Access Protocol) is a protocol used in web services to exchange structured information between applications. It relies on XML for message format and follows strict standards. SOAP is commonly used in enterprise-level applications where security and reliability are critical.

RESTful API
REST (Representational State Transfer) is an architectural style for designing web services. RESTful APIs use standard HTTP methods such as GET, POST, PUT, DELETE and can exchange data in multiple formats like JSON, XML, or plain text. REST is lightweight and widely used in modern web and mobile applications.

Main Difference (Data Exchange)
The main difference is that SOAP exchanges data only in XML format, while REST can exchange data in multiple formats, most commonly JSON.

SOAP API
SOAP (Simple Object Access Protocol) হলো একটি web service protocol যা application গুলোর মধ্যে structured তথ্য আদান-প্রদান করতে ব্যবহৃত হয়। এটি XML format ব্যবহার করে এবং কঠোর নিয়ম অনুসরণ করে। সাধারণত enterprise-level application এ SOAP ব্যবহৃত হয় যেখানে security ও reliability খুব গুরুত্বপূর্ণ।

RESTful API
REST (Representational State Transfer) হলো web service design করার একটি architectural style। RESTful API গুলো GET, POST, PUT, DELETE এর মতো HTTP method ব্যবহার করে এবং JSON, XML বা text format এ data আদান-প্রদান করতে পারে। এটি lightweight এবং আধুনিক web ও mobile application এ ব্যাপকভাবে ব্যবহৃত।

মূল পার্থক্য (Data Exchange)
মূল পার্থক্য হলো SOAP শুধুমাত্র XML format এ data exchange করে, আর REST একাধিক format এ data exchange করতে পারে, যেখানে JSON সবচেয়ে বেশি ব্যবহৃত হয়।

12. Explain the concepts of Reinforcement Learning (RL), Deep Learning (DL), and Federated Learning (FL) in the context of Machine Learning. Briefly describe how each approach differs in its learning mechanism, data usage, and real-world applications.(10 Marks)

Reinforcement Learning (RL)
Reinforcement Learning is a type of machine learning where an agent learns by interacting with an environment. The agent takes actions and receives rewards or penalties, and its goal is to maximize cumulative reward over time.
Learning Mechanism: Trial-and-error with reward feedback.
Data Usage: Generated through interaction with the environment.
Applications: Robotics, game playing (AlphaGo), autonomous vehicles, recommendation systems.

Deep Learning (DL)
Deep Learning is a subset of machine learning that uses multi-layer neural networks to automatically learn features from large datasets. It is inspired by the human brain structure.
Learning Mechanism: Supervised/unsupervised learning using deep neural networks.
Data Usage: Requires large, labeled or unlabeled datasets.
Applications: Image recognition, speech recognition, natural language processing, medical diagnosis.

Federated Learning (FL)
Federated Learning is a distributed learning approach where the model is trained across multiple devices without sharing raw data. Only model updates are sent to a central server.
Learning Mechanism: Collaborative learning with local model updates.
Data Usage: Data remains on local devices (privacy-preserving).
Applications: Mobile keyboards, healthcare data analysis, IoT systems, privacy-sensitive applications.

Reinforcement Learning (RL)
Reinforcement Learning হলো machine learning এর এমন একটি পদ্ধতি যেখানে একটি agent environment এর সাথে interaction করে শেখে। Agent action নেয় এবং reward বা penalty পায়, এবং লক্ষ্য থাকে মোট reward সর্বোচ্চ করা।
Learning Mechanism: Trial-and-error এবং reward ভিত্তিক শেখা।
Data Usage: Environment এর সাথে interaction করে data তৈরি হয়।
Applications: Robotics, game playing (AlphaGo), autonomous vehicle, recommendation system।

Deep Learning (DL)
Deep Learning হলো machine learning এর একটি অংশ যেখানে multi-layer neural network ব্যবহার করে বড় dataset থেকে স্বয়ংক্রিয়ভাবে feature শেখা হয়। এটি মানুষের brain structure থেকে অনুপ্রাণিত।
Learning Mechanism: Deep neural network ব্যবহার করে supervised বা unsupervised learning।
Data Usage: বড় আকারের labeled বা unlabeled data প্রয়োজন।
Applications: Image recognition, speech recognition, NLP, medical diagnosis।

Federated Learning (FL)
Federated Learning হলো একটি distributed learning পদ্ধতি যেখানে raw data share না করেই একাধিক device এ model train করা হয়। শুধু model update central server এ পাঠানো হয়।
Learning Mechanism: Local training এবং global model aggregation।
Data Usage: Data local device এই থাকে (privacy বজায় থাকে)।
Applications: Mobile keyboard prediction, healthcare data analysis, IoT system, privacy-sensitive application।

13. Imagine a government agency is developing an AI-based citizen service chatbot that can automatically generate responses, summarize documents, and provide policy information to citizens. Explain how Generative AI can be used to power such a system, and how Explainable AI (XAI) techniques can ensure that its responses are transparent, reliable, and accountable. (10 Marks)

Use of Generative AI in a Government Citizen Service Chatbot
Generative AI can be used to power a government chatbot by enabling it to automatically generate human-like responses, summarize long policy documents, and provide accurate policy-related information to citizens. Using large language models, the chatbot can understand citizens’ questions in natural language and generate clear, context-aware answers. It can also analyze official documents, extract key points, and present simplified summaries, making government services more accessible and efficient.

Role of Explainable AI (XAI)
Explainable AI (XAI) techniques help ensure that the chatbot’s responses are transparent, reliable, and accountable. XAI allows the system to explain why a particular response was generated by showing the source policy, rules, or reasoning behind the answer. This helps government officials and citizens trust the system and verify that the information is correct and unbiased.

Benefits of Using XAI
Transparency: Citizens can understand how and from where the answer was derived.
Reliability: Officials can audit and validate chatbot decisions.
Accountability: The system can justify responses, reducing the risk of misinformation.
Public Trust: Clear explanations increase confidence in AI-based public services.

Government Citizen Service Chatbot এ Generative AI এর ব্যবহার
Generative AI ব্যবহার করে একটি সরকারী chatbot তৈরি করা যায় যা স্বয়ংক্রিয়ভাবে মানুষের মতো উত্তর তৈরি করতে পারে, দীর্ঘ policy document সংক্ষেপ করতে পারে এবং নাগরিকদের নীতিমালা সংক্রান্ত তথ্য সহজভাবে দিতে পারে। Large language model ব্যবহার করে chatbot নাগরিকদের প্রশ্ন বুঝতে পারে এবং প্রাসঙ্গিক ও স্পষ্ট উত্তর প্রদান করতে পারে। এছাড়া সরকারি নথি বিশ্লেষণ করে গুরুত্বপূর্ণ তথ্য সংক্ষেপে তুলে ধরতে পারে, ফলে নাগরিক সেবা আরও সহজ ও দ্রুত হয়।

Explainable AI (XAI) এর ভূমিকা
Explainable AI (XAI) chatbot এর উত্তরগুলোকে স্বচ্ছ, নির্ভরযোগ্য এবং জবাবদিহিমূলক করতে সাহায্য করে। XAI এর মাধ্যমে বোঝানো যায় কেন একটি নির্দিষ্ট উত্তর দেওয়া হয়েছে—যেমন কোন policy, নিয়ম বা তথ্যের ভিত্তিতে উত্তরটি এসেছে। এতে নাগরিক এবং সরকার উভয়ই AI সিস্টেমের উপর আস্থা রাখতে পারে।

XAI ব্যবহারের সুবিধা
স্বচ্ছতা: নাগরিকরা বুঝতে পারে উত্তরটি কীভাবে তৈরি হয়েছে।
নির্ভরযোগ্যতা: সরকার সহজে chatbot এর সিদ্ধান্ত যাচাই করতে পারে।
জবাবদিহিতা: ভুল বা বিভ্রান্তিকর তথ্যের ঝুঁকি কমে।
জনগণের আস্থা: ব্যাখ্যাসহ উত্তর দিলে AI-ভিত্তিক সেবার প্রতি বিশ্বাস বাড়ে।

14. Describe how the principles of Confidentiality, Integrity, and Availability work together to protect organizational data, and provide one real-world example of a security breach where one or more of these principles were compromised. (10 Marks)

Confidentiality, Integrity, and Availability (CIA Triad)
The CIA Triad represents three fundamental principles used to protect organizational data and information systems. These principles work together to ensure data security and trustworthiness.

Confidentiality
Confidentiality ensures that sensitive information is accessible only to authorized users. Techniques such as encryption, authentication, and access control are used to prevent unauthorized data disclosure.

Integrity
Integrity ensures that data remains accurate, complete, and unaltered during storage or transmission. Mechanisms like hashing, checksums, and digital signatures help detect and prevent unauthorized data modification.

Availability
Availability ensures that data and systems are accessible when needed by authorized users. Redundancy, backups, and protection against attacks like DoS help maintain system availability.

How They Work Together
All three principles must be maintained simultaneously. For example, data may be confidential and accurate, but if systems are unavailable, the organization cannot operate effectively. Weakness in any one principle can compromise overall security.

Real-World Security Breach Example
Equifax Data Breach (2017): In this incident, attackers exploited a vulnerability to access sensitive personal data of millions of users. Confidentiality was compromised as private data was exposed, and Integrity was also affected because attackers accessed systems without authorization.

Confidentiality, Integrity এবং Availability (CIA Triad)
CIA Triad হলো তথ্য নিরাপত্তার তিনটি মূল নীতি যা কোনো প্রতিষ্ঠানের data ও system সুরক্ষার জন্য একসাথে কাজ করে।

Confidentiality
Confidentiality নিশ্চিত করে যে সংবেদনশীল তথ্য শুধুমাত্র অনুমোদিত ব্যবহারকারীদের জন্যই প্রবেশযোগ্য। Encryption, authentication এবং access control এর মাধ্যমে অননুমোদিত access রোধ করা হয়।

Integrity
Integrity নিশ্চিত করে যে data সংরক্ষণ বা আদান-প্রদানের সময় সঠিক ও অপরিবর্তিত থাকে। Hashing, checksum এবং digital signature ব্যবহার করে data পরিবর্তন শনাক্ত করা যায়।

Availability
Availability নিশ্চিত করে যে system এবং data প্রয়োজনের সময় উপলব্ধ থাকে। Backup, redundancy এবং DoS attack প্রতিরোধ ব্যবস্থা availability বজায় রাখতে সাহায্য করে।

তিনটি নীতি একসাথে কীভাবে কাজ করে
এই তিনটি নীতি একসাথে বজায় রাখতে হয়। কোনো একটি দুর্বল হলে পুরো system ঝুঁকিতে পড়ে। যেমন, data সুরক্ষিত হলেও system unavailable হলে কাজ ব্যাহত হয়।

বাস্তব উদাহরণ (Security Breach)
Equifax Data Breach (2017): এই ঘটনায় attackers একটি vulnerability ব্যবহার করে কোটি মানুষের ব্যক্তিগত তথ্য চুরি করে। এতে Confidentiality ভেঙে যায় এবং অননুমোদিত access এর কারণে Integrity ক্ষতিগ্রস্ত হয়।

15. A banking application requires users to enter a 4-digit PIN for login.
Explain how you would test this input field to ensure that it accepts only valid 4-digit numbers and rejects invalid inputs.
Mention a few test cases you would include and explain why such testing is important for system security and reliability.65

Testing a 4-Digit PIN Input Field
To test a 4-digit PIN input field in a banking application, I would verify that the system accepts only numeric values with exactly 4 digits and rejects any other input. This involves both functional testing and validation testing at the input level.

Test Cases
Valid Input: Enter 1234 → Should be accepted (correct 4-digit number).
Less than 4 digits: Enter 123 → Should be rejected (too short).
More than 4 digits: Enter 12345 → Should be rejected (too long).
Non-numeric input: Enter 12ab → Should be rejected (contains letters).
Special characters: Enter 12@# → Should be rejected.
Empty input: Leave the field blank → Should be rejected.

Importance of This Testing
This testing is important for security because it prevents invalid or malicious inputs that could be used to bypass authentication. It also improves reliability by ensuring that the system behaves correctly and consistently, reducing login errors and protecting user accounts.

৪-সংখ্যার PIN Input Field টেস্ট করা
একটি banking application এ 4-digit PIN input field টেস্ট করার সময় নিশ্চিত করতে হবে যে system টি শুধুমাত্র ৪ সংখ্যার numeric value গ্রহণ করে এবং অন্য সব input বাতিল করে। এর জন্য input validation এবং functional testing প্রয়োগ করা হয়।

Test Case সমূহ
Valid Input: 1234 ইনপুট → গ্রহণ করা উচিত (সঠিক ৪-digit সংখ্যা)।
৪ digit এর কম: 123 ইনপুট → বাতিল হওয়া উচিত।
৪ digit এর বেশি: 12345 ইনপুট → বাতিল হওয়া উচিত।
Non-numeric input: 12ab ইনপুট → বাতিল হওয়া উচিত।
Special character: 12@# ইনপুট → বাতিল হওয়া উচিত।
খালি input: কিছু না লিখে submit → বাতিল হওয়া উচিত।

এই Testing কেন গুরুত্বপূর্ণ
এই ধরনের testing security নিশ্চিত করে, কারণ ভুল বা ক্ষতিকর input দিয়ে authentication bypass করার ঝুঁকি কমে। পাশাপাশি এটি system এর reliability বাড়ায় এবং ব্যবহারকারীদের জন্য একটি স্থিতিশীল ও নিরাপদ login ব্যবস্থা নিশ্চিত করে।

General Part
11. Focus Writing in Bangla (10 Marks)
বাংলাদেশের ব্যাংকিং খাতে কৃত্রিম বুদ্ধিমত্তার প্রয়োগ কীভাবে কার্যক্রমের দক্ষতা ও নিরাপত্তা বৃদ্ধি করতে পারে? একই সঙ্গে, এর সম্ভাব্য ঝুঁকি ও নৈতিক চ্যালেঞ্জসমূহ বিশেষণ করুন।

12. Focus Writing in English (10 Marks)
Why are data privacy and regulatory compliance (such as AML, KYC, and international data- protection standards) vital for the stability and credibility of the banking sector in Bangladesh? Discuss with examples and practical recommendations.

13. Translation : Bangla to English (10 Marks)
বাংলাদেশের তরুণ জনগোষ্ঠীর একটি বড় অংশ বর্তমানে শিক্ষা, কর্মসংস্থান বা প্রশিক্ষণ-এই তিনটির কোনো ক্ষেত্রেই সক্রিয় নয়। এই শ্রেণির তরুণ-তরুণীরা না পড়াশোনায় যুক্ত, না কোনো আযমূলক কাজে নিয়োজিত, আবার কোনো প্রশিক্ষণমূলক কর্মসূচিতেও অংশ নিচ্ছে না। ফলে দেশের বিপুল জনশক্তির একটি অংশ অকেজো থেকে যাচ্ছে, যা অর্থনৈতিক ও সামাজিক উভয় ক্ষেত্রেই উদ্বেগজনক । এই সমস্যার প্রধান কারণ হলো শিক্ষার সঙ্গে কর্মক্ষেত্রের প্রয়োজনের সামঞ্জস্যহীনতা, দক্ষতার ঘাটতি, কর্মসংস্থানের অভাব, সামাজিক বাধা এবং মানসিক অনুপ্রেরণার অভাব। বিশেষ করে নারী ও গ্রামীণ এলাকার তরুণদের মধ্যে এই সমস্যা বেশি লক্ষ করা যায়।

14. Translation : English to Bangla (10 Marks)
The ongoing war in Gaza has created a serious humanitarian crisis. Continuous bombing and fighting have destroyed thousands of houses, hospitals, and schools. Many innocent people have lost their homes and are living without enough food, clean water, or medicine. Children and women are suffering the most because they have no protection and very little help. Aid workers say that the situation in Gaza is getting worse every day and people may soon face starvation and disease. The Gaza war has become a tragedy that affects the whole world. It shows how war destroys not only buildings but also hope and humanity.

15. Writing on General Knowledge(10 Marks)
Evaluate the challenges and prospects of managing the Rohingya refugee crisis in Bangladesh. How important is international cooperation, and what reforms or support mechanisms should be prioritized?
Combined Bank

Post: Senior Officer (IT),
Exam Date: 17.05.2024, Exam Taker: BIBM
10. What exactly is a microcontroller? What distinguishes a microprocessor from a microcontroller? Mention the differences between RISC and CISC microprocessors.

A microcontroller is a small, low-cost microcomputer designed to perform specific tasks in embedded systems. It integrates a processor, memory (RAM, ROM, EPROM), and peripherals such as timers, counters, and serial ports into a single chip. Microcontrollers are commonly used in applications like microwave ovens, remote controls, and IoT devices.

Difference Between Microprocessor and Microcontroller

Differences Between RISC and CISC MicroprocessorsCISC_vs_RISC


📖 For More Details about this topic

11. Assume that an office has three departments and each department has 50 to 70 employees who are using computers with Windows operating systems. The office space is designed in such a way that an employee can use any computer within a department. Once an employee logs in from a computer, he/she will get access to his files from the server. Let you are planning for network and server setup for this company.

11(a) What is Active Directory? Do you need an Active Directory for such an office? If yes, briefly explain its use under this circumstance.

What is Active Directory?

Active Directory (AD) is a directory service developed by Microsoft for managing users, computers, and network resources in Windows-based environments. It provides authentication, authorization, and centralized control over network resources.

Do You Need Active Directory for This Office?

Yes, implementing Active Directory is beneficial for an office with multiple departments and a large number of employees. Since employees can use any computer within their department and still need access to their personal files stored on the server, Active Directory can centrally manage user accounts, authentication, and permissions.

  • When an employee logs in from any computer, AD verifies their identity and grants access to their files and resources based on their user account.

  • This eliminates the need to create separate accounts on each computer.

  • AD also simplifies managing user permissions, ensuring employees access only the resources allowed for their department.

  • It provides centralized control over security, password policies, and resource sharing, making IT management easier and more secure.

🎥 Video Solution: What is Active Directory? It uses, benefits & structure.

11(a) What is Active Directory? Do you need an Active Directory for such an office? If yes, briefly explain its use under this circumstance.
Subnet
A subnet (subnetwork) is a smaller part of a larger network. It is created by dividing a large IP network into multiple smaller networks to improve management, performance, and efficient use of network resources.
Benefits of Using Subnets in an Office

Improved Network Performance:
Subnets reduce network congestion by limiting broadcast traffic, especially when multiple employees access shared resources like file servers.
Enhanced Security & Access Control:
Each department can be isolated into its own subnet, preventing unauthorized access between departments and improving overall security.
Simplified Management & Troubleshooting:
Network administrators can easily monitor, manage, and troubleshoot issues within a specific department or subnet.
Efficient IP Address Allocation:
Subnets allow efficient use of IP addresses by allocating only the required number of IPs to each department and supporting future expansion.
Flexible Roaming Within Departments:
Employees can log in from any computer within their department, and subnet-based authentication ensures smooth access to department-specific resources.
Subnet
Subnet বা subnetwork হলো একটি বড় network এর ছোট অংশ। বড় একটি IP network কে একাধিক ছোট network এ ভাগ করার প্রক্রিয়াকে subnetting বলা হয়, যা network পরিচালনা সহজ এবং কার্যকর করে।
Office এ Subnet ব্যবহারের সুবিধা

উন্নত Network Performance:
Subnet ব্যবহারে broadcast traffic কমে যায়, ফলে একাধিক employee একসাথে server বা file access করলেও network congestion কম হয়।

বর্ধিত Security ও Access Control:
প্রতিটি department আলাদা subnet এ থাকায় এক department থেকে অন্য department এ অননুমোদিত access রোধ করা যায়।
সহজ Management ও Troubleshooting:
নির্দিষ্ট subnet বা department অনুযায়ী সমস্যা চিহ্নিত ও সমাধান করা সহজ হয়।
কার্যকর IP Address ব্যবহার:
Subnetting এর মাধ্যমে প্রতিটি department এর প্রয়োজন অনুযায়ী IP address দেওয়া যায় এবং ভবিষ্যতে নতুন department যোগ করাও সহজ হয়।
Department এর মধ্যে Flexible Roaming:
Employee রা তাদের department এর যেকোনো computer থেকে login করতে পারে এবং subnet-based authentication এর মাধ্যমে নির্দিষ্ট resource সহজে ব্যবহার করতে পারে।
12. Briefly describe the following network devices: Repeater, Hub, Bridge, Switch and Router.

Repeater:

A Repeater is a network device that works as a signal booster. When data signals travel over long distances through cables or wireless media, the signal becomes weak. A repeater receives the weak signal, regenerates it, and forwards it to extend the network range.

Hub:

A Hub is a networking device used to connect multiple devices in a LAN. When a hub receives data from one device, it broadcasts the data to all connected devices. It cannot filter data and works in half-duplex mode, which reduces network performance.

Bridge:

A Bridge connects two or more LAN segments and forwards data between them. It uses MAC addresses to decide whether to forward or block data, reducing unnecessary network traffic.

Switch:

A Switch connects multiple devices in a LAN and forwards data based on MAC addresses. It sends data only to the intended device, improving network speed and security compared to a hub.

Router:

A Router connects different networks and routes data packets using a routing table. It selects the best path for data transmission between networks.

Repeater:

Repeater হলো একটি network device যা signal booster হিসেবে কাজ করে। দীর্ঘ দূরত্বে data transmit করার সময় signal দুর্বল হয়ে যায়। Repeater সেই দুর্বল signal গ্রহণ করে regenerate করে আবার পাঠায়, ফলে network range বৃদ্ধি পায়।

Hub:

Hub একটি network device যা LAN-এ একাধিক device সংযুক্ত করে। Hub কোনো data পেলে তা সব connected device-এ broadcast করে। এটি data filter করতে পারে না এবং half-duplex mode-এ কাজ করে, ফলে network slow হয়।

Bridge:

Bridge দুই বা ততোধিক LAN segment সংযুক্ত করে। এটি MAC address ব্যবহার করে data forward বা block করে, ফলে অপ্রয়োজনীয় traffic কমে।

Switch:

Switch LAN-এ একাধিক device সংযুক্ত করে এবং MAC address অনুযায়ী নির্দিষ্ট device-এ data পাঠায়। Hub-এর তুলনায় এটি দ্রুত এবং বেশি secure।

Router:

Router একাধিক network সংযুক্ত করে এবং routing table ব্যবহার করে data packet-এর জন্য সবচেয়ে efficient path নির্বাচন করে।

13. What are the different types of transmission media used for data communication? Explain their advantages and disadvantages.

Types of Transmission Media

Transmission media are used to carry data from a source to a destination. They are categorized into two types:

1. Guided Media (Wired)

Guided media use physical cables for data transmission. Examples:

1. Twisted Pair Cable: Commonly used in LANs.

  • Advantages: Cheap, easy to install, supports high-speed LAN.
  • Disadvantages: Limited distance, susceptible to interference.

2. Coaxial Cable: Used for cable TV and internet.

  • Advantages: High-speed data transfer, better shielding.
  • Disadvantages: Expensive, network failure if damaged.

3. Fiber Optic Cable: Used for high-speed broadband and long-distance communication.

  • Advantages: High bandwidth, low signal loss, immune to interference.
  • Disadvantages: Expensive, fragile, complex installation.

2. Unguided Media (Wireless)

Unguided media use electromagnetic waves for data transmission. Examples:

1. Radio Waves: Used in Wi-Fi, AM/FM, and mobile networks.

  • Advantages: Covers large areas, low setup cost.
  • Disadvantages: Prone to interference, less secure.

2. Microwaves: Used in satellite and long-distance communication.

  • Advantages: No cables needed, suitable for remote areas.
  • Disadvantages: High installation cost, weather-dependent.

3. Infrared: Used in remote controls and short-range communication.

  • Advantages: Secure, low power consumption.
  • Disadvantages: Short range, blocked by obstacles.

Source: Tutorialspoint

Transmission Media-এর ধরন

Transmission media হলো এমন মাধ্যম যা source থেকে destination পর্যন্ত data বহন করে। এগুলো প্রধানত দুই ধরনের:

1. Guided Media (Wired)

Guided media-তে physical cable ব্যবহার করে data transmit করা হয়। উদাহরণ:

1. Twisted Pair Cable: সাধারণত LAN-এ ব্যবহৃত হয়।

  • Advantages: কম খরচে পাওয়া যায়, install করা সহজ, high-speed LAN support করে।
  • Disadvantages: দূরত্ব সীমিত, interference-এর প্রভাব বেশি।

2. Coaxial Cable: Cable TV এবং internet-এ ব্যবহৃত হয়।

  • Advantages: High-speed data transfer, ভালো shielding।
  • Disadvantages: ব্যয়বহুল, cable ক্ষতিগ্রস্ত হলে network failure হয়।

3. Fiber Optic Cable: High-speed broadband এবং long-distance communication-এ ব্যবহৃত হয়।

  • Advantages: High bandwidth, signal loss কম, interference মুক্ত।
  • Disadvantages: ব্যয়বহুল, ভঙ্গুর, install করা জটিল।

2. Unguided Media (Wireless)

Unguided media electromagnetic wave ব্যবহার করে data transmit করে। উদাহরণ:

1. Radio Waves: Wi-Fi, AM/FM এবং mobile network-এ ব্যবহৃত হয়।

  • Advantages: বড় এলাকা জুড়ে coverage, setup cost কম।
  • Disadvantages: Interference-এর সম্ভাবনা বেশি, security কম।

2. Microwaves: Satellite এবং long-distance communication-এ ব্যবহৃত হয়।

  • Advantages: Cable দরকার হয় না, remote area-র জন্য উপযোগী।
  • Disadvantages: Installation cost বেশি, weather-এর উপর নির্ভরশীল।

3. Infrared: Remote control এবং short-range communication-এ ব্যবহৃত হয়।

  • Advantages: Secure, কম power ব্যবহার করে।
  • Disadvantages: স্বল্প দূরত্বে কাজ করে, বাধা পেলে signal block হয়।

Source: Tutorialspoint

Software as a Service (SaaS)

SaaS (Software as a Service) is a cloud-based software delivery model where applications are hosted by a service provider and accessed by users over the internet. Users do not need to install or maintain the software; they simply use it through a web browser.

Multi-Tenant Architecture

Multi-tenant architecture is a software architecture where a single instance of an application and its database serves multiple customers (tenants). Each tenant’s data is logically isolated, but the underlying infrastructure is shared.

Relationship between SaaS and Multi-Tenancy

Most SaaS applications use multi-tenant architecture to efficiently serve multiple customers using shared resources. Multi-tenancy enables SaaS providers to reduce cost, simplify maintenance, and scale easily.

Advantages of Multi-Tenancy

  • Lower operational and infrastructure cost.
  • Easier maintenance and centralized updates.
  • Better resource utilization.
  • High scalability for large numbers of tenants.

Disadvantages of Multi-Tenancy

  • Complex data isolation and security management.
  • Performance issues if one tenant consumes excessive resources.
  • Limited customization for individual tenants.

Database Architecture Choice for Multi-Vendor E-Commerce Application

For a multi-vendor e-commerce application, I would choose a single database with tenant-based data separation architecture.

Reason:

  • Easier to manage and maintain compared to multiple databases.
  • Lower infrastructure and operational cost.
  • Supports scalability as new vendors can be added easily.
  • Suitable for SaaS-based multi-vendor platforms.

However, strict access control and proper indexing must be implemented to ensure data security and performance.

Software as a Service (SaaS)

SaaS (Software as a Service) হলো একটি cloud-based software delivery model যেখানে application provider-এর server-এ host করা থাকে এবং user internet-এর মাধ্যমে ব্যবহার করে। User-কে software install বা maintain করতে হয় না।

Multi-Tenant Architecture

Multi-tenant architecture এমন একটি architecture যেখানে একটি application instance এবং database একাধিক tenant (customer)-কে service দেয়। প্রতিটি tenant-এর data logically আলাদা থাকে, কিন্তু infrastructure shared হয়।

SaaS এবং Multi-Tenancy-এর সম্পর্ক

বেশিরভাগ SaaS application multi-tenant architecture ব্যবহার করে, কারণ এতে shared resource ব্যবহার করে একাধিক customer-কে service দেওয়া যায়। এতে cost কমে এবং scalability বাড়ে।

Multi-Tenancy-এর সুবিধা

  • Infrastructure এবং operational cost কম।
  • Centralized maintenance এবং সহজ update।
  • Resource utilization ভালো হয়।
  • High scalability পাওয়া যায়।

Multi-Tenancy-এর অসুবিধা

  • Data isolation এবং security management জটিল।
  • একটি tenant বেশি resource ব্যবহার করলে performance সমস্যা হতে পারে।
  • Individual tenant-এর জন্য customization সীমিত।

Multi-Vendor E-Commerce Application-এর জন্য Database Architecture নির্বাচন

Multi-vendor e-commerce application-এর জন্য আমি single database with tenant-based data separation architecture বেছে নেব।

কারণ:

  • Multiple database-এর তুলনায় manage করা সহজ।
  • Infrastructure cost কম হয়।
  • নতুন vendor সহজে add করা যায়, তাই scalability ভালো।
  • SaaS-based multi-vendor platform-এর জন্য উপযুক্ত।

তবে data security এবং performance নিশ্চিত করার জন্য strong access control এবং proper indexing প্রয়োজন।

15. What do you understand about software quality assurance (SQA)? While purchasing a software system for your company, as a SQA team leader what aspects will you look into for a quality software.

Software Quality Assurance (SQA)

Software Quality Assurance (SQA) is a systematic process that ensures software meets specified quality standards and customer requirements. It focuses on improving the software development process to prevent defects rather than detecting them after development.

SQA involves activities such as process definition, quality planning, reviews, testing, audits, and continuous improvement to ensure reliable and high-quality software.

Aspects to Look for While Purchasing a Software System (Role of SQA Team Leader)

  • Functionality: The software should meet all business requirements and perform expected functions correctly.
  • Reliability: The system should work consistently without frequent failures or crashes.
  • Usability: The software should be user-friendly and easy to learn for end users.
  • Performance: It should respond quickly and handle the expected workload efficiently.
  • Security: The software must protect data from unauthorized access and support authentication and authorization.
  • Maintainability: The system should be easy to modify, update, and maintain.
  • Compatibility: It should work smoothly with existing hardware, software, and operating systems.
  • Scalability: The software should be able to handle future growth in users or data.
  • Vendor Support: Availability of technical support, documentation, updates, and training.

Software Quality Assurance (SQA)

Software Quality Assurance (SQA) হলো একটি systematic process যা নিশ্চিত করে যে software নির্ধারিত quality standard এবং customer requirement পূরণ করছে। এটি software development process উন্নত করার উপর গুরুত্ব দেয় যাতে defect আগেই প্রতিরোধ করা যায়।

SQA-এর মধ্যে process definition, quality planning, review, testing, audit এবং continuous improvement-এর মতো কার্যক্রম অন্তর্ভুক্ত থাকে, যা high-quality এবং reliable software নিশ্চিত করে।

SQA Team Leader হিসেবে Software কেনার সময় যে বিষয়গুলো বিবেচনা করা হবে

  • Functionality: Software যেন সব business requirement সঠিকভাবে পূরণ করে।
  • Reliability: System যেন নিয়মিত ও স্থিতিশীলভাবে কাজ করে এবং crash না করে।
  • Usability: Software যেন user-friendly হয় এবং ব্যবহার করা সহজ হয়।
  • Performance: System যেন দ্রুত response দেয় এবং workload দক্ষতার সাথে handle করে।
  • Security: Data protection, authentication এবং authorization সঠিকভাবে implement করা আছে কিনা।
  • Maintainability: Software সহজে update, modify এবং maintain করা যায় কিনা।
  • Compatibility: বিদ্যমান hardware, software এবং OS-এর সাথে software কাজ করে কিনা।
  • Scalability: ভবিষ্যতে user বা data বাড়লেও software handle করতে পারবে কিনা।
  • Vendor Support: Documentation, technical support, update এবং training সুবিধা আছে কিনা।
16. Write a program in any language to find the sum of rows and columns of a m X n matrix, where m and n is taken input from the user. Give the output in the following format:

✅ C Program to Compute Row and Column Sum of a Matrix

#include <stdio.h>
int main() {
    int m, n, i, j;

    // Input matrix dimensions
    printf("Enter the number of rows (m): ");
    scanf("%d", &m);
    printf("Enter the number of columns (n): ");
    scanf("%d", &n);

    int matrix[m][n];

    // Input matrix elements
    printf("Enter the elements of the matrix row-wise:\n");
    for (i = 0; i < m; i++) {
        for (j = 0; j < n; j++) {
            scanf("%d", &matrix[i][j]);
        }
    }

    // Calculate and print row sums
    printf("\nMatrix with Row Sums:\n");
    for (i = 0; i < m; i++) {
        int rowSum = 0;
        for (j = 0; j < n; j++) {
            printf("%d ", matrix[i][j]);
            rowSum += matrix[i][j];
        }
        printf("%d\n", rowSum); // Row sum
    }

    // Calculate and print column sums
    printf("\nColumn Sums:\n");
    for (j = 0; j < n; j++) {
        int colSum = 0;
        for (i = 0; i < m; i++) {
            colSum += matrix[i][j];
        }
        printf("%d ", colSum);
    }

    return 0;
}

Sample I/O:Enter the number of rows (m): 3
Enter the number of columns (n): 4
Enter the elements of the matrix row-wise:
1  3  4  2
2  4  5  3
3  2  2  5
Output:
Matrix with Row Sums:
1  3  4  2  10
2  4  5  3  14
3  2  2  5  12

Column Sums:
6  9  11  10


🔗Sum of rows and columns of a m X n matrix.

17. Write a program in any language to find the prime numbers between 1....... n, where n is taken as user input.
Sample input:
Enter value of n: 20

Sample Output:
Prime Numbers: 2, 3, 5, 7, 11, 13, 17, 19
#include <iostream>
using namespace std;
bool isPrime(int num) {
    if (num < 2) return false;
    for (int i = 2; i * i <= num; i++) {
        if (num % i == 0) return false;
    }
    return true;
}

void findPrimes(int n) {
    cout << "Prime Numbers: ";
    for (int i = 1; i <= n; i++) {
        if (isPrime(i))
            cout << i << " ";
    }
    cout << endl;
}

int main() {
    int n;
    cout << "Enter value of n: ";
    cin >> n;
    findPrimes(n);
    return 0;
}

Sample I/O:Enter value of n: 20
Prime Numbers: 2 3 5 7 11 13 17 19


🔗 Run Online: Prime Number between Range

18. Let you procure a microfinance application and host it in your office's data centre. What kind of cyber-security threats should you be aware of and what steps would you take to mitigate the threats?

Common Cyber-Security Threats

  • Malware and Ransomware: Malicious software that can disrupt operations, steal data, or encrypt files and demand ransom.
  • Phishing Attacks: Fake emails or messages designed to trick users into revealing sensitive information.
  • Denial of Service (DoS) and DDoS Attacks: Floods systems with traffic, making services unavailable to legitimate users.
  • SQL Injection: Exploits vulnerabilities in database queries to run unauthorized commands.
  • Cross-Site Scripting (XSS): Injects malicious scripts into web pages to attack users.
  • Weak Authentication and Authorization: Poor access control that allows unauthorized users to access data.

Mitigation Steps

  • Security Policies and Procedures: Define strict rules for IT security, access control, and incident response.
  • Regular Security Audits: Perform vulnerability assessments to detect and fix security gaps.
  • Patch Management: Regularly update systems and software with security patches.
  • Network Security: Use firewalls, IDS/IPS, and VPNs to protect network traffic.
  • Data Encryption: Encrypt sensitive data both at rest and during transmission.
  • Employee Training: Train employees to identify phishing, malware, and follow security best practices.
  • Physical Security: Use access control, surveillance, and environmental protection for data centers.

Common Cyber-Security Threats

  • Malware and Ransomware: ক্ষতিকর software যা system ক্ষতিগ্রস্ত করতে পারে, data চুরি করতে পারে বা file encrypt করে ransom দাবি করে।
  • Phishing Attacks: ভুয়া email বা message যা user-কে প্রতারণা করে sensitive information আদায় করে।
  • Denial of Service (DoS) এবং DDoS Attacks: অতিরিক্ত traffic পাঠিয়ে system বা service অচল করে দেয়।
  • SQL Injection: Database query-এর দুর্বলতা ব্যবহার করে unauthorized command চালানো।
  • Cross-Site Scripting (XSS): Web page-এ malicious script inject করে user-কে আক্রমণ করা।
  • Weak Authentication and Authorization: দুর্বল access control যার ফলে unauthorized data access সম্ভব হয়।

Mitigation Steps

  • Security Policies and Procedures: IT security, access control এবং incident response-এর জন্য কঠোর নিয়ম নির্ধারণ।
  • Regular Security Audits: Vulnerability assessment করে security weakness শনাক্ত ও সমাধান করা।
  • Patch Management: System ও software নিয়মিত update রাখা।
  • Network Security: Firewall, IDS/IPS এবং VPN ব্যবহার করে network traffic সুরক্ষিত রাখা।
  • Data Encryption: Sensitive data at rest এবং in transit অবস্থায় encrypt করা।
  • Employee Training: Employee-দের phishing, malware এবং security best practice সম্পর্কে প্রশিক্ষণ দেওয়া।
  • Physical Security: Data center সুরক্ষার জন্য access control, surveillance এবং পরিবেশগত ব্যবস্থা গ্রহণ।
19. What do you understand about the IT disaster recovery plan? Describe your approach to disaster recovery and business continuity planning for the data centre of your office.

IT Disaster Recovery Plan (DRP)

An IT Disaster Recovery Plan (DRP) is a documented strategy that outlines the procedures and actions required to recover IT systems, data, and infrastructure after a disruptive event such as natural disasters, cyber-attacks, hardware failures, or power outages.

The main goal of a disaster recovery plan is to minimize downtime, prevent data loss, and restore critical business operations as quickly as possible.

Approach to Disaster Recovery and Business Continuity Planning for a Data Centre

  • Risk Assessment: Identify possible threats such as fire, flood, cyber-attacks, hardware failure, and power disruption.
  • Data Backup Strategy: Implement regular automated backups, including off-site and cloud-based backups.
  • Redundant Infrastructure: Use redundant servers, storage, network devices, and power supplies to avoid single points of failure.
  • Disaster Recovery Site: Maintain a hot site or warm site to quickly resume operations in case the primary data centre fails.
  • Recovery Objectives: Define RTO (Recovery Time Objective) and RPO (Recovery Point Objective) for critical systems.
  • Business Continuity Planning: Ensure essential business services continue during a disaster using alternative processes and locations.
  • Security Measures: Protect systems using firewalls, intrusion detection systems, and access control.
  • Testing and Drills: Conduct regular disaster recovery tests and simulation drills.
  • Documentation and Training: Maintain clear documentation and train staff on disaster recovery procedures.

IT Disaster Recovery Plan (DRP)

IT Disaster Recovery Plan (DRP) হলো একটি documented strategy যা প্রাকৃতিক দুর্যোগ, cyber-attack, hardware failure বা power outage-এর মতো বিপর্যয়ের পর IT system, data এবং infrastructure পুনরুদ্ধারের জন্য প্রয়োজনীয় ধাপসমূহ নির্ধারণ করে।

Disaster Recovery Plan-এর মূল লক্ষ্য হলো downtime কমানো, data loss প্রতিরোধ করা এবং দ্রুত গুরুত্বপূর্ণ business operation পুনরায় চালু করা।

Office Data Centre-এর জন্য Disaster Recovery এবং Business Continuity Planning-এর Approach

  • Risk Assessment: Fire, flood, cyber-attack, hardware failure এবং power disruption-এর মতো সম্ভাব্য ঝুঁকি চিহ্নিত করা।
  • Data Backup Strategy: Regular automated backup গ্রহণ করা, যেখানে off-site এবং cloud backup অন্তর্ভুক্ত থাকবে।
  • Redundant Infrastructure: Single point of failure এড়াতে redundant server, storage, network device এবং power supply ব্যবহার করা।
  • Disaster Recovery Site: Primary data centre ব্যর্থ হলে দ্রুত কাজ চালু করার জন্য hot site বা warm site রাখা।
  • Recovery Objectives: Critical system-এর জন্য RTO (Recovery Time Objective) এবং RPO (Recovery Point Objective) নির্ধারণ করা।
  • Business Continuity Planning: Disaster চলাকালীন essential business service চালু রাখতে alternative process এবং location ব্যবহার করা।
  • Security Measures: Firewall, intrusion detection system এবং access control ব্যবহার করে system সুরক্ষিত রাখা।
  • Testing and Drills: নিয়মিত disaster recovery test এবং mock drill পরিচালনা করা।
  • Documentation and Training: Clear documentation রাখা এবং staff-দের disaster recovery procedure সম্পর্কে প্রশিক্ষণ দেওয়া।
20 Let a database has two tables, Customers and Orders. The following figure shows the partial data of these two tables. Based on this partial data, explain Inner, Left, Right and Full join. Show the result set of each join operation
Inner Join:An Inner Join returns only the rows that have matching values in both tables.
SELECT Customers.ID, Customers.FirstName, Orders.OrderID, Orders.Amount
FROM Customers
INNER JOIN Orders ON Customers.ID = Orders.CustomerID;
Result Set:
IDFirst NameOrder IDAmount
3Belal2500
5Helal4800

Left Join (or Left Outer Join):A Left Join returns all rows from the left table (Customers), and the matched rows from the right table (Orders). If there is no match, the result is NULL on the right side.
SELECT Customers.ID, Customers.FirstName, Orders.OrderID, Orders.Amount
FROM Customers
LEFT JOIN Orders ON Customers.ID = Orders.CustomerID;
Result Set:
IDFirst NameOrder IDAmount
1RahimNULLNULL
2KarimNULLNULL
3Belal2500
4RonyNULLNULL
5Helal4800

Right Join (or Right Outer Join):A Right Join returns all rows from the right table (Orders), and the matched rows from the left table (Customers). If there is no match, the result is NULL on the left side.
SELECT Customers.ID, Customers.FirstName, Orders.OrderID, Orders.Amount
FROM Customers
RIGHT JOIN Orders ON Customers.ID = Orders.CustomerID;
Result Set:
IDFirst NameOrder IDAmount
NULLNULL1200
3Belal2500
NULLNULL3300
5Helal4800
NULLNULL5150

Full Join (or Full Outer Join):A Full Join returns all rows when there is a match in either the left (Customers) or right (Orders) table. Rows without a match in one of the tables will have NULLs in the corresponding columns.
SELECT Customers.ID, Customers.FirstName, Orders.OrderID, Orders.Amount
FROM Customers
FULL OUTER JOIN Orders ON Customers.ID = Orders.CustomerID;
Result Set:
IDFirst NameOrder IDAmount
1RahimNULLNULL
2KarimNULLNULL
3Belal2500
4RonyNULLNULL
5Helal4800
NULLNULL1200
NULLNULL3300
NULLNULL5150
21. Briefly describe primary key, foreign key and indexing in relational database and their relationship. Do you think database indexing always makes applications faster? Explain your answer.

Primary Key, Foreign Key, and Indexing in Relational Databases

Primary Key: A primary key is a column (or a set of columns) that uniquely identifies each row in a table.

Example: Student Table

Stu_IdStu_NameStu_Age
101Steve23
102John24
103Robert28
104Steve29
  • Stu_Id can be the primary key because it is unique for each student.
  • Stu_Name alone cannot be a primary key, as multiple students can have the same name.
  • Stu_Age alone cannot be a primary key, as multiple students can have the same age.

Foreign Key: A foreign key is a column in one table that references the primary key of another table. It establishes relationships between tables.

Example: Course Enrollment Table

Course_IdStu_Id
C01101
C02102
C03101
  • In this table, Stu_Id is a foreign key as it references the primary key (Stu_Id) from the Student table.

Indexing: Indexing improves the speed of data retrieval in a database.

  • Advantages: Indexing speeds up search queries, improves performance, and reduces load time.
  • Disadvantages: Indexes require extra storage and may slow down insert, update, and delete operations.

Does Indexing Always Make Applications Faster?

  • Yes, for read-heavy databases where fast searches are needed.
  • No, for write-heavy databases where frequent inserts and updates happen, as indexing can slow them down.
22. How many types of modes are used in data transferring through networks? Briefly explain those modes. Differentiate between TCP vs UDP.

Data transmission mode is a process by which data is sent from a source to one or more destinations. Simply put, it defines how data flows from one device to another. It is also known as Communication Mode.

Types of Data Transmission Modes

1. Simplex Mode

– Communication is one-way only.

– Data flows in a single direction, meaning one device can only send data while the other can only receive it.

– No two-way communication.

Example: Keyboard to Computer, Radio, Television.

[Source] ----> [Destination]

2. Half-Duplex Mode

– Data can flow in both directions, but only one direction at a time.

– The entire communication channel is used for sending data in one direction at a time.

– Error detection is possible.

Example: Walkie-Talkie Communication.

[Source] ----> [Destination]
[Source] <---- [Destination]

3. Full-Duplex Mode

– Data flows in both directions simultaneously.

– Both devices can send and receive data at the same time.

– Uses two simplex channels, where one channel sends data in one direction, and the other channel sends data in the opposite direction.

Example: Mobile Phones, Telephones.

[Source] <----> [Destination]

23. You are asked to lead a team of software engineers to develop an application software system for your company and deploy it as fast as possible. You need to gather user requirements, design, develop, test, and then deploy the system. Between Waterfall Approach and Incremental Approach, which software development approach will you take for your software project? Explain your answer.

To develop and deploy the software system as quickly as possible, I would choose the Incremental Approach over the Waterfall Approach. Here’s why:

  1. Faster Delivery & Early Value:

    • Incremental Approach: Delivers software in smaller, working parts, allowing early use and feedback.
    • Waterfall Approach: Requires full completion of all phases before any part is usable, leading to long waiting times.
  2. Flexibility & Adaptability:

    • Incremental Approach: Allows changes and improvements throughout development.
    • Waterfall Approach: Changes are difficult and costly once requirements are set.
  3. Risk Management:

    • Incremental Approach: Issues are detected and fixed early, reducing risks.
    • Waterfall Approach: Risks are identified late, leading to costly rework.
  4. User Feedback:

    • Incremental Approach: Users can give feedback during development to refine the system.
    • Waterfall Approach: Feedback comes only after full development, risking mismatches with user needs.
  5. Resource Allocation:

    • Incremental Approach: Resources are managed efficiently, focusing on smaller increments.
    • Waterfall Approach: All resources are tied up until full system completion.
24. What is machine learning? Differentiate among supervised learning vs unsupervised learning vs reinforcement learning.

Machine Learning (ML) is a branch of Artificial Intelligence where computers learn from data, identify patterns, and make decisions without explicit programming.

  • Purpose: To analyze data and make accurate predictions or decisions automatically.
  • Example: Spam filtering, recommendation systems, image recognition.
  • Key Idea: The system improves its performance over time by learning from experience (data).

Types of Machine Learning

Supervised Learning:

  • Uses labeled data where input and correct output are already known.
  • The model learns a mapping function from input to output.
  • Used for prediction tasks.
  • Example: Email classification (spam/not spam), house price prediction.

Unsupervised Learning:

  • Uses unlabeled data without predefined output.
  • The model discovers hidden patterns or relationships in data.
  • Used for grouping and data analysis.
  • Example: Customer segmentation, clustering.

Reinforcement Learning:

  • An agent interacts with an environment and learns by trial and error.
  • Uses reward and punishment to improve decisions.
  • Focuses on maximizing long-term reward.
  • Example: Game playing (Chess, AI agents), robotics control.

Machine Learning (ML) হলো Artificial Intelligence-এর একটি শাখা যেখানে computer data থেকে pattern শিখে এবং নিজে নিজে decision নিতে পারে, আলাদা করে program না করেও।

  • Purpose: Data বিশ্লেষণ করে সঠিক prediction বা decision নেওয়া।
  • Example: Spam detection, recommendation system, image recognition।
  • Key Idea: System data থেকে শিখে সময়ের সাথে সাথে তার performance উন্নত করে।

Machine Learning-এর ধরন

Supervised Learning:

  • Labeled data ব্যবহার করা হয় যেখানে input-এর সাথে output জানা থাকে।
  • Model input ও output-এর সম্পর্ক শিখে।
  • Prediction করার জন্য ব্যবহৃত হয়।
  • Example: Spam detection, house price prediction।

Unsupervised Learning:

  • Unlabeled data ব্যবহার করা হয় যেখানে output আগে থেকে জানা থাকে না।
  • Data-এর ভিতরে hidden pattern বা group খুঁজে বের করে।
  • Data analysis এবং grouping-এ ব্যবহৃত হয়।
  • Example: Customer segmentation, clustering।

Reinforcement Learning:

  • একটি agent environment-এর সাথে interaction করে trial and error এর মাধ্যমে শেখে।
  • Reward এবং punishment ব্যবহার করে শেখানো হয়।
  • Long-term reward maximize করার উপর গুরুত্ব দেয়।
  • Example: Game playing, robotics control।
General Part
Section -A: Focus Writing in Bangla
  1. "তীব্র তাপপ্রবাহ হ্রাসে পরিবেশ সুরক্ষার গুরুত্ব"-এর উপর একটি রচনা লিখুন ১৫০ (+/-১০%) শব্দের মধ্যে।
Section-B: Focus Writing in English
  1. Write an essay on "Modern Technology and Its Effect on Student Academic Achievements" within 150 (+/- 10%) words.
Section-C: Translation- Bangla to English
  1. Translate the given Bangla passage into English.
Section-D: Translation English to Bangla
  1. Translate the given English passage into Bangla.
Section-E: General Knowledge (Qs. 5-9)
  1. What is Padma Shri Award? Mention the name of a renowned Bangladeshi singer who has recently got the Padma Shri Award.
  2. What is BIMSTEC?
  3. Mention the day and month of celebration of International Mother's Day.
  4. Who will host the T20 World Cup 2024?
  5. Mention the name of the First Governor of Bangladesh Bank.
Combined Bank

Post: Senior Officer (IT) Job id-10149,
Exam Date: 13.10.2023, Exam Taker: BIBM
1. Difference between 32 bit Microprocessor and 64 bit Microprocessor with example. What is the meaning of 2.40GHz Microprocessor? Differentiate among Core Indel i3, i5 and i7 processor. Why do you prefer SSD instead of HDD? 10

Difference between 32-bit and 64-bit Microprocessor

32-bit Microprocessor

  • Supports maximum 4 GB RAM.
  • Uses 32-bit address space.
  • Limited support for modern software.
  • Lower performance compared to 64-bit.
  • Less expensive.
  • Examples: Motorola 68020, HP FOCUS.

64-bit Microprocessor

  • Supports very large RAM (terabytes).
  • Uses 64-bit address space.
  • Better performance and multitasking.
  • Supports modern 64-bit software.
  • More expensive.
  • Examples: AMD Opteron, Intel x64 series.

Meaning of 2.40 GHz Microprocessor

2.40 GHz means the processor can execute 2.40 billion clock cycles per second, indicating higher processing speed.

Difference among Intel Core i3, i5, and i7

Intel Core i3

  • Entry-level processor.
  • Usually 2–4 cores.
  • No Turbo Boost.
  • Best for basic tasks.

Intel Core i5

  • Mid-range processor.
  • 4–6 cores.
  • Supports Turbo Boost.
  • Good for multitasking.

Intel Core i7

  • High-performance processor.
  • 6–8+ cores.
  • Supports Hyper-Threading and Turbo Boost.
  • Best for heavy applications.

Why prefer SSD instead of HDD?

SSD provides faster speed, better durability, low power consumption, and silent operation. HDD is cheaper but slower and less reliable.

32-bit ও 64-bit Microprocessor-এর পার্থক্য

32-bit Microprocessor

  • সর্বোচ্চ 4 GB RAM সাপোর্ট করে।
  • 32-bit address space ব্যবহার করে।
  • নতুন software-এর সাপোর্ট সীমিত।
  • পারফরম্যান্স তুলনামূলক কম।
  • দাম কম।
  • উদাহরণ: Motorola 68020, HP FOCUS।

64-bit Microprocessor

  • অনেক বেশি RAM (TB পর্যন্ত) সাপোর্ট করে।
  • 64-bit address space ব্যবহার করে।
  • উচ্চ পারফরম্যান্স ও multitasking সুবিধা।
  • আধুনিক software সাপোর্ট করে।
  • দাম বেশি।
  • উদাহরণ: AMD Opteron, Intel x64।

2.40 GHz Microprocessor-এর অর্থ

2.40 GHz মানে processor প্রতি সেকেন্ডে 2.40 বিলিয়ন clock cycle সম্পন্ন করতে পারে।

Intel Core i3, i5 ও i7-এর পার্থক্য

Intel Core i3

  • Entry-level processor।
  • কম core সংখ্যা।
  • Turbo Boost নেই।
  • Basic কাজের জন্য উপযোগী।

Intel Core i5

  • Mid-range processor।
  • Turbo Boost সাপোর্ট করে।
  • Multitasking-এর জন্য ভালো।

Intel Core i7

  • High-performance processor।
  • বেশি core ও thread।
  • Heavy application-এর জন্য উপযোগী।

HDD-এর পরিবর্তে SSD কেন ব্যবহার করা হয়?

SSD দ্রুত কাজ করে, টেকসই, কম বিদ্যুৎ ব্যবহার করে এবং শব্দহীন। তাই আধুনিক কম্পিউটারে SSD বেশি ব্যবহৃত হয়।

2. Differentiate among CPU register, Cache memory, Main memory and Secondary memory. 10

CPU Register: Registers are small and extremely fast storage locations inside the CPU. They temporarily hold data and instructions that are currently being processed, enabling faster execution. Examples include Data Register, Address Register, and Accumulator.

Cache Memory: Cache memory is a high-speed memory located close to the CPU. It stores frequently used data and instructions to reduce access time and improve system performance. Cache memory is faster than RAM but smaller in size.

Main Memory: Main memory, commonly known as RAM, stores data and programs that are actively in use. It is larger than cache memory but slower. Main memory is volatile, meaning data is lost when power is turned off. Examples include RAM, ROM, PROM, and EPROM.

Secondary Memory: Secondary memory is used for permanent data storage. It is slower than main memory and not directly accessed by the CPU. Data must first be loaded into main memory before processing. Examples include Hard Disk, SSD, Flash Drive, and Optical Disk.

CPU Register: Register হলো CPU-এর ভেতরে থাকা ছোট ও অত্যন্ত দ্রুতগতির memory। এটি বর্তমানে process হওয়া data ও instruction সাময়িকভাবে সংরক্ষণ করে, ফলে CPU দ্রুত কাজ করতে পারে। উদাহরণ: Data Register, Address Register এবং Accumulator

Cache Memory: Cache memory হলো খুব দ্রুতগতির memory যা CPU-এর কাছাকাছি থাকে। এতে বারবার ব্যবহৃত data ও instruction সংরক্ষণ করা হয়, ফলে CPU দ্রুত access করতে পারে এবং system performance বৃদ্ধি পায়।

Main Memory: Main memory বা RAM হলো কম্পিউটারের প্রধান memory যেখানে চলমান program ও data সংরক্ষিত থাকে। এটি cache memory থেকে বড় কিন্তু তুলনামূলক ধীর। এটি volatile, অর্থাৎ বিদ্যুৎ বন্ধ হলে data নষ্ট হয়ে যায়। উদাহরণ: RAM, ROM, PROM এবং EPROM

Secondary Memory: Secondary memory স্থায়ীভাবে data সংরক্ষণের জন্য ব্যবহৃত হয়। এটি main memory থেকে ধীর এবং CPU সরাসরি access করতে পারে না। আগে data main memory-তে আনতে হয়। উদাহরণ: Hard Disk, SSD, Flash Drive এবং Optical Disk

3. Difference between OSI model and TCP/IP model. Relation between Data, Segment, Packet and Bit in OSI model. 1
Difference between OSI Model and TCP/IP Model osi_vs_tcpip Relation between Data, Segment, Packet and Bit in OSI ModelAs data moves down through the OSI layers, it changes its form. This process is called encapsulation.
  • Data: At the Application, Presentation, and Session layers, information is called Data.
  • Segment: At the Transport layer, data is divided into Segments (TCP) or Datagrams (UDP).
  • Packet: At the Network layer, segments are encapsulated into Packets.
  • Frame: At the Data Link layer, packets are converted into Frames.
  • Bit: At the Physical layer, frames are transmitted as Bits (0s and 1s).
Flow: Data → Segment → Packet → Frame → Bit
OSI Model এবং TCP/IP Model-এর পার্থক্য osi_vs_tcpip OSI Model-এ Data, Segment, Packet ও Bit-এর সম্পর্কOSI Model-এর বিভিন্ন layer দিয়ে data যাওয়ার সময় তার রূপ পরিবর্তন হয়, একে Encapsulation বলা হয়।
  • Data: Application, Presentation ও Session layer-এ তথ্যকে Data বলা হয়।
  • Segment: Transport layer-এ data ভাগ হয়ে Segment হয়।
  • Packet: Network layer-এ Segment থেকে Packet তৈরি হয়।
  • Frame: Data Link layer-এ Packet থেকে Frame হয়।
  • Bit: Physical layer-এ Frame bit (0 ও 1) আকারে পাঠানো হয়।
ধাপ: Data → Segment → Packet → Frame → Bit
4. Differentiate among TDM, FDM and WDM. How does working process in TDM? 10

Difference among TDM, FDM, and WDM

FDM (Frequency Division Multiplexing)

  • Multiple signals are transmitted simultaneously using different frequency bands.
  • Each signal occupies a separate frequency range in the same channel.
  • Example: Analog radio signals.
  • Stands for: Frequency Division Multiplexing.

TDM (Time Division Multiplexing)

  • Multiple signals share the same channel by dividing transmission time into slots.
  • Each user gets the full bandwidth during its assigned time slot.
  • Example: Digital communication.
  • Stands for: Time Division Multiplexing.

WDM (Wavelength Division Multiplexing)

  • Multiple optical signals are transmitted using different wavelengths of light.
  • Mainly used in fiber optic communication.
  • Example: Optical fiber networks.
  • Stands for: Wavelength Division Multiplexing.

Working Principle of Time Division Multiplexing (TDM)

  1. Signal Sampling: Analog signals are sampled and converted into digital form.
  2. Multiplexing: Signals are combined into frames and divided into time slots.
  3. Synchronization: A clock ensures correct timing for each slot.
  4. Transmission: The combined signal is sent through the channel.
  5. Demultiplexing: Receiver separates signals using time slots.
  6. Reconstruction: Signals are converted back to original form.

TDM, FDM ও WDM-এর পার্থক্য

FDM (Frequency Division Multiplexing)

  • একই channel-এ ভিন্ন ভিন্ন frequency ব্যবহার করে একাধিক signal পাঠানো হয়।
  • প্রতিটি signal আলাদা frequency band দখল করে।
  • উদাহরণ: Analog radio signal।
  • পূর্ণরূপ: Frequency Division Multiplexing।

TDM (Time Division Multiplexing)

  • একই channel-এ নির্দিষ্ট সময় ভাগ করে একাধিক signal পাঠানো হয়।
  • প্রতিটি signal তার সময়ে পুরো bandwidth পায়।
  • উদাহরণ: Digital communication।
  • পূর্ণরূপ: Time Division Multiplexing।

WDM (Wavelength Division Multiplexing)

  • Fiber optic cable-এ ভিন্ন ভিন্ন wavelength ব্যবহার করে signal পাঠানো হয়।
  • মূলত optical communication-এ ব্যবহৃত হয়।
  • উদাহরণ: Fiber optic network।
  • পূর্ণরূপ: Wavelength Division Multiplexing।

TDM-এর কাজ করার ধাপ

  1. Signal Sampling: Analog signal কে digital এ রূপান্তর করা হয়।
  2. Multiplexing: Signal গুলো frame ও time slot এ ভাগ করা হয়।
  3. Synchronization: Clock signal সময় নিয়ন্ত্রণ করে।
  4. Transmission: Combined signal channel দিয়ে পাঠানো হয়।
  5. Demultiplexing: Receiver signal আলাদা করে।
  6. Reconstruction: Signal আগের অবস্থায় ফেরত আনা হয়।
5. What is Topology in data communication? What are differences between Bus, Ring, Tree and Star topology? Purpose of IEEE 802.11 committee. 10

Network Topology

Network topology refers to the physical or logical arrangement of computers, devices, and communication links in a network that determines how data is transmitted.

Example: Computers connected through a central switch in an office network follow Star topology.

1. Bus Topology

Working: In bus topology, all devices are connected to a single backbone cable. When a device sends data, it travels along the cable and reaches all devices, but only the intended receiver accepts it.

Advantage: Low installation cost and simple structure.

2. Ring Topology

Working: In ring topology, devices are connected in a circular manner. Data moves in one direction from one device to the next until it reaches the destination.

Advantage: No data collision occurs.

3. Star Topology

Working: In star topology, all devices are connected to a central hub or switch. Data sent by a device first goes to the hub, which then forwards it to the destination device.

Advantage: Easy to manage and troubleshoot.

4. Tree Topology

Working: Tree topology uses a hierarchical structure where multiple star networks are connected to a main backbone cable, and data flows from parent nodes to child nodes.

Advantage: Suitable for large and expandable networks.
3. Purpose of IEEE 802.11 Committee

The IEEE 802.11 committee is responsible for developing standards for
Wireless Local Area Networks (WLAN).

  • Defines Wi-Fi communication standards
  • Ensures interoperability between wireless devices
  • Improves wireless speed, security, and reliability

Network Topology

Network Topology বলতে একটি network-এ computer, device এবং communication link-এর physical বা logical বিন্যাসকে বোঝায়, যা data চলাচলের পদ্ধতি নির্ধারণ করে।

উদাহরণ: একটি office network-এ central switch ব্যবহার করে computer সংযোগ করা Star topology-এর উদাহরণ।

১. Bus Topology

কাজ: Bus topology-তে সব ডিভাইস একটি backbone cable-এর সাথে যুক্ত থাকে। কোনো ডিভাইস data পাঠালে তা cable দিয়ে সব ডিভাইসে পৌঁছায়, কিন্তু নির্দিষ্ট receiver-ই data গ্রহণ করে।


সুবিধা: গঠন সহজ এবং খরচ কম।

২. Ring Topology

কাজ: Ring topology-তে ডিভাইসগুলো বৃত্তাকারে সংযুক্ত থাকে। Data একদিকে ঘুরে এক ডিভাইস থেকে অন্য ডিভাইসে যায় যতক্ষণ না গন্তব্যে পৌঁছায়।


সুবিধা: Data collision হয় না।

৩. Star Topology

কাজ: Star topology-তে সব ডিভাইস একটি central hub বা switch-এর সাথে যুক্ত থাকে। Data প্রথমে hub-এ যায়, তারপর destination ডিভাইসে পাঠানো হয়।

সুবিধা: Management ও troubleshooting সহজ।

৪. Tree Topology

কাজ: Tree topology-তে hierarchical কাঠামো ব্যবহার করা হয়, যেখানে একাধিক star network একটি main backbone-এর সাথে যুক্ত থাকে এবং data parent node থেকে child node-এ প্রবাহিত হয়।

সুবিধা: বড় ও expandable network-এর জন্য উপযোগী।
৩. IEEE 802.11 Committee-এর উদ্দেশ্য

IEEE 802.11 Committee-এর প্রধান উদ্দেশ্য হলো
Wireless Local Area Network (WLAN)-এর জন্য
standard তৈরি ও উন্নয়ন করা।

  • Wi-Fi standard নির্ধারণ করা
  • Wireless device-এর compatibility নিশ্চিত করা
  • Wireless network-এর speed ও security বৃদ্ধি করা
6. What is Cryptography? Difference between Symmetric and Asymmetric encryption with example. Draw and design public key encryption using Hash function. Draw a diagram for e-commerce online transactions. 10

1. What is Cryptography?

Cryptography is the technique of securing information by converting it into an unreadable form using encryption algorithms so that only authorized users can access and understand the data.

2. Difference between Symmetric and Asymmetric Encryption (with example)

AspectSymmetric EncryptionAsymmetric Encryption
Key UsedSingle shared keyTwo keys (public key and private key)
SpeedFasterSlower
SecurityLess secure for key sharingMore secure for key exchange
Key DistributionDifficultEasier
ExampleAES, DESRSA, ECC

Example Explanation: In symmetric encryption, the same key is used to encrypt and decrypt data, while in asymmetric encryption, data is encrypted using a public key and decrypted using a private key.

Hash Function in Public Key Cryptography:

A hash function converts an input message of any length into a fixed-length output called a hash value or message digest. It is used in public key cryptography to ensure data integrity, authentication, and digital signatures, but it does not perform encryption or decryption.

১. Cryptography কী?

Cryptography হলো তথ্য সুরক্ষার একটি কৌশল, যেখানে encryption algorithm ব্যবহার করে data-কে unreadable রূপে পরিবর্তন করা হয় যাতে শুধু authorized user-ই data পড়তে পারে।

২. Symmetric এবং Asymmetric Encryption-এর পার্থক্য (উদাহরণসহ)

বিষয়Symmetric EncryptionAsymmetric Encryption
Keyএকটি shared keyদুটি key (public key ও private key)
গতিদ্রুতধীর
SecurityKey share করা ঝুঁকিপূর্ণKey exchange বেশি নিরাপদ
Key Distributionকঠিনসহজ
উদাহরণAES, DESRSA, ECC

উদাহরণ ব্যাখ্যা: Symmetric encryption-এ একই key দিয়ে data encrypt ও decrypt করা হয়, আর Asymmetric encryption-এ public key দিয়ে encrypt এবং private key দিয়ে decrypt করা হয়।

Hash Function in Public Key Cryptography:

Public Key Cryptography-এ Hash Function:

Hash function যেকোনো দৈর্ঘ্যের input message-কে একটি fixed-length output-এ রূপান্তর করে, যাকে hash value বা message digest বলা হয়। Public Key Cryptography-এ এটি data integrity, authentication এবং digital signature নিশ্চিত করতে ব্যবহৃত হয়, তবে এটি encryption বা decryption করে না।



Diagram for e-commerce online transactions.

7. What is Blockchain? How does work it? Mention 5 top benefits of blockchain. Write down the difference between Traditional banking and Digital banking. 10

1. What is Blockchain?

Blockchain is a decentralized and distributed digital ledger technology that records transactions across multiple computers in a secure, transparent, and immutable manner without the need for a central authority.

2. How does Blockchain Work?

  • A transaction is initiated by a user
  • The transaction is verified by network nodes using consensus mechanism
  • Verified transactions are grouped into a block
  • The block is added to the existing blockchain using cryptographic hashing
  • The updated ledger is shared across all nodes in the network

3. Top 5 Benefits of Blockchain

  • Decentralization: No central authority controls the data
  • Security: Uses cryptography to protect data
  • Transparency: Transactions are visible to authorized participants
  • Immutability: Data once recorded cannot be altered
  • Efficiency: Faster and cost-effective transactions

4. Difference between Traditional Banking and Digital Banking

AspectTraditional BankingDigital Banking
Service DeliveryBranch-basedOnline and mobile-based
Transaction SpeedSlowerFaster
Operating HoursLimited banking hours24×7 availability
CostHigher operational costLower operational cost
TechnologyManual and semi-automatedFully digital and automated

১. Blockchain কী?

Blockchain হলো একটি decentralized ও distributed digital ledger technology, যেখানে কোনো central authority ছাড়াই নিরাপদ, transparent এবং immutable পদ্ধতিতে transaction সংরক্ষণ করা হয়।

২. Blockchain কীভাবে কাজ করে?

  • User একটি transaction শুরু করে
  • Network node গুলো consensus mechanism ব্যবহার করে transaction যাচাই করে
  • যাচাইকৃত transaction একত্রিত হয়ে একটি block তৈরি করে
  • Cryptographic hashing ব্যবহার করে block blockchain-এ যুক্ত হয়
  • Updated ledger সকল node-এর মধ্যে শেয়ার হয়

৩. Blockchain-এর শীর্ষ ৫টি সুবিধা

  • Decentralization: কোনো central authority নেই
  • Security: Cryptography ব্যবহার করে data সুরক্ষা
  • Transparency: Authorized user transaction দেখতে পারে
  • Immutability: একবার সংরক্ষিত data পরিবর্তন করা যায় না
  • Efficiency: দ্রুত ও কম খরচে transaction

৪. Traditional Banking ও Digital Banking-এর পার্থক্য

বিষয়Traditional BankingDigital Banking
সেবা প্রদানশাখা নির্ভরOnline ও mobile নির্ভর
Transaction গতিধীরদ্রুত
কাজের সময়নির্দিষ্ট সময়24×7 সেবা
খরচবেশিকম
TechnologyManual ও semi-automatedFully digital ও automated
8. What is platform independent software discuss with example? 10

Platform Independent Software

Platform independent software is software that can run on different operating systems or hardware platforms without any modification. Such software does not depend on a specific OS or hardware architecture.

Key Features of Platform Independent Software:

  • Runs on multiple platforms such as Windows, Linux, and macOS
  • Written once and executed anywhere
  • Uses an intermediate layer like Virtual Machine or Interpreter

Example:

Java is a common example of platform independent software. Java programs are compiled into bytecode, which can run on any system that has a Java Virtual Machine (JVM).

Real-World Example:

A Java-based banking application can run on Windows servers, Linux servers, and cloud platforms without changing the source code.

Platform Independent Software

Platform independent software হলো এমন software যা কোনো পরিবর্তন ছাড়াই বিভিন্ন operating system বা hardware platform-এ চালানো যায়। এই ধরনের software নির্দিষ্ট কোনো OS বা hardware-এর উপর নির্ভর করে না।

Platform Independent Software-এর বৈশিষ্ট্য:

  • Windows, Linux, macOS-এর মতো বিভিন্ন platform-এ চলে
  • একবার লেখা হলে সব জায়গায় চালানো যায়
  • Virtual Machine বা Interpreter ব্যবহার করে

উদাহরণ:

Java হলো platform independent software-এর একটি জনপ্রিয় উদাহরণ। Java program bytecode-এ compile হয়, যা Java Virtual Machine (JVM) থাকলে যেকোনো system-এ চলতে পারে।

বাস্তব উদাহরণ:

একটি Java-ভিত্তিক banking application Windows server, Linux server এবং cloud platform-এ একইভাবে চালানো যায়।

9. Write a program in any language that takes two matrices A and B as inputs ensure your code handles matrices of different dimensions-
A) Find matrices C that is multiplication A and B.
B) Find average in A and B.
C) Max from matrices C 10

#include <iostream>
using namespace std;
void matrix_multiply(int A[10][10], int B[10][10], int C[10][10], int m, int n, int p, int q) {
if (n != p) {
cout << "Matrices A and B cannot be multiplied due to incompatible dimensions.\n";
return;
}
for (int i = 0; i < m; i++) {
for (int j = 0; j < q; j++) {
C[i][j] = 0;
for (int k = 0; k < n; k++) {
C[i][j] += A[i][k] * B[k][j];
}
}
}
}
float calculate_average(int matrix[10][10], int m, int n) {
int sum = 0;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
sum += matrix[i][j];
}
}
return static_cast(sum) / (m * n);
}
int find_max(int matrix[10][10], int m, int n) {
int max = matrix[0][0];
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) { if (matrix[i][j] > max) {
max = matrix[i][j];
}
}
}
return max;
}
int main() {
int A[10][10], B[10][10], C[10][10];
int m, n, p, q;
cout << "Enter the number of rows and columns for matrix A (m x n): "; cin >> m >> n;
cout << "Enter the number of rows and columns for matrix B (p x q): "; cin >> p >> q;
if (n != p) {
cout << "Matrices A and B cannot be multiplied due to incompatible dimensions.\n";
return 0;
}

// Input matrices A and B
cout << "Enter elements of matrix A:\n";
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) { cin >> A[i][j];
}
}
cout << "Enter elements of matrix B:\n";
for (int i = 0; i < p; i++) {
for (int j = 0; j < q; j++) { cin >> B[i][j];
}
}
// A) Multiply matrices A and B
matrix_multiply(A, B, C, m, n, p, q);
cout << "Matrix C (A x B):\n";
for (int i = 0; i < m; i++) {
for (int j = 0; j < q; j++) {
cout << C[i][j] << " ";
}
cout << endl;
}

// B) Calculate the average of matrices A and B
float average_A = calculate_average(A, m, n);
float average_B = calculate_average(B, p, q);
cout << "Average of Matrix A: " << average_A << endl;
cout << "Average of Matrix B: " << average_B << endl;
// C) Find the maximum value in matrix C
int max_C = find_max(C, m, q);
cout << "Maximum value in Matrix C: " << max_C << endl;
return 0;
}

   Sample I/O:
        Enter the number of rows and columns for matrix A (m x n): 3 3
Enter the number of rows and columns for matrix B (p x q): 3 3
Enter elements of matrix A:
1 5 7 6 3 2 69 7 12
Enter elements of matrix B:
45 63 2 9 8 7 12 10 3
Matrix C (A x B):
174 173 58 
321 422 39 
3312 4523 223 
Average of Matrix A: 12.4444
Average of Matrix B: 17.6667
Maximum value in Matrix C: 4523
=== Code Execution Successful ===
        


🔗 Run Online: Matrix Calculation

10. Differentiate among Database, Data Warehouse and Data Mining with real world example. 10

Database, Data Warehouse এবং Data Mining-এর পার্থক্য

11. To achieve a '0-bit data loss' for its 24 x 7 x 365 banking operation, what steps or technology should an online bank employ to safeguard its data against any potential threats of data loss? 10

Achieving 0-Bit Data Loss in a 24×7×365 Online Banking Operation

To achieve 0-bit data loss, an online bank must ensure that no transaction or customer data is lost under any circumstances, including system failure, cyber attack, or natural disaster. This requires a combination of advanced technologies and strict processes.

1. Real-Time Data Replication

  • Use synchronous replication between primary and secondary data centers
  • Ensures data is written simultaneously at multiple locations
  • Prevents data loss during hardware or system failure

2. High Availability (HA) Architecture

  • Deploy active-active or active-passive server clusters
  • Automatic failover in case of server failure
  • Ensures uninterrupted banking services

3. Regular Backup and Snapshot Technology

  • Perform frequent incremental and full backups
  • Use snapshot-based backups for databases
  • Protects against accidental deletion and corruption

4. Disaster Recovery (DR) Site

  • Maintain geographically separated Disaster Recovery site
  • Low Recovery Point Objective (RPO) and Recovery Time Objective (RTO)
  • Ensures business continuity during major disasters

5. Data Encryption and Cybersecurity Controls

  • Encrypt data at rest and in transit
  • Deploy firewalls, IDS/IPS, and anti-malware systems
  • Protects against cyber attacks and data breaches

6. Database Transaction Logging

  • Use write-ahead logging and transaction logs
  • Ensures every transaction can be recovered
  • Supports point-in-time recovery

7. Continuous Monitoring and Auditing

  • 24×7 system and database monitoring
  • Automated alerts for anomalies
  • Early detection of failures or attacks

Conclusion: By combining real-time replication, high availability systems, robust backup strategies, disaster recovery planning, and strong cybersecurity controls, an online bank can effectively achieve 0-bit data loss and ensure secure, uninterrupted operations.

24×7×365 Online Banking Operation-এ 0-Bit Data Loss অর্জন

0-bit data loss অর্জন বলতে বোঝায়, কোনো অবস্থাতেই (system failure, cyber attack বা disaster) ব্যাংকের কোনো data হারাবে না। এর জন্য আধুনিক technology ও শক্তিশালী process ব্যবহার করতে হয়।

১. Real-Time Data Replication

  • Primary ও secondary data center-এর মধ্যে synchronous replication
  • একই সময়ে একাধিক স্থানে data সংরক্ষণ
  • System failure হলেও data loss হয় না

২. High Availability (HA) Architecture

  • Active-active বা active-passive server cluster ব্যবহার
  • Automatic failover ব্যবস্থা
  • Service interruption ছাড়া banking চালু রাখা

৩. Regular Backup ও Snapshot Technology

  • নিয়মিত full ও incremental backup নেওয়া
  • Database snapshot ব্যবহার
  • ভুল delete বা corruption থেকে data রক্ষা

৪. Disaster Recovery (DR) Site

  • ভিন্ন ভৌগোলিক স্থানে DR site রাখা
  • কম RPO ও RTO নিশ্চিত করা
  • বড় দুর্যোগেও business continuity বজায় রাখা

৫. Data Encryption ও Cybersecurity Control

  • Data at rest ও data in transit encryption
  • Firewall, IDS/IPS ও anti-malware ব্যবহার
  • Cyber attack ও data breach প্রতিরোধ

৬. Database Transaction Logging

  • Write-ahead log ও transaction log ব্যবহার
  • প্রতিটি transaction recover করা সম্ভব
  • Point-in-time recovery নিশ্চিত করা

৭. Continuous Monitoring ও Auditing

  • 24×7 system ও database monitoring
  • Automatic alert ব্যবস্থা
  • সমস্যা দ্রুত শনাক্ত করা

উপসংহার: Real-time replication, High Availability, backup ও Disaster Recovery পরিকল্পনা, এবং শক্তিশালী cybersecurity একসাথে ব্যবহার করলে একটি online bank কার্যকরভাবে 0-bit data loss অর্জন করতে পারে এবং নিরাপদভাবে পরিচালিত হয়।

12. Discuss different tools and techniques to develop a Business Intelligence Dashboard for a bank. How can data be captured and aggregated from various sources within the bank to monitor the business performance? 10

Business Intelligence (BI) Dashboard for a Bank

1. Tools and Techniques to Develop a BI Dashboard

(a) Data Sources

  • Core Banking System (CBS)
  • Customer Relationship Management (CRM)
  • Loan Management System
  • Transaction Databases
  • External data (market, regulatory data)

(b) ETL Tools (Extract, Transform, Load)

  • Extract data from multiple banking systems
  • Transform data (cleaning, formatting, validation)
  • Load data into a centralized Data Warehouse
  • Examples: Informatica, Talend, Microsoft SSIS

(c) Data Warehouse

  • Stores historical and current banking data
  • Supports analytical queries
  • Example: Oracle Data Warehouse, Amazon Redshift

(d) BI & Visualization Tools

  • Dashboard creation and reporting
  • Interactive charts and KPIs
  • Examples: Power BI, Tableau, QlikView

(e) KPIs for Banking Dashboard

  • Total deposits and loans
  • Non-Performing Loan (NPL) ratio
  • Customer growth rate
  • Profitability and risk indicators

2. Data Capture and Aggregation to Monitor Business Performance

(a) Data Capture

  • Transaction data captured from Core Banking System
  • Customer data captured from CRM
  • Loan and credit data from loan management systems
  • Real-time and batch data collection

(b) Data Aggregation Process

  • ETL tools combine data from different sources
  • Data is cleaned and standardized
  • Aggregated by time, branch, product, and region
  • Stored in Data Warehouse or Data Mart

(c) Performance Monitoring

  • Dashboards display real-time and historical trends
  • Management can track KPIs and anomalies
  • Supports data-driven decision making

ব্যাংকের জন্য Business Intelligence (BI) Dashboard

১. BI Dashboard তৈরির Tools ও Techniques

(a) Data Source

  • Core Banking System (CBS)
  • Customer Relationship Management (CRM)
  • Loan Management System
  • Transaction Database
  • External market ও regulatory data

(b) ETL Tools (Extract, Transform, Load)

  • বিভিন্ন banking system থেকে data collect করা
  • Data cleaning, formatting ও validation করা
  • Centralized Data Warehouse-এ data load করা
  • উদাহরণ: Informatica, Talend, SSIS

(c) Data Warehouse

  • Bank-এর historical ও current data সংরক্ষণ করে
  • Analysis ও reporting-এর জন্য ব্যবহার হয়
  • উদাহরণ: Oracle, Amazon Redshift

(d) BI ও Visualization Tools

  • Dashboard ও report তৈরি করা
  • Graph, chart ও KPI প্রদর্শন
  • উদাহরণ: Power BI, Tableau

(e) Banking KPI

  • Total deposit ও loan
  • Non-Performing Loan (NPL) ratio
  • Customer growth
  • Profit ও risk indicator

২. Business Performance পর্যবেক্ষণের জন্য Data Capture ও Aggregation

(a) Data Capture

  • Core Banking System থেকে transaction data সংগ্রহ
  • CRM থেকে customer data সংগ্রহ
  • Loan system থেকে credit data সংগ্রহ
  • Real-time ও batch processing ব্যবহার

(b) Data Aggregation প্রক্রিয়া

  • ETL tool ব্যবহার করে বিভিন্ন source-এর data একত্র করা
  • Data পরিষ্কার ও standard করা
  • Time, branch, product ও region অনুযায়ী aggregate করা
  • Data Warehouse বা Data Mart-এ সংরক্ষণ

(c) Performance Monitoring

  • Dashboard-এর মাধ্যমে trend বিশ্লেষণ
  • Management KPI ও সমস্যা শনাক্ত করতে পারে
  • Data-driven decision নেওয়া সহজ হয়
13. What is Cyber Security? Write down the top 10 cyber attack. Discuss about Ransomware and DDoS attack. 10

Cyber Security is the practice of protecting systems, networks, and sensitive data from digital attacks. It focuses on preventing unauthorized access, data breaches, and damage to information systems from both internal and external threats.

Top 10 Common Cyber Attacks

  1. Malware: Malicious software designed to damage or disrupt systems.
  2. Phishing: Fraudulent attempts to steal sensitive information by pretending to be a trusted entity.
  3. Man-in-the-Middle Attack: Intercepting communication between two parties.
  4. Denial-of-Service (DoS): Flooding a system with traffic to make it unavailable.
  5. SQL Injection: Injecting malicious SQL code into databases.
  6. Zero-Day Exploit: Attacking unknown or unpatched vulnerabilities.
  7. Password Attacks: Cracking or stealing user passwords.
  8. Cross-Site Scripting (XSS): Injecting malicious scripts into websites.
  9. Rootkits: Gaining unauthorized root-level access.
  10. IoT Attacks: Targeting smart and connected devices.

Ransomware is a type of malware that encrypts files or locks systems and demands payment to restore access.

Distributed Denial-of-Service (DDoS) Attack overwhelms a server or network using traffic from multiple compromised systems, causing service disruption.

Cyber Security হলো কম্পিউটার সিস্টেম, নেটওয়ার্ক এবং গুরুত্বপূর্ণ তথ্যকে ডিজিটাল আক্রমণ থেকে সুরক্ষিত রাখার প্রক্রিয়া। এটি ভেতরের ও বাইরের উভয় ধরনের হুমকি থেকে তথ্য সুরক্ষা নিশ্চিত করে।

Top 10 সাধারণ Cyber Attack

  1. Malware: ক্ষতিকর সফটওয়্যার যা সিস্টেমের ক্ষতি করে।
  2. Phishing: প্রতারণার মাধ্যমে গোপন তথ্য চুরি করা।
  3. Man-in-the-Middle Attack: দুই পক্ষের যোগাযোগ গোপনে পর্যবেক্ষণ করা।
  4. Denial-of-Service (DoS): অতিরিক্ত ট্রাফিক দিয়ে সিস্টেম অচল করা।
  5. SQL Injection: Database-এ ক্ষতিকর SQL কোড প্রবেশ করানো।
  6. Zero-Day Exploit: অজানা দুর্বলতা ব্যবহার করে আক্রমণ।
  7. Password Attack: পাসওয়ার্ড চুরি বা ভেঙে ফেলা।
  8. Cross-Site Scripting (XSS): ওয়েবসাইটে ক্ষতিকর স্ক্রিপ্ট ঢোকানো।
  9. Rootkits: সিস্টেমে গোপনে উচ্চস্তরের নিয়ন্ত্রণ নেওয়া।
  10. IoT Attack: স্মার্ট ডিভাইস হ্যাক করা।

Ransomware হলো এক ধরনের malware যা ফাইল বা সিস্টেম লক করে মুক্তিপণ দাবি করে।

DDoS Attack হলো বহু আক্রান্ত ডিভাইস ব্যবহার করে একটি সার্ভার বা নেটওয়ার্ক অচল করে দেওয়ার আক্রমণ।

General Part
  1. Project Management Related Question.
  2. Software scenario question- Business Intelligence Model. 10
  3. বিজ্ঞানমনস্কতা নিয়ে রচনা। ১০
  4. What is ChatGPT? Write down the Pros and cons of ChatGPT.
  5. Translation (Bangla to English) যুব উন্নয়ন বিষয়ক
  6. Translation (English to Bangla) Global investment in green economy-related.
  7. Who won the Nobel Prize in Physics in 2023?
  8. Write down the names of new members of BRICS.
  9. Main Purposes of UNESCO.
  10. What Is RTGS related to?
  11. Which city of China, the Asian Olympic be held in 2023?
Combined Bank

Post: Senior Officer (IT)
Exam Date: 31/01/2022, Exam Taker: BSC
1. What happend after executing the follwoing SQL statement?

CREATE TABLE:
A table t is created with one column val of type INTEGER.

INSERT INTO:
The values 1, 2, 2, 3, NULL, NULL, 4, 5 are inserted into the column val.

SELECT COUNT(val):
This query counts all non-NULL values in the val column.

Total non-NULL values: 1, 2, 2, 3, 4, 5

Result: 6

SELECT COUNT(DISTINCT val):
This query counts only the unique non-NULL values in the val column.

Unique values: 1, 2, 3, 4, 5

Result: 5

2. ER diagram from the given infos.

Note: Question Collect করা সম্ভব হয়নি।

3. Using this IP 172.16.16.137/22 find the answer of the following question.

i. Subnet Mask
ii. Block Size.
iii. Network Address
iv. Broadcast Address
v. Total valid Host.

Subnet Mask:/22 corresponds to the subnet mask 255.255.252.0.

Block Size: 2^(32−22)=2^10=1024.

Network Address: 172.16.16.0/22.

Broadcast Address: 172.16.19.255/22.

Total Valid Hosts: 2^(32−22)−2=1024−2=1022

Explanation

Given IP Address: 172.16.16.137/22

Step 1: /22 বোঝা
/22 মানে Network bits = 22
Host bits = 32 − 22 = 10 bits

Step 2: Subnet Mask লেখা
/22 এর Binary Subnet Mask:
11111111.11111111.11111100.00000000
Decimal Subnet Mask = 255.255.252.0

Step 3: IP Address কে Binary তে রূপান্তর
172 = 10101100
16 = 00010000
16 = 00010000
137 = 10001001

IP (Binary):
10101100.00010000.00010000.10001001

Step 4: AND Operation (Network Address)
IP Address AND Subnet Mask করা হয়।
যেখানে Subnet Mask = 0 → Host bits 0 হয়ে যায়।

IP:     10101100.00010000.00010000.10001001
Mask:   11111111.11111111.11111100.00000000
------------------------------------------------
Result: 10101100.00010000.00010000.00000000

Binary Result কে Decimal এ রূপান্তর করলে:
Network Address = 172.16.16.0

Step 5: Broadcast Address বের করা
Broadcast address পেতে সব Host bits = 1 করা হয়।

Network (Binary):
10101100.00010000.00010000.00000000

Host bits (10 bits) = 1111111111

Broadcast (Binary):
10101100.00010000.00010011.11111111

Binary থেকে Decimal করলে:
Broadcast Address = 172.16.19.255

Step 6: Valid Host Range
First Host = Network + 1 → 172.16.16.1
Last Host = Broadcast − 1 → 172.16.19.254

Step 7: Total Valid Hosts
Host bits = 10
Total = 210 = 1024
Valid Hosts = 1024 − 2 = 1022

4. Explain the problems with possible solutions- Session hijacking and SQL injection.

1. Session Hijacking

Problem: Session hijacking is an attack where an attacker steals a valid user session ID to gain unauthorized access to a web application. This can occur through packet sniffing, XSS attacks, or insecure cookies.

Possible Solutions:

  • Use HTTPS to encrypt data transmission.
  • Implement secure and HttpOnly cookies.
  • Regenerate session IDs after login.
  • Set proper session timeout.

2. SQL Injection

Problem: SQL injection occurs when an attacker inserts malicious SQL queries through input fields, allowing unauthorized access to the database or manipulation of data.

Possible Solutions:

  • Use prepared statements and parameterized queries.
  • Validate and sanitize user inputs.
  • Apply least privilege principle for database users.
  • Use Web Application Firewalls (WAF).

1. Session Hijacking

Problem: Session hijacking হলো এমন একটি attack যেখানে attacker বৈধ user-এর session ID চুরি করে unauthorized access লাভ করে। এটি packet sniffing, XSS attack বা insecure cookie-এর মাধ্যমে ঘটতে পারে।

Possible Solutions:

  • HTTPS ব্যবহার করে data encrypt করা।
  • Secure এবং HttpOnly cookie ব্যবহার করা।
  • Login-এর পর session ID regenerate করা।
  • Proper session timeout সেট করা।

2. SQL Injection

Problem: SQL injection তখন ঘটে যখন attacker input field-এর মাধ্যমে malicious SQL query প্রবেশ করিয়ে database থেকে unauthorized data access বা manipulation করে।

Possible Solutions:

  • Prepared statement এবং parameterized query ব্যবহার করা।
  • User input validate ও sanitize করা।
  • Database user-এর জন্য least privilege প্রয়োগ করা।
  • Web Application Firewall (WAF) ব্যবহার করা।
5. Write a recursive function that returns a boolean after taking a string as parameter to check if its a palindrome or not.
#include<stdio.h> 
using namespace std;

// Recursive function to check if a string is a palindrome
bool isPalindrome(string str, int start, int end) {
    // Base case: If the start index is greater than or equal to the end index
    if (start >= end) {
        return true;
    }
    // Check if the first and last characters are the same
    if (str[start] != str[end]) {
        return false;
    }
    // Recursive case: Check the substring excluding the first and last characters
    return isPalindrome(str, start + 1, end - 1);
}

int main() {
    string input;
    cout << "Enter a string: "; cin >> input;

    if (isPalindrome(input, 0, input.length() - 1)) {
        cout << input << " is a palindrome." << endl;
    } else {
        cout << input << " is not a palindrome." << endl;
    }

    return 0;
}

Sample I/O:
Enter a string: noon
noon is a palindrome.
=== Code Execution Successful ===


🔗 Run Online: Check Palindrome

6. Solve the following function using K-map. F (w, x, y, z)= ∑(0,4,5,6,12,14,15)

7. Consider a disk with a sector size of 512 bytes, 2000 tracks pér surface, 50 sectors per track, five double-sided platters, and average seek time of 10 msec. What is the capacity of a track in bytes? What is the capacity of each surface? What is the capacity of the disk?

Capacity of a Track

Bytes per Track = Bytes per Sector × Sectors per Track
Bytes per Track = 512 × 50 = 25,600 bytes

Capacity of a Surface

Bytes per Surface = Bytes per Track × Tracks per Surface
Bytes per Surface = 25,600 × 2000 = 51,200,000 bytes (50,000 KB)

Capacity of the Disk

Bytes per Disk = Bytes per Surface × Number of Surfaces
Number of Surfaces = 5 Platters × 2 Surfaces per Platter = 10 Surfaces
Bytes per Disk = 51,200,000 × 10 = 512,000,000 bytes (500,000 KB)

8. A telephone line normally has a bandwidth of 3000 Hz (300 to 3300 Hz) assigned for data communications. The signal-to-noise ratio is usually 3162. calculate the capacity For this channel ?

C = B log2(1 + SNR)
= 3000 log2(1 + 3162)
= 3000 log2(3163)
= 3000 × 11.62
= 34,860 bps

9. Construct a DFD of the following language. (W⊂ (a, b)* | every a in W is followed by at least two b's}
W is followed by at least two b's
W is followed by at least two b’s
10. How HTTP works? How many HTTP requests would be needed for a given situation?

How HTTP Works

HTTP (HyperText Transfer Protocol) is a request–response protocol used for communication between a web client (browser) and a web server.

  • The client sends an HTTP request (e.g., GET, POST) to the server.
  • The server processes the request.
  • The server sends back an HTTP response containing status code and data.
  • The browser renders the received content.

How many HTTP requests are needed?

The number of HTTP requests depends on the number of resources a webpage contains.

  • 1 request for the main HTML page.
  • Each embedded resource (image, CSS, JS, video) needs a separate request.

Example:

If a webpage contains:

  • 1 HTML file
  • 2 images
  • 1 CSS file
  • 1 JavaScript file

Total HTTP requests = 5

HTTP কীভাবে কাজ করে

HTTP (HyperText Transfer Protocol) হলো একটি request–response protocol যা web client (browser) এবং web server-এর মধ্যে communication নিশ্চিত করে।

  • Client server-এর কাছে একটি HTTP request পাঠায়।
  • Server request process করে।
  • Server একটি HTTP response পাঠায়।
  • Browser সেই data প্রদর্শন করে।

কতটি HTTP request প্রয়োজন?

HTTP request-এর সংখ্যা নির্ভর করে webpage-এ থাকা resource-এর উপর।

  • Main HTML page-এর জন্য ১টি request।
  • প্রতিটি image, CSS, JavaScript file-এর জন্য আলাদা request।

উদাহরণ:

একটি webpage-এ যদি থাকে:

  • 1টি HTML file
  • 2টি image
  • 1টি CSS file
  • 1টি JavaScript file

মোট HTTP request = 5

11. Web-caching, is it available for every user request? Why or why not?

Web Caching

Web caching is a technique where frequently accessed web content (such as web pages, images, or files) is stored temporarily in a cache to reduce server load and improve response time.

Is web caching available for every user request?

No, web caching is not available for every user request.

Reasons:

  • First-time Requests: If a user requests a resource for the first time, it is not available in the cache and must be fetched from the original server.
  • Dynamic Content: Pages that change frequently (such as personalized dashboards or live data) are usually not cached.
  • Cache Expiration: Cached content may expire after a certain time (TTL), requiring a fresh copy from the server.
  • Cache-Control Rules: Some servers specify that certain content should not be cached for security or accuracy reasons.

Conclusion: Web caching improves performance, but it is applied only when cached content is valid and available.

Web Caching

Web caching হলো এমন একটি technique যেখানে প্রায়ই ব্যবহৃত web content (যেমন web page, image, file) সাময়িকভাবে cache-এ সংরক্ষণ করা হয় যাতে response time কমে এবং server load হ্রাস পায়।

সব user request-এর জন্য কি web caching পাওয়া যায়?

না, সব user request-এর জন্য web caching পাওয়া যায় না।

কারণসমূহ:

  • First-time Request: কোনো resource প্রথমবার request করা হলে তা cache-এ থাকে না এবং original server থেকে আনতে হয়।
  • Dynamic Content: যেসব page বারবার পরিবর্তিত হয় বা user-specific data দেখায় সেগুলো সাধারণত cache করা হয় না।
  • Cache Expiration: Cache করা data নির্দিষ্ট সময় পরে expire হয়ে যায়, ফলে নতুন করে server থেকে আনতে হয়।
  • Cache-Control Rules: Security বা accuracy-এর কারণে কিছু content cache করার অনুমতি দেওয়া হয় না।

উপসংহার: Web caching performance বাড়ায়, কিন্তু এটি শুধুমাত্র তখনই কাজ করে যখন valid cached content পাওয়া যায়।

12. Determine the time complexity of a given function (nested loop).
Slow_solution(n){
result = 0;
for i in to (n){
for j in to (i+ 1){
result +=1;)
return result;}

Given Function:

Slow_solution(n){
 result = 0;
 for i = 1 to n{
   for j = 1 to (i + 1){
     result += 1;
   }
 }
 return result;
}

Step-by-step Time Complexity Analysis:

  • The outer loop runs from i = 1 to n, so it executes n times.
  • The inner loop runs from j = 1 to (i + 1).
  • For each value of i, the inner loop runs approximately i times.

Total number of operations:

1 + 2 + 3 + … + n = n(n + 1)/2

This is a quadratic expression.

Final Time Complexity:

O(n²)

প্রদত্ত Function:

Slow_solution(n){
 result = 0;
 for i = 1 to n{
   for j = 1 to (i + 1){
     result += 1;
   }
 }
 return result;
}

Step-by-step Time Complexity বিশ্লেষণ:

  • Outer loop i = 1 থেকে n পর্যন্ত চলে, অর্থাৎ মোট n বার execute হয়।
  • Inner loop j = 1 থেকে (i + 1) পর্যন্ত চলে।
  • প্রতিটি i মানের জন্য inner loop প্রায় i বার চলে।

মোট operation সংখ্যা:

1 + 2 + 3 + … + n = n(n + 1)/2

এটি একটি quadratic expression।

Final Time Complexity:

O(n²)

14. Write about ARQ?

ARQ (Automatic Repeat reQuest)

ARQ is an error control technique used in data communication to ensure reliable data transmission. It detects errors in transmitted frames and automatically requests retransmission of incorrect or lost data.

Working Principle:

  • The sender transmits a data frame to the receiver.
  • The receiver checks the frame for errors using error-detection techniques.
  • If the frame is correct, the receiver sends an ACK (Acknowledgement).
  • If the frame is incorrect or lost, the receiver sends a NACK or no response.
  • The sender retransmits the frame when required.

Types of ARQ:

  • Stop-and-Wait ARQ
  • Go-Back-N ARQ
  • Selective Repeat ARQ

ARQ (Automatic Repeat reQuest)

ARQ হলো একটি error control technique যা data communication-এ reliable transmission নিশ্চিত করতে ব্যবহৃত হয়। এটি transmission-এর সময় error সনাক্ত করে এবং ভুল বা হারানো data পুনরায় পাঠানোর অনুরোধ করে।

Working Principle:

  • Sender receiver-এর কাছে data frame পাঠায়।
  • Receiver error-detection technique ব্যবহার করে frame যাচাই করে।
  • Frame সঠিক হলে ACK পাঠানো হয়।
  • Frame ভুল হলে বা না পেলে NACK বা কোনো response পাঠানো হয় না।
  • Sender প্রয়োজন অনুযায়ী frame পুনরায় পাঠায়।

ARQ-এর প্রকারভেদ:

  • Stop-and-Wait ARQ
  • Go-Back-N ARQ
  • Selective Repeat ARQ
15. Pre-order and Post-order are given bellow, draw the graph.
Pre-order: a, b, e, j, k, n, o, p ,f, c, d, g ,l, m ,h,i;
Post-order:j, n, l, p, o, k, e, f, b, c, g, m, h, i, d, a;
         a
       /   \
      b     d
     / \   / \
    e   f g   i
   / \       / \
  j   k     l   m
     / \
    n   o
         \
          p

General Part
  1. সামগ্রিক প্রবৃদ্ধিতে বহুমুখি অর্থনীতির ভুমিকা।
  2. Bangladesh and UN Peace-keeping
  3. B2E Translation
  4. E2B Translation
  5. GK
  1. When Bangabandhu satellite was launch?
  2. Location of Niagara Falls
  3. Golden crescent countries.
  4. One city two towns in BD.
  5. Ibn Battuta was from which country.
Combined Bank

Post: Assistant Programmer,
Exam Date: 17.01.2026
1. Explain the concept of inheritance in Object-Oriented Programming. Name and briefly describe three common types of inheritance used in OOP. 10

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, PrinterScanner উভয়ের বৈশিষ্ট্য পায়।

3) Multilevel Inheritance
একটি derived class থেকে আরেকটি class inherit করলে multilevel inheritance হয়।

Vehicle
   |
  Car
   |
ElectricCar

এখানে ElectricCar পরোক্ষভাবে Vehicle এর বৈশিষ্ট্য পায়।

2. Explain the concept of the Software Development Life Cycle (SDLC) and describe its main phases. 10

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 অনুযায়ী উন্নয়ন করা হয়।

3. Apply the concept of IP addressing and routing to explain how packets are delivered across networks using Open Shortest Path First (OSPF) at the network layer. 10

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 পরিবর্তন হলেও।

4. What is a Universal Gate? Prove that the NAND Gate is a Universal Gate.

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

5. Explain the fundamental difference between a Process and a Thread. Provide two distinct advantages of using threads over processes.
Difference between Process and Thread A process is an independent program in execution with its own memory space, system resources, and execution context. A thread is the smallest unit of execution within a process and shares the same memory and resources with other threads of that process.Advantages of Threads over Processes 1) Faster Communication: Threads within the same process share memory, making inter-thread communication faster than inter-process communication.2) Lower Resource Overhead: Threads require less memory and fewer system resources compared to processes, leading to better performance and efficiency.
Process এবং Thread এর মৌলিক পার্থক্য Process হলো একটি স্বতন্ত্র প্রোগ্রাম যা execution অবস্থায় থাকে এবং যার নিজস্ব memory space ও system resource থাকে। Thread হলো process এর ভেতরে থাকা সবচেয়ে ছোট execution unit, যা একই process এর অন্যান্য thread এর সাথে memory ও resource শেয়ার করে।Process এর তুলনায় Thread ব্যবহারের সুবিধা 1) দ্রুত Communication: একই process এর thread গুলো memory শেয়ার করায় একে অপরের সাথে খুব দ্রুত data আদান-প্রদান করতে পারে।2) কম Resource ব্যবহার: Thread process এর তুলনায় কম memory ও system resource ব্যবহার করে, ফলে performance বেশি হয়।
6. What is Version Control (e.g., Git)? Explain the specific difference between "Committing" code and "Pushing" code.

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 এ পাঠানো হয়।

7. Describe step-by-step how Binary Search locates a target value in a sorted array. Why does it fail if the array is unsorted?

How Binary Search Works (Step-by-Step)
Binary Search is a searching technique used to find a target value in a sorted array by repeatedly dividing the search range into half.

Steps
1) Set two pointers: low = first index, high = last index.
2) Find the middle index: mid = (low + high) / 2.
3) Compare the target with array[mid]:
• If target == array[mid] → target found.
• If target < array[mid] → search left half (high = mid − 1).
• If target > array[mid] → search right half (low = mid + 1).
4) Repeat steps 2–3 until the target is found or low > high (target not present).

Example
Array: [10, 20, 30, 40, 50], Target = 40
low=0, high=4 → mid=2 → array[2]=30 (40>30) → search right
low=3, high=4 → mid=3 → array[3]=40 → found

Why it fails if the array is unsorted
Binary Search depends on the sorted order to decide whether to go left or right. If the array is unsorted, the comparisons (target < or > mid value) do not correctly indicate which half contains the target, so the algorithm may skip the target and give wrong results.

Binary Search কীভাবে কাজ করে (Step-by-Step)
Binary Search হলো একটি searching technique যা sorted array তে target value খুঁজতে search range কে বারবার half করে।

Steps
1) দুইটি pointer সেট করি: low = প্রথম index, high = শেষ index।
2) middle index বের করি: mid = (low + high) / 2
3) target এর সাথে array[mid] compare করি:
• যদি target == array[mid] → target পাওয়া গেছে।
• যদি target < array[mid] → left half এ যাব (high = mid − 1)।
• যদি target > array[mid] → right half এ যাব (low = mid + 1)।
4) target না পাওয়া পর্যন্ত অথবা low > high হওয়া পর্যন্ত step গুলো repeat করি।

Example
Array: [10, 20, 30, 40, 50], Target = 40
low=0, high=4 → mid=2 → array[2]=30 (40>30) → right half এ search
low=3, high=4 → mid=3 → array[3]=40 → found

Array unsorted হলে কেন fail করে
Binary Search এর মূল শর্ত হলো array টি sorted হতে হবে, কারণ mid এর value দেখে সিদ্ধান্ত নেওয়া হয় target left এ নাকি right এ। Array unsorted হলে এই সিদ্ধান্ত ভুল হয়, ফলে target থাকা সত্ত্বেও algorithm সেটিকে skip করে ভুল result দিতে পারে।

8. You have two stacks. Explain the logic required to implement a Queue (FIFO) using only these two stacks.

Implementing a Queue Using Two Stacks
A queue follows the FIFO (First In, First Out) principle, while a stack follows the LIFO (Last In, First Out) principle. Using two stacks, we can reverse the order of elements to achieve FIFO behavior.

Logic
We use two stacks:
Stack 1 (S1) → used for enqueue operation (insertion).
Stack 2 (S2) → used for dequeue operation (removal).

Enqueue Operation
Simply push the new element into S1.

Dequeue Operation
• If S2 is not empty, pop the top element from S2 (this is the front of the queue).
• If S2 is empty, move all elements from S1 to S2 one by one (pop from S1 and push into S2). This reverses the order, making the oldest element accessible on top of S2.
• Then pop the top element from S2.

Why This Works
Elements are first stored in S1 in insertion order. When transferred to S2, their order is reversed, so the element inserted first appears on top of S2, achieving FIFO behavior.

দুটি Stack ব্যবহার করে Queue Implement করা
Queue FIFO (First In, First Out) নীতিতে কাজ করে, আর Stack কাজ করে LIFO (Last In, First Out) নীতিতে। দুটি stack ব্যবহার করে element এর order reverse করে FIFO behavior পাওয়া যায়।

Logic
আমরা দুটি stack ব্যবহার করি:
Stack 1 (S1) → enqueue (insert) করার জন্য।
Stack 2 (S2) → dequeue (remove) করার জন্য।

Enqueue Operation
নতুন element সরাসরি S1 এ push করা হয়।

Dequeue Operation
• যদি S2 empty না হয়, তাহলে S2 থেকে pop করলেই queue এর front element পাওয়া যায়।
• যদি S2 empty হয়, তাহলে S1 এর সব element একে একে S2 তে move করা হয় (S1 থেকে pop করে S2 তে push)। এতে element এর order উল্টে যায়।
• এরপর S2 থেকে pop করা হয়।

কেন এটি কাজ করে
S1 এ element গুলো insertion order এ থাকে। S2 তে move করার সময় order reverse হয়, ফলে যে element আগে ঢুকেছিল সেটি আগে বের হয়, অর্থাৎ FIFO behavior পাওয়া যায়।

9. Explain the logic of "Bubble Sort". Why is it considered inefficient for large datasets compared to Merge Sort?

Logic of Bubble Sort
Bubble Sort is a simple comparison-based sorting algorithm. It works by repeatedly comparing adjacent elements and swapping them if they are in the wrong order. After each pass, the largest unsorted element “bubbles up” to its correct position at the end of the array.

Steps
1) Compare the first two elements.
2) Swap them if the first is greater than the second.
3) Move to the next pair and repeat until the end of the array.
4) Repeat the entire process for the remaining unsorted portion until the array is sorted.

Time Complexity
Worst and average case: O(n²)

Why Bubble Sort is Inefficient for Large Datasets
Bubble Sort makes a large number of comparisons and swaps even when the array is nearly sorted. As the input size grows, the number of operations increases quadratically, making it very slow for large datasets.

Why Merge Sort is Better
Merge Sort uses the divide and conquer approach. It divides the array into smaller parts, sorts them, and then merges them efficiently. Its time complexity is O(n log n), which is much faster than Bubble Sort for large datasets.

Bubble Sort এর Logic
Bubble Sort হলো একটি সহজ sorting algorithm যেখানে বারবার পাশাপাশি থাকা element গুলো compare করা হয় এবং ভুল order এ থাকলে swap করা হয়। প্রতিটি pass শেষে সবচেয়ে বড় element টি তার সঠিক জায়গায় চলে যায়, ঠিক যেন bubble উপরে উঠে আসে।

Steps
1) প্রথম দুইটি element compare করা হয়।
2) ভুল order হলে swap করা হয়।
3) পরবর্তী pair এ গিয়ে একই কাজ করা হয়।
4) পুরো array sorted না হওয়া পর্যন্ত process টি repeat করা হয়।

Time Complexity
Worst এবং average case: O(n²)

বড় Dataset এ কেন Bubble Sort অকার্যকর
Bubble Sort অনেক বেশি comparison ও swap করে, এমনকি array প্রায় sorted হলেও। Dataset বড় হলে operation সংখ্যা খুব দ্রুত বেড়ে যায়, তাই এটি ধীরগতির হয়ে যায়।

Merge Sort কেন ভালো
Merge Sort divide and conquer পদ্ধতি ব্যবহার করে। এটি array কে ছোট অংশে ভাগ করে sort করে তারপর merge করে। এর time complexity O(n log n), যা বড় dataset এর জন্য Bubble Sort এর চেয়ে অনেক বেশি কার্যকর।

10. Draw or describe a Flowchart to determine the largest of three distinct numbers (A, B, C).

11. Explain the "Producer-Consumer" problem in operating systems. What specific synchronization issue must be solved?

Producer-Consumer Problem
The Producer-Consumer problem is a classic synchronization problem in operating systems. In this problem, one or more producer processes generate data items and place them into a shared buffer, while one or more consumer processes remove and use those data items from the same buffer.

The shared buffer has a limited size, so coordination between producers and consumers is required to ensure correct operation.

Specific Synchronization Issue
The main synchronization issue that must be solved is race condition while accessing the shared buffer. The system must ensure:
• A producer does not add data when the buffer is full.
• A consumer does not remove data when the buffer is empty.
• Only one process accesses the buffer at a time (mutual exclusion).

To solve this problem, synchronization mechanisms such as semaphores, mutex locks, or monitors are used to coordinate access to the shared buffer.

Producer-Consumer Problem
Producer-Consumer problem হলো Operating System এর একটি পরিচিত synchronization সমস্যা। এখানে এক বা একাধিক producer process data তৈরি করে একটি shared buffer এ রাখে এবং এক বা একাধিক consumer process সেই data ব্যবহার করে।

Shared buffer এর একটি সীমিত আকার থাকে, তাই producer এবং consumer এর মধ্যে সঠিক সমন্বয় প্রয়োজন হয়।

মূল Synchronization সমস্যা
এখানে প্রধান সমস্যা হলো race condition। সিস্টেমকে নিশ্চিত করতে হয় যে:
• Buffer পূর্ণ থাকলে producer নতুন data যোগ করতে পারবে না।
• Buffer খালি থাকলে consumer data নিতে পারবে না।
• একই সময়ে একাধিক process buffer access করতে পারবে না (mutual exclusion)।

এই সমস্যা সমাধানের জন্য semaphore, mutex lock বা monitor ব্যবহার করে synchronization নিশ্চিত করা হয়।

12. You are designing a database for a Library. Explain the relationship between a "Book" table and a "Borrower" table. Is it 1-to-1, 1-to-Many, or Many-to-Many? Justify your answer.

Relationship between Book and Borrower Tables
In a library database, the relationship between the Book table and the Borrower table is typically Many-to-Many.

Justification
• A single book can be borrowed by many borrowers over time.
• A single borrower can borrow many books at the same time or over different periods.

Because both tables can have multiple associations with each other, the relationship is many-to-many. In practice, this relationship is implemented using an intermediate table (such as Borrow or Loan) that stores information like borrow date, return date, and IDs of both book and borrower.

Book এবং Borrower Table এর মধ্যে সম্পর্ক
একটি library database এ Book table এবং Borrower table এর মধ্যে সম্পর্ক সাধারণত Many-to-Many হয়।

ব্যাখ্যা
• একটি book সময়ের সাথে সাথে একাধিক borrower দ্বারা ধার নেওয়া যেতে পারে।
• একটি borrower একই সময়ে বা বিভিন্ন সময়ে একাধিক book ধার নিতে পারে।

এই কারণে Book এবং Borrower উভয়ের মধ্যেই বহু সম্পর্ক থাকে, তাই এটি many-to-many relationship। বাস্তবে এই সম্পর্কটি একটি intermediate table (যেমন Borrow বা Loan) ব্যবহার করে implement করা হয়, যেখানে borrow date, return date এবং উভয়ের ID সংরক্ষিত থাকে।

13. Construct a logical argument explaining why a heuristic (like A search) might be faster than a blind search (like BFS), even if it doesn't guarantee the absolute perfect path in all cases.

Why Heuristic Search (A*) Can Be Faster than Blind Search (BFS)
Blind search algorithms like Breadth-First Search (BFS) explore the search space without any guidance. BFS expands all nodes level by level, regardless of whether they are moving closer to the goal or not. This leads to exploring many unnecessary paths, especially in large or complex search spaces.

In contrast, heuristic search algorithms such as A* use a heuristic function to estimate how close a state is to the goal. A* prioritizes nodes that appear more promising by combining the actual cost so far with the estimated cost to the goal. As a result, it focuses the search toward the goal instead of exploring all possibilities equally.

Logical Argument
• BFS guarantees the shortest path but must examine a large number of nodes, even those far from the goal.
• A* uses heuristic information to reduce the search space by avoiding less promising paths early.
• Even if the heuristic is not perfect, it still provides useful guidance that significantly reduces unnecessary exploration.
• Therefore, A* often reaches a good (or optimal) solution much faster than BFS in practice.

Although heuristic searches may not always guarantee the absolute perfect path (if the heuristic is not admissible), they are often much faster and more practical for real-world problems because they intelligently guide the search toward the goal.

কেন Heuristic Search (A*) Blind Search (BFS) এর চেয়ে দ্রুত হয়
Blind search algorithm যেমন Breadth-First Search (BFS) কোনো দিকনির্দেশনা ছাড়াই search space explore করে। BFS প্রতিটি level এর সব node expand করে, লক্ষ্য থেকে কতটা কাছাকাছি যাচ্ছে তা বিবেচনা না করেই। এর ফলে অনেক অপ্রয়োজনীয় path explore হয়।

অন্যদিকে, A* এর মতো heuristic search algorithm একটি heuristic function ব্যবহার করে goal থেকে কতটা দূরে আছে তা অনুমান করে। এটি সবচেয়ে সম্ভাবনাময় node গুলোকে আগে expand করে, ফলে search দ্রুত লক্ষ্যবস্তুতে পৌঁছায়।

যুক্তিসংগত ব্যাখ্যা
• BFS shortest path নিশ্চিত করে কিন্তু অনেক বেশি node explore করে।
• A* heuristic ব্যবহার করে search space ছোট করে।
• Heuristic পুরোপুরি নিখুঁত না হলেও লক্ষ্যপথে দিকনির্দেশনা দেয়।
• তাই বাস্তবে A* অনেক কম সময়ে একটি ভালো সমাধানে পৌঁছায়।

যদিও heuristic search সব ক্ষেত্রে নিখুঁত path নিশ্চিত নাও করতে পারে, তবুও বাস্তব সমস্যায় এটি দ্রুত ও কার্যকর কারণ এটি বুদ্ধিমত্তার সাথে search কে লক্ষ্যবস্তুর দিকে পরিচালিত করে।

14. Explain the logic of a "Checksum". How is it used to verify data integrity during file transfer?.

Logic of a Checksum
A checksum is a small, fixed-size value calculated from a block of data using a mathematical algorithm. It represents a summary of the data and is used to detect errors that may occur during data transmission or storage.

How a Checksum Works
1) The sender divides the data into fixed-size blocks (such as bytes or words).
2) These blocks are added together (or processed using a checksum algorithm).
3) The final result is the checksum value, which is sent along with the data.

Verification During File Transfer
• The receiver recalculates the checksum from the received data using the same algorithm.
• The newly calculated checksum is compared with the checksum sent by the sender.
• If both values match, the data is assumed to be intact.
• If they do not match, it indicates that the data was corrupted during transmission.

Purpose
Checksums provide a simple and fast way to ensure data integrity, helping detect transmission errors in file transfers.

Checksum এর Logic
Checksum হলো একটি ছোট, নির্দিষ্ট আকারের value যা একটি data block থেকে গাণিতিকভাবে হিসাব করা হয়। এটি data এর একটি summary হিসেবে কাজ করে এবং data transmission বা storage এর সময় কোনো error হয়েছে কিনা তা শনাক্ত করতে ব্যবহৃত হয়।

Checksum কীভাবে কাজ করে
1) Sender data কে ছোট ছোট block এ ভাগ করে।
2) প্রতিটি block যোগ করে (বা checksum algorithm ব্যবহার করে) একটি মান বের করা হয়।
3) এই মানটিই checksum, যা data এর সাথে পাঠানো হয়।

File Transfer এ Verification
• Receiver প্রাপ্ত data থেকে একই algorithm ব্যবহার করে checksum পুনরায় গণনা করে।
• Sender পাঠানো checksum এর সাথে receiver এর checksum তুলনা করা হয়।
• দুইটি মান মিললে data ঠিক আছে ধরা হয়।
• মিল না হলে বোঝা যায় data transmission এর সময় corrupted হয়েছে।

উদ্দেশ্য
Checksum দ্রুত এবং সহজভাবে data integrity নিশ্চিত করতে সাহায্য করে এবং file transfer এর সময় error শনাক্ত করে।

15. Compare and contrast the three fundamental paradigms of Machine Learning: Supervised Learning, Unsupervised Learning, and Reinforcement Learning.

Machine Learning Paradigms
Machine Learning can be broadly classified into three fundamental paradigms based on how models learn from data: Supervised Learning, Unsupervised Learning, and Reinforcement Learning.

1) Supervised Learning
In supervised learning, the model is trained using labeled data, where the correct output is already known.
Learning Mechanism: Learns by mapping inputs to known outputs.
Data Usage: Uses labeled datasets.
Applications: Spam detection, image classification, disease prediction.

2) Unsupervised Learning
In unsupervised learning, the model works with unlabeled data and tries to discover hidden patterns or structures in the data.
Learning Mechanism: Pattern discovery and grouping.
Data Usage: Uses unlabeled datasets.
Applications: Customer segmentation, clustering, anomaly detection.

3) Reinforcement Learning
In reinforcement learning, an agent learns by interacting with an environment and receives rewards or penalties for actions.
Learning Mechanism: Trial-and-error based on reward feedback.
Data Usage: Data generated through interaction with the environment.
Applications: Robotics, game playing, autonomous systems.

Key Differences
Supervised learning relies on labeled data, unsupervised learning finds patterns without labels, and reinforcement learning focuses on decision-making through rewards.

Machine Learning এর তিনটি প্রধান Paradigm
Machine Learning শেখার পদ্ধতির উপর ভিত্তি করে তিনটি প্রধান ভাগে বিভক্ত: Supervised Learning, Unsupervised Learning এবং Reinforcement Learning

1) Supervised Learning
Supervised learning এ model কে labeled data দিয়ে train করা হয়, যেখানে input এর সঠিক output আগে থেকেই জানা থাকে।
Learning Mechanism: Input ও known output এর mapping শেখে।
Data Usage: Labeled dataset ব্যবহার করে।
Applications: Spam detection, image classification, disease prediction।

2) Unsupervised Learning
Unsupervised learning এ model unlabeled data নিয়ে কাজ করে এবং data এর ভেতরের pattern বা structure খুঁজে বের করে।
Learning Mechanism: Pattern ও group discovery।
Data Usage: Unlabeled dataset ব্যবহার করে।
Applications: Customer segmentation, clustering, anomaly detection।

3) Reinforcement Learning
Reinforcement learning এ একটি agent environment এর সাথে interaction করে শেখে এবং action অনুযায়ী reward বা penalty পায়।
Learning Mechanism: Trial-and-error ও reward ভিত্তিক শেখা।
Data Usage: Environment interaction থেকে data তৈরি হয়।
Applications: Robotics, game playing, autonomous system।

মূল পার্থক্য
Supervised learning এ labeled data লাগে, unsupervised learning এ label ছাড়া pattern খোঁজা হয়, আর reinforcement learning এ reward এর মাধ্যমে decision-making শেখা হয়।

General Part
Mathematics
16. A rectangle and a square have the same area. The square has a perimeter of 32 meter and the width of the rectangle is 4 meter. Find the length of the rectangle (in meter).
17. If 2 < x < 5 and 3 < y < 5, find the value of x-y in-terms of inequality?
18. In a class, the number of boys is 35% more than that of the girls. The total number of students of the class is 94. If 6 more boys are admitted to the class, calculate the ratio of the number of boys to that of the girls.
19. A man can row 12 kmph in still water. It takes him thrice as long to row up as to row down the river. Find the rate of the stream.

English Proficiency related questions (Questions 20-22)
20. From the parentheses in each sentence, write only the correct answer.
A. If the department had allocated more funds, the project (would succeed / would have succeeded).
B. By next month, the university (will have completed/ will complete) the accreditation process.
C. Hardly (did the presentation begin/ had the presentation begun) when the technical problem occurred.
D. The committee, as well as its sub-groups, (meets/meet) regularly to discuss policy matters.
E. He had better (leave/left) the station before it's too late.
F. The methodology section is comprehensive; (for example / however), the discussion lacks critical depth.
G. The research team arrived at (a / an) unanimous conclusion after extensive discussion.
H. The students were warned that any breach of conduct could result (in / to) suspension.
I. She is one of the scholars who (advocates / advocate) a critical pedagogy approach.
J. The researcher insisted that the data (be / is) analyzed before publication.

21. Write a paragraph on: Street food culture in Dhaka.
22. Make meaningful sentences with the following words. Do not change the grammatical category of the word.
Judicious, condone. Fabricate, accentuate, multifaceted
Combined Bank

Post: Assistant Programmer,
Exam Date: 09.02.2024, Exam Taker: BIBM
1. Write a Program to print Prime numbers from 1 to n.
#include <iostream>
using namespace std;
int main() {
    int i, num, n, count;
    cout << "Enter the range: "; 
    cin >> n;
    cout << "The prime numbers in between the range 1 to " << n << " are: ";

    for (num = 1; num <= n; num++) {
        count = 0;
        for (i = 2; i <= num / 2; i++) {
            if (num % i == 0) {
                count++;
                break;
            }
        }
        if (count == 0 && num != 1)
            cout << num << " ";
    }

    return 0;
}
Sample I/O:
Enter the range: 50
The prime numbers in between the range 1 to 50 are: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 

=== Code Execution Successful ===


🔗 Run Online: Prime number between range

2. Write a Program to print Floyd's Triangle for n = 5.
Expected Output:
1
01
101
0101
10101
#include <iostream>
using namespace std;
int main() {
    int i, j, n, p, q;
    cout << "Input number of rows: "; 
    cin >> n;
    for (i = 1; i <= n; i++) {
        if (i % 2 == 0) {
            p = 1;
            q = 0;
        } else {
            p = 0;
            q = 1;
        }
        for (j = 1; j <= i; j++) {
            if (j % 2 == 0)
                cout << p;
            else
                cout << q;
        }
        cout << endl;
    }
    return 0;
}
Sample I/O:
Input number of rows: 6
1
01
101
0101
10101
010101
=== Code Execution Successful ===


🔗 Run Online: Floyd’s Triangle

3. Write a C++ program to find the sum of the series: 1 + 2 + 4 + 7 + 11 + ... + N.
#include <iostream>
using namespace std;
int main() {
    int n, i, sum = 0, term = 1, nextTerm;
    cout << "Enter the value of n: "; 
    cin >> n;
    cout << "The series is: ";
    for (i = 1; i <= n; i++) {
        cout << term << " ";
        sum += term;
        nextTerm = term + i;
        term = nextTerm;
    }

    cout << "\nThe sum of the series is: " << sum << endl;
    return 0;
}
Sample I/O:
Enter the value of n: 10
The series is: 1 2 4 7 11 16 22 29 37 46 
The sum of the series is: 175

=== Code Execution Successful ===


🔗 Run Code: Sum of series: 1+2+4+7+11+…+N

4. What is Polymorphism? Discuss different types of Polymorphism with examples.

Polymorphism means “having many forms.” It allows the same method or function to perform different tasks based on the context. In simpler terms, it enables a single interface to represent different functionalities.

Polymorphism can be broadly categorized into two types:

  1. Compile-time Polymorphism (Static Polymorphism)
  2. Runtime Polymorphism (Dynamic Polymorphism)

1. Compile-time Polymorphism (Static Polymorphism)

Compile-time polymorphism is achieved through method overloading and operator overloading. The method to be executed is determined at compile time based on the method signature.

2. Runtime Polymorphism (Dynamic Polymorphism)

Runtime polymorphism is achieved through method overriding. The method to be executed is determined at runtime based on the object being referred to.


🎥 Video Solution:
Polymorphism & its types.

5. What is Multithreading programming? Why is Multithreading used in programming?
Multithreading Programming
Multithreading programming is a technique where a single program is divided into multiple threads
that can run at the same time. Each thread represents a small unit of execution, allowing the program
to perform multiple tasks concurrently within the same process.
Why Multithreading is Used
Multithreading is used to improve the performance and responsiveness of applications. It allows better
utilization of CPU resources, enables tasks to run in parallel on multi-core processors, and helps keep
programs responsive while performing time-consuming operations such as file processing or network communication.

Multithreading Programming
Multithreading programming হলো এমন একটি technique যেখানে একটি program-এর ভিতরে একাধিক thread তৈরি করা হয়।
প্রতিটি thread একটি ছোট execution unit হিসেবে কাজ করে এবং একই process-এর মধ্যে একসাথে একাধিক কাজ করতে পারে।
এর ফলে program একই সময়ে বিভিন্ন task handle করতে সক্ষম হয়।
Multithreading কেন ব্যবহার করা হয়
Multithreading ব্যবহার করা হয় মূলত program-এর performance এবং responsiveness বাড়ানোর জন্য।
এটি CPU-এর ভালো utilization নিশ্চিত করে, বিশেষ করে multi-core processor-এ parallel execution সম্ভব করে।
এছাড়াও, time-consuming কাজ যেমন file processing বা network operation চলাকালীন program-কে responsive রাখতেও
multithreading খুব কার্যকর।
6. Discuss about different types of relations in DBMS.

In Database Management Systems (DBMS), relationships define how data in different tables are connected.
There are three main types of relationships in a relational database:

1. One-to-One (1:1) Relationship:
Each record in Table A is linked to only one record in Table B, and vice versa.

Example:

  • A person and their passport (One person has only one passport, and one passport belongs to one person).

One to One Relationship

2. One-to-Many (1:M) Relationship:
A record in Table A can be linked to multiple records in Table B, but each record in Table B is linked to only one record in Table A.

Example:

  • A customer can place multiple orders, but each order belongs to only one customer.

One to Many Relationship

3. Many-to-Many (M:N) Relationship:
Each record in Table A can be linked to multiple records in Table B, and vice versa.

Example:

  • A doctor can treat multiple patients, and a patient can have multiple doctors.

Many to Many Relationship

Database Management System (DBMS)-এ relationship ব্যবহার করা হয় বিভিন্ন table-এর মধ্যে
data কীভাবে একে অপরের সাথে সংযুক্ত তা বোঝানোর জন্য। Relational database-এ প্রধানত তিন ধরনের relationship রয়েছে:

১. One-to-One (1:1) Relationship:
এই relationship-এ Table A-এর একটি record শুধুমাত্র Table B-এর একটি record-এর সাথে যুক্ত থাকে,
এবং Table B-এর একটি record-ও শুধুমাত্র Table A-এর একটি record-এর সাথে যুক্ত থাকে।

উদাহরণ:

  • একজন ব্যক্তি এবং তার passport (একজন ব্যক্তির একটি passport থাকে এবং একটি passport শুধুমাত্র একজন ব্যক্তিরই হয়)।

One to One Relationship

২. One-to-Many (1:M) Relationship:
এই relationship-এ Table A-এর একটি record Table B-এর একাধিক record-এর সাথে যুক্ত হতে পারে,
কিন্তু Table B-এর প্রতিটি record শুধুমাত্র Table A-এর একটি record-এর সাথেই যুক্ত থাকে।

উদাহরণ:

  • একজন customer একাধিক order দিতে পারে, কিন্তু প্রতিটি order শুধুমাত্র একটি customer-এরই হয়।

One to Many Relationship

৩. Many-to-Many (M:N) Relationship:
এই relationship-এ Table A-এর একটি record Table B-এর একাধিক record-এর সাথে যুক্ত হতে পারে,
এবং Table B-এর একটি record-ও Table A-এর একাধিক record-এর সাথে যুক্ত থাকতে পারে।

উদাহরণ:

  • একজন doctor একাধিক patient-এর চিকিৎসা করতে পারে, এবং একজন patient একাধিক doctor-এর চিকিৎসা নিতে পারে।

Many to Many Relationship

7. Difference between Stack and Queue. Write about 2 problems solved by Stack and Queue.

Order: Stack follows LIFO (Last In First Out); Queue follows FIFO (First In First Out).

Insertion: In Stack, insertion is called push; in Queue, it is called enqueue.

Deletion: In Stack, deletion is called pop; in Queue, it is called dequeue.

Access: Stack allows access to the top element only; Queue allows access from front and rear.

Structure: Stack works like a vertical pile; Queue works like a line (queue).

Example: Stack → plates stack; Queue → people standing in a line.

Order: Stack LIFO (Last In First Out) অনুসরণ করে; Queue FIFO (First In First Out) অনুসরণ করে।

Insertion: Stack-এ insertion কে push বলে; Queue-এ enqueue বলে।

Deletion: Stack-এ deletion কে pop বলে; Queue-এ dequeue বলে।

Access: Stack-এ শুধুমাত্র top element access করা যায়; Queue-এ front ও rear থেকে access করা যায়।

Structure: Stack একটি pile এর মতো; Queue একটি লাইন এর মতো কাজ করে।

Example: Stack → থালা স্তূপ; Queue → লাইনে দাঁড়ানো মানুষ।

Problems Solved by Stack:

1)Balancing Parentheses (Expression Validation)
2)Backtracking (Undo Operation)

Problems Solved by Queue:
1)Task Scheduling (CPU Scheduling)
2)BFS (Breadth-First Search) in Graphs

8. Find the output of the following recursion:
#include <stdio.h>
void fun(int x){
if(x<0){
return;
}
printf("%d\n", x--);
fun(--x);
printf("%d\n", x);
}
int main() {
fun(5);
return 0;
}

Step-by-Step Execution

  1. Initial call: fun(5)

    • x = 5
    • Print 5
    • x-- (post-decrement) → Pass x = 4 to fun(--x)
  2. Recursive call: fun(3)

    • x = 3
    • Print 3
    • x-- (post-decrement) → Pass x = 2 to fun(--x)
  3. Recursive call: fun(1)

    • x = 1
    • Print 1
    • x-- (post-decrement) → Pass x = 0 to fun(--x)
  4. Recursive call: fun(-1)

    • x = -1
    • The if(x<0) return; triggers, stopping recursion.
    • Nothing is printed here.
  5. Returning from fun(1):

    • x = -1 at this point (because x was decremented before recursion)
    • Print -1
  6. Returning from fun(3):

    • x = 1
    • Print 1
  7. Returning from fun(5):

    • x = 3
    • Print 3
Rest Question
  1. Which you build about real-life software project? What problems you faced during that time and how to solve this?
  2. Database query:
    • (i) Group by
    • (ii) Average Salary
  3. Write a short composition “The Role of computer on education system in Bangladesh”.
  4. Write a letter to your younger brother about the Importance of professional vocational training.
  5. Math: Interest related
  6. Math: Set related (72%, 40%, and both 30%)
  7. Math: Gold purity
  8. Math: Geometry
  9. Translation English to Bangla
  10. Translation Bangla to English
Bangladesh Bank

Post: Assistant Programmer,
Exam Date: 03.02.2023, Exam Taker: BIBM
1. Consider strong entries with integer keys. Suppose the hash function is h (k) = k mod 13. Insert in the given order entries with keys 10, 3, 6, 16, 17, 19 in to the hash table using linear probing to resolve collisions. Show all the work.

The hash function is given as h(k)=k mod 13.
The table size is 13, meaning we have indices from 0 to 12.

Step-by-Step Insertion Process
Key: 10
Hash value: h(10) = 10 mod 13 = 10. Insert 10 at index 10.
Key: 3
Hash value: h(3) = 3 mod 13 = 3. Insert 3 at index 3.
Key: 6
Hash value: h(6) = 6 mod 13 = 6. Insert 6 at index 6.
Key: 16
Hash value: h(16) = 16 mod 13 = 3. Index 3 is occupied. Use linear probing and insert 16 at index 4.
Key: 17
Hash value: h(17) = 17 mod 13 = 4. Index 4 is occupied. Use linear probing and insert 17 at index 5.
Key: 19
Hash value: h(19) = 19 mod 13 = 6. Index 6 is occupied. Use linear probing and insert 19 at index 7.
Final Hash Table

IndexValue
0
1
2
33
416
517
66
719
8
9
1010
11
12

Summary
The final hash table after inserting all keys using linear probing is as follows:

[ – , – , – , 3 , 16 , 17 , 6 , 19 , – , – , 10 , – , – ]
2. Describe a man-in the middle attack on the Diffie-Hellman key exchange protocol in which the adversary generates two public key pairs for the attack.

Man-in-the-Middle (MITM) Attack on Diffie–Hellman Key Exchange

In a MITM attack on Diffie–Hellman (DH), an attacker (Mallory) sits between Alice and Bob, intercepts their public keys, and replaces them with her own. Since basic DH provides no authentication, Alice and Bob cannot verify the real sender of the public key.

Normal DH (No Attack)

  • Public parameters: prime p, generator g
  • Alice selects private key a, sends public key A = ga mod p
  • Bob selects private key b, sends public key B = gb mod p
  • Shared key: K = gab mod p

MITM Attack (Attacker Generates Two Key Pairs)

Step 1: Interception
Mallory intercepts Alice’s public key A and Bob’s public key B.

Step 2: Mallory Creates Two Private Keys
Mallory chooses two private keys: m1 (for Bob) and m2 (for Alice).

Step 3: Mallory Generates Two Public Keys
Mallory computes:
M1 = gm1 mod p
M2 = gm2 mod p

Step 4: Key Replacement (Fake Public Keys)
Mallory sends M1 to Bob pretending it is from Alice.
Mallory sends M2 to Alice pretending it is from Bob.

Step 5: Two Different Shared Keys are Formed

  • Alice computes: K1 = (M2)a mod p (Alice–Mallory key)
  • Bob computes: K2 = (M1)b mod p (Bob–Mallory key)
  • Mallory can compute both keys:
    K1 = (A)m2 mod p and K2 = (B)m1 mod p

Result

  • Alice and Bob do not share the same secret key.
  • Mallory shares one key with Alice and another key with Bob.
  • Mallory can read, modify, and re-encrypt messages between them.

Why It Works

Because basic Diffie–Hellman does not provide authentication, public keys can be replaced without detection.

Prevention

  • Use Authenticated Diffie–Hellman
  • Use Digital Signatures / Certificates (PKI)
  • Use TLS (DHE/ECDHE + certificates)

Diffie–Hellman Key Exchange-এ Man-in-the-Middle (MITM) Attack

MITM attack-এ attacker (Mallory) Alice এবং Bob-এর মাঝখানে বসে public key গুলো intercept করে এবং নিজের public key বসিয়ে দেয়। Basic Diffie–Hellman-এ authentication নেই, তাই Alice/Bob বুঝতে পারে না public key আসলেই কার কাছ থেকে এসেছে।

Normal DH (Attack নেই)

  • Public parameter: prime p, generator g
  • Alice private key a নেয়, public key পাঠায় A = ga mod p
  • Bob private key b নেয়, public key পাঠায় B = gb mod p
  • Shared key: K = gab mod p

MITM Attack (Attacker দুইটি Key Pair তৈরি করে)

Step 1: Interception
Mallory Alice-এর public key A এবং Bob-এর public key B intercept করে।

Step 2: Mallory দুইটি Private Key নেয়
Mallory দুইটি private key বেছে নেয়: m1 (Bob-এর জন্য) এবং m2 (Alice-এর জন্য)।

Step 3: Mallory দুইটি Public Key তৈরি করে
Mallory হিসাব করে:
M1 = gm1 mod p
M2 = gm2 mod p

Step 4: Public Key Replace করে
Mallory Bob-কে M1 পাঠায় (যেন Alice পাঠিয়েছে)।
Mallory Alice-কে M2 পাঠায় (যেন Bob পাঠিয়েছে)।

Step 5: দুইটা আলাদা Shared Key তৈরি হয়

  • Alice হিসাব করে: K1 = (M2)a mod p (Alice–Mallory key)
  • Bob হিসাব করে: K2 = (M1)b mod p (Bob–Mallory key)
  • Mallory দুইটাই বের করতে পারে:
    K1 = (A)m2 mod p এবং K2 = (B)m1 mod p

Result

  • Alice এবং Bob-এর মধ্যে একই secret key তৈরি হয় না।
  • Mallory Alice-এর সাথে একটি key এবং Bob-এর সাথে আরেকটি key share করে।
  • Mallory মাঝখান থেকে message পড়তে, পরিবর্তন করতে, এবং পুনরায় encrypt করে পাঠাতে পারে।

কেন Attack কাজ করে

Basic Diffie–Hellman-এ authentication নেই, তাই public key সহজে replace করা যায়।

Prevention

  • Authenticated Diffie–Hellman ব্যবহার
  • Digital Signature / Certificate (PKI) ব্যবহার
  • TLS (DHE/ECDHE + certificate) ব্যবহার
3. Preserving confidentiality integrity and availability of data is a restatement of the concern over falsification, interception, masquerade and denial of service. Explain how the first three concepts relate to the last four.

The concepts of confidentiality, integrity, and availability (CIA triad) directly address the security concerns of falsification, interception, masquerade, and denial of service.

Confidentiality ensures that sensitive information is accessible only to authorized users, protecting against interception, where data could be accessed or stolen by unauthorized parties.

Integrity guarantees that data remains accurate and unaltered, defending against falsification, which involves malicious modification of data, and masquerade, where attackers assume false identities to tamper with information.

Availability ensures that information and resources are accessible when needed, countering denial of service (DoS) attacks that aim to make systems or data unavailable to legitimate users.

By maintaining confidentiality, integrity, and availability, organizations can effectively mitigate these four major security threats and enhance overall data protection.

Confidentiality, Integrity, Availability (CIA triad)-এর ধারণাগুলো মূলত চারটি security threat-এর সাথে সম্পর্কিত: falsification, interception, masquerade, এবং denial of service।

Confidentiality (গোপনীয়তা): সংবেদনশীল তথ্যকে শুধুমাত্র authorized users-এর জন্য accessible রাখে। এটি interception থেকে রক্ষা করে, অর্থাৎ unauthorized ব্যক্তি তথ্য access বা steal করতে পারবে না।

Integrity (অখণ্ডতা): নিশ্চিত করে যে তথ্য correct এবং unaltered আছে। এটি falsification থেকে রক্ষা করে, যেখানে data maliciously modify করা হয়, এবং masquerade থেকে, যেখানে attacker false identity ব্যবহার করে information manipulate করতে পারে।

Availability (উপলব্ধতা): তথ্য এবং resources ব্যবহারকারীদের প্রয়োজন অনুযায়ী accessible রাখে। এটি denial of service (DoS) attack থেকে রক্ষা করে, যা legitimate users-এর জন্য system বা data কে unavailable করতে চায়।

সারসংক্ষেপে, maintaining the CIA triad এই চারটি security threat mitigate করতে সাহায্য করে এবং overall data protection ensure করে।

4. Given two integers A and B as input write a program to compute the least common multiple of A and B.
#include <stdio.h>
int main () {
int n1, n2, max;
printf ("Enter two positive integers: ");
scanf ("%d %d", &n1, &n2);
// maximum number between n1 and n2 is stored in max

max = (n1> n2) ? n1: n2;
while (1) {
// Check if max is divisible by both n1 and n2
if ((max% n1 == 0)&& (max % n2 ==0)) {
 // If true, max is the LCM of n1 and n2
printf("The LCM of %d and %d is %d.", n1,n2,max);
break;
}
++max;
}
return 0;
}
    
Sample I/O:
Enter two positive integers: 14 8
The LCM of 14 and 8 is 56.
=== Code Execution Successful ===


🔗 Run Online: LCM of two integer

5. Given an adjacency list representation for a complete binary tree on 7 vertices. Given an equivalent adjacency matrix representation. Assume that vertices are numbered from 1 to 7 as in a binary heap.
Complete Binary TreeAdjacency List Representation
VertexConnected Vertices
12, 3
24, 5
36, 7
4
5
6
7
Adjacency Matrix Representation
1234567
10110000
20001100
30000011
40000000
50000000
60000000
70000000
6. Suppose that we have a relational database with the following table. Underlined one represent primary key

Movies (mid, title, year)
People (pid, name)
Genres (gid, genre)
HasRole (pid, mid, role)
Has Genre (gid, mid)

Write a SQL query to return the number of movies that are romantic comedies.
SELECT COUNT(*) FROM Movies, Genres, HasGenre WHERE Movies.mid = HasGenre.mid AND HasGenre.gid = Genres.gid AND Genres.genre = “romantic comedy”;
7. Consider the following code:

Public class Class A {
Public void m1 () {}
Public void m2 (int i) {}
Public void m3 (int i) {}
Public static void m4 (int i) {}
Public class class B extends class A {
Public static void ml (int i) {}
Public void m2 (int i) {}
Public void m3 (string s) {}
Public static void m4 (int i) {}

Mention which of the methods overload, override and hied supper class methods. What about the remaining method?
8. In order to prevent that the company decided to add end to end encryption techniques which layer of the OSI model is suitable to work in considering parameters like development time, software maintainability and development cost, Give reasons for your concepts.

Suitable OSI Layer for End-to-End Encryption

To implement end-to-end encryption (E2EE) while considering development time, software maintainability, and development cost, the most suitable layer of the OSI model is the Application Layer (Layer 7).

Reasons for Choosing the Application Layer

  • Faster Development Time: Encryption at the application layer can be implemented directly within the application logic. Developers do not need to modify lower-level networking protocols, which significantly reduces development time.
  • Better Software Maintainability: Application-layer encryption is easier to update, debug, and maintain. Changes can be made without affecting the underlying network infrastructure or operating system.
  • Lower Development Cost: No changes are required in routers, switches, or transport-layer implementations. This avoids hardware upgrades and reduces overall implementation cost.
  • True End-to-End Security: Data is encrypted at the sender’s application and decrypted only at the receiver’s application. Intermediate systems (routers, proxies, servers) cannot read the data.
  • Platform Independence: Application-layer encryption works across different networks, protocols, and platforms without compatibility issues.

Why Not Lower Layers?

  • Transport Layer (e.g., TLS): Requires certificate management and protocol-level integration, increasing complexity and cost.
  • Network/Data Link Layers: Require hardware or OS-level changes, leading to high cost and poor maintainability.

Considering development time, cost efficiency, and long-term maintainability, implementing end-to-end encryption at the Application Layer is the best and most practical choice.

End-to-End Encryption-এর জন্য উপযুক্ত OSI Layer

End-to-end encryption (E2EE) বাস্তবায়নের ক্ষেত্রে যদি development time, software maintainability এবং development cost বিবেচনা করা হয়, তাহলে OSI model-এর মধ্যে সবচেয়ে উপযুক্ত হলো Application Layer (Layer 7)

Application Layer নির্বাচন করার কারণ

  • কম Development Time: Application layer-এ encryption সরাসরি application logic-এর ভেতরে implement করা যায়। নিচের network protocol পরিবর্তনের প্রয়োজন হয় না, ফলে সময় কম লাগে।
  • সহজ Software Maintainability: Application-level encryption সহজে update, debug এবং maintain করা যায়। Network বা OS পরিবর্তন ছাড়াই security update সম্ভব।
  • কম Development Cost: Router, switch বা hardware পরিবর্তনের দরকার হয় না। এতে implementation cost অনেক কমে যায়।
  • প্রকৃত End-to-End Security: Sender-এর application-এ data encrypt হয় এবং receiver-এর application-এই decrypt হয়। মাঝখানের কোনো system data পড়তে পারে না।
  • Platform Independent: Application layer encryption বিভিন্ন network ও platform-এ একইভাবে কাজ করে।

নিচের Layer গুলো কেন উপযুক্ত নয়?

  • Transport Layer (যেমন TLS): Certificate management ও protocol complexity বেশি, ফলে খরচ ও রক্ষণাবেক্ষণ কঠিন।
  • Network/Data Link Layer: Hardware বা OS পরিবর্তন দরকার হয়, যা ব্যয়বহুল ও জটিল।

Development time, খরচ এবং ভবিষ্যৎ maintainability বিবেচনা করলে Application Layer-এ end-to-end encryption বাস্তবায়নই সবচেয়ে কার্যকর সমাধান।

9. Draw A class diagram. A token-ring based local area network (LAN) is a network consisting of nodes in which network packets are sent around. Every node has a unique name within the network, and refers to its next node. Different kinds of nodes exist: Workstations are originators of messages; servers and printers are network nodes that can receive messages. Packets contain an originator a destination and content, and are sent around on a network. A LAN is a circular configuration of nodes.
10. Determine overloading method, overridden method and hide super class method?

Method Overloading, Method Overriding, and Method Hiding

1. Method Overloading

Method overloading occurs when multiple methods in the same class have the same method name but different parameter lists (different number, type, or order of parameters).

  • Resolved at compile time
  • Improves code readability and flexibility

Example:

int add(int a, int b)
int add(int a, int b, int c)

2. Method Overriding

Method overriding happens when a subclass provides a new implementation of a method that is already defined in its superclass with the same method signature.

  • Occurs in inheritance
  • Resolved at runtime (runtime polymorphism)
  • Method must be non-static

Example:

class Parent {
  void show() { }
}
class Child extends Parent {
  void show() { }
}

3. Method Hiding (Hiding Superclass Method)

Method hiding occurs when a static method in a subclass has the same name and signature as a static method in the superclass.

  • Applies only to static methods
  • Resolved at compile time
  • Not true overriding

Example:

class Parent {
  static void display() { }
}
class Child extends Parent {
  static void display() { }
}

Summary Comparison

  • Overloading: Same class, same method name, different parameters
  • Overriding: Subclass redefines superclass method (non-static)
  • Hiding: Static method in subclass hides static method of superclass

Method Overloading, Method Overriding এবং Method Hiding

১. Method Overloading

একই class-এর ভেতরে একই নামের method থাকলে কিন্তু তাদের parameter আলাদা হলে তাকে method overloading বলে।

  • Compile time-এ সিদ্ধান্ত হয়
  • Code সহজ ও flexible হয়

উদাহরণ:

int add(int a, int b)
int add(int a, int b, int c)

২. Method Overriding

Subclass যখন superclass-এর একটি non-static method একই signature দিয়ে নতুনভাবে implement করে, তখন তাকে method overriding বলে।

  • Inheritance-এর ক্ষেত্রে হয়
  • Runtime-এ সিদ্ধান্ত হয়

উদাহরণ:

class Parent {
  void show() { }
}
class Child extends Parent {
  void show() { }
}

৩. Method Hiding (Superclass Method Hide করা)

Subclass যদি superclass-এর static method একই নাম ও signature দিয়ে define করে, তাহলে তাকে method hiding বলে।

  • শুধু static method-এর ক্ষেত্রে হয়
  • Compile time-এ resolve হয়
  • এটা real overriding নয়

উদাহরণ:

class Parent {
  static void display() { }
}
class Child extends Parent {
  static void display() { }
}

সংক্ষেপে পার্থক্য

  • Overloading: একই class, আলাদা parameter
  • Overriding: Subclass superclass-এর method পরিবর্তন করে
  • Hiding: Static method subclass দ্বারা hide হয়
General part
10. Growing use to technology in the Financial Service Industry.
11. Translation English to Bangla. .
12. Translation Bangla to English.
13. If x is an Integer and x + 1/x= 17/4, then value of x – 1/x =?
14. A basketball team has won 15 games and lost 9. If these games represent 16% of the games to be played, then how many more games must the team win to average 75% for the season?
15. Students of a class are made to stand in rows. If students are extra in each row, then there would be 2 rows less. If four students are less in each row, then there would be 4 more rows. What is the number of students in the class? 16. In the given figure, PQT is a right triangle then what is the area of square QRST.
Combined Bank

Post: Assistant Programmer ,
Exam Date: 09.06.2023
1. Given the following values, compute function point when all complexity adjustment factor (CAF) and weighting factors are average.
  • User Input = 50
  • User Output = 40
  • User Inquiries = 35
  • User Files = 6
  • External Interface = 4

Step 1:
As the complexity adjustment factor is average (given in the question), the scale is set to 3 for each factor.
F = 14 × 3 = 42

Step 2:
Calculate the Complexity Adjustment Factor (CAF) using the formula:
CAF = 0.65 + (0.01 × F)
Substitute F = 42:
CAF = 0.65 + (0.01 × 42) = 1.07

Step 3:
Calculate the Unadjusted Function Points (UFP) using the given values and the corresponding weights (average weighting factors):
UFP = (50 × 4) + (40 × 5) + (35 × 4) + (6 × 10) + (4 × 7)
UFP = 200 + 200 + 140 + 60 + 28 = 628

Step 4:
Calculate the Function Point (FP) using the formula:
FP = UFP × CAF
FP = 628 × 1.07 = 671.96

Final Answer:
The Function Point (FP) is: 671.96

2. Write a function to find the smallest element from an array

Algorithm to Find the Smallest Element in an Array

START

Step 1 → Initialize an array A with given values.
Step 2 → Create a variable min_value and set it to a large number (e.g., infinity) or the first element of the array.
Step 3 → Loop through each element A[i] in the array starting from the first element.
Step 4 → For each element, check if A[i] is smaller than min_value.
Step 5 → If A[i] < min_value, update min_value to A[i].
Step 6 → Repeat Steps 4 and 5 until all elements have been checked.
Step 7 → Display min_value as the smallest element of the array.

STOP

3. Consider page reference string 1, 3, 0, 3, 5, 6, 3 with 3 page frames.Find the number of page faults.
Given:
  • Page reference string: 1, 3, 0, 3, 5, 6, 3
  • Number of page frames: 3
Step-by-Step Analysis:page_fault_mathExplanation:
  1. 1 causes a page fault as it’s not in memory, so it’s loaded into frame 1.
  2. 3 causes a page fault and is loaded into frame 2.
  3. 0 causes a page fault and is loaded into frame 3. All three frames are now full.
  4. 3 is already in memory, so no page fault occurs (Hit).
  5. 5 causes a page fault and replaces the oldest page in memory, which is 1.
  6. 6 causes a page fault and replaces the oldest page in memory, which is 3.
  7. 3 causes a page fault and replaces the oldest page in memory, which is 0.
Total Page Faults:
  • 6 Page Faults
4. CRC is a redundancy error technique used to determine the error. Suppose the original data is 11100 and divisor is 1001

Solution:

Step 1: Represent Data and Divisor in Polynomial Form

Data (11100):

x4 + x3 + x2

Divisor (1001):

x3 + 1

Step 2: Append Zeros to the Original Data

Since the divisor is 4 bits, we append 3 zeros to the original data (one less than the number of bits in the divisor). The new data is:

Data after appending zeros: 11100000

Step 3: Perform Binary Division

Now we divide the modified data 11100000 by the divisor 1001.

Division Process:

11111 ← Quotient —————————– 11100000 ← Dividend (data with zeros) 1001 ← Divisor ———————- 1110000 1001 —————- 111000 1001 ————— 11100 1001 ———— 1110 1001 ———— 111

Step 4: Determine the Transmitted Value

The remainder 111 is the CRC code. To get the transmitted value, append the remainder to the original data:

Original data: 11100 Remainder: 111

Transmitted Value: 11100111
5. Attacker steals private key of website that uses transport layer security and remains undetected what can be done with private key?

Impact of Stealing a Private Key in TLS

If an attacker steals the private key of a website that uses Transport Layer Security (TLS) and remains undetected, several serious security threats can occur.

  • Decryption of Encrypted Traffic: The attacker can decrypt past and future TLS sessions (if Perfect Forward Secrecy is not used).
  • Impersonation: The attacker can impersonate the legitimate website and perform Man-in-the-Middle (MITM) attacks.
  • Data Theft: Sensitive data such as usernames, passwords, cookies, and credit card details can be stolen.
  • Malware Injection: Malicious content can be injected while appearing as a trusted website.

Mitigation Steps:

  • Immediately revoke the compromised certificate.
  • Generate a new key pair and install a new certificate.
  • Enable Perfect Forward Secrecy (PFS).
  • Monitor logs and notify users if required.

TLS-এ Private Key চুরি হলে কী হতে পারে

যদি কোনো attacker একটি TLS ব্যবহারকারী website-এর private key চুরি করে এবং তা ধরা না পড়ে, তাহলে গুরুতর নিরাপত্তা ঝুঁকি তৈরি হয়।

  • Encrypted Data Decrypt করা: Perfect Forward Secrecy ব্যবহার না করলে attacker আগের ও ভবিষ্যতের TLS session decrypt করতে পারে।
  • Website Impersonation: Attacker আসল website সেজে Man-in-the-Middle (MITM) attack চালাতে পারে।
  • Sensitive Data চুরি: Username, password, cookie, credit card তথ্য চুরি হতে পারে।
  • Malware Injection: Trusted website-এর মতো দেখিয়ে malicious content ঢুকানো যায়।

সমাধানমূলক ব্যবস্থা:

  • Compromised certificate সঙ্গে সঙ্গে revoke করতে হবে।
  • নতুন key pair ও certificate তৈরি করতে হবে।
  • Perfect Forward Secrecy (PFS) চালু করতে হবে।
  • Log monitor করে প্রয়োজনে user-দের জানাতে হবে।
6. A & B two frames in a browser loaded from different origins. Why is it a reasonable security policy to allow A to navigate B to another origin base only on whether the display area of A contains dis-pare of B and A has the control over area.

Reasonable Security Policy for Cross-Origin Frame Navigation

Consider two browser frames A and B loaded from different origins. Allowing frame A to navigate frame B to another origin is considered a reasonable security policy only when the display area of A contains part of B and A has control over that area.

Reasons:

  • User Awareness: Since frame A visibly contains part of frame B, the user can see the interaction and is less likely to be tricked by hidden or invisible actions.
  • UI Control: If A controls the display area of B, it implies an explicit embedding relationship, making navigation intent clearer and more legitimate.
  • Clickjacking Prevention: This restriction prevents malicious frames from silently redirecting other frames that are not visually or structurally related.
  • Least Privilege Principle: A is granted limited control (navigation only), not full access to B’s content, maintaining origin isolation.
  • Maintains Same-Origin Security: While navigation is allowed, reading or modifying B’s data remains restricted, preserving the same-origin policy.

Allowing navigation under these controlled and visible conditions balances usability with security and prevents abuse across origins.

Cross-Origin Frame Navigation-এর জন্য যুক্তিসংগত Security Policy

ধরা যাক browser-এর দুটি frame A এবং B আলাদা origin থেকে load হয়েছে। Frame A কে frame B-কে অন্য origin-এ navigate করতে দেওয়া যুক্তিসংগত হয় শুধুমাত্র তখনই, যখন A-এর display area-এর ভেতরে B-এর একটি অংশ থাকে এবং সেই area-এর উপর A-এর নিয়ন্ত্রণ থাকে।

কারণসমূহ:

  • User Awareness: যেহেতু user দৃশ্যমানভাবে frame B-কে frame A-এর মধ্যে দেখতে পায়, তাই গোপনে বা অজান্তে কোনো navigation হওয়ার ঝুঁকি কমে।
  • UI Control: A যদি B-এর display area নিয়ন্ত্রণ করে, তাহলে এটি একটি বৈধ embedding সম্পর্ক নির্দেশ করে।
  • Clickjacking প্রতিরোধ: এই নিয়ম malicious frame-কে অন্য frame গোপনে redirect করা থেকে বাধা দেয়।
  • Least Privilege Principle: A কেবল navigation করতে পারে, B-এর data access করতে পারে না।
  • Same-Origin Security বজায় রাখা: Navigation অনুমোদিত হলেও data পড়া বা পরিবর্তন নিষিদ্ধ থাকে।

এই নীতিটি usability ও security-এর মধ্যে ভারসাম্য বজায় রেখে cross-origin অপব্যবহার প্রতিরোধ করে।

7. Problem solved more efficiently in adjacency list representation than adjacency matrix representation and problem solved more effective in adjacency matrix than adjacency list.

Problems Better Solved Using Adjacency List

  • Sparse Graphs: When the number of edges is much smaller than V², adjacency lists save memory.
  • Graph Traversal (BFS/DFS): Faster to iterate over only existing neighbors.
  • Finding all neighbors of a vertex: Direct access without scanning all vertices.
  • Dynamic Graphs: Easier to add/remove edges.

Problems Better Solved Using Adjacency Matrix

  • Dense Graphs: When most pairs of vertices are connected.
  • Edge Existence Check: Checking if edge (u,v) exists is O(1).
  • Graph Algorithms like Floyd–Warshall: Matrix-based algorithms are simpler and faster.
  • Small Graphs: Simpler representation when memory is not a concern.

Adjacency List ব্যবহার করে যেসব সমস্যা বেশি কার্যকরভাবে সমাধান করা যায়

  • Sparse Graph: Edge কম হলে memory কম লাগে।
  • Graph Traversal (BFS/DFS): শুধু বিদ্যমান neighbor-গুলো traverse করতে হয়।
  • Vertex-এর সব neighbor খোঁজা: দ্রুত পাওয়া যায়।
  • Dynamic Graph: Edge যোগ/বিয়োগ সহজ।

Adjacency Matrix ব্যবহার করে যেসব সমস্যা বেশি কার্যকরভাবে সমাধান করা যায়

  • Dense Graph: বেশিরভাগ vertex একে অপরের সাথে connected হলে।
  • Edge আছে কিনা পরীক্ষা: O(1) সময়ে জানা যায়।
  • Floyd–Warshall-এর মতো Algorithm: Matrix-based হওয়ায় কার্যকর।
  • Small Graph: Memory সমস্যা না হলে সহজ representation।

8. Suppose we have a relational database with five tables. table key Attributes S(sid, A)Sid T(tid, B) Tid U(uid, C) Uid R(sid, tid, D) sid, tid Q(tid, uid, E) tid, uid Here R implements a many-to-many relationship between the entities implemented with tables S and T, and Q implements a many-to-many relationship between the entities implemented with tables T and U.

We need to retrieve sid from table R and uid from table Q, where the two tables are related through the common column tid.

SELECT R.sid, Q.uid
FROM R
JOIN Q ON R.tid = Q.tid;

Explanation:

  • R.sid: Selects the sid from table R.
  • Q.uid: Selects the uid from table Q.
  • The JOIN connects R and Q through their tid columns, which establish the relationship between the two tables.

Here, we need to select A from table S and C from table U, connecting them through the relations R and Q.

SELECT S.A, U.C
FROM S
JOIN R ON S.sid = R.sid
JOIN Q ON R.tid = Q.tid
JOIN U ON Q.uid = U.uid;

Explanation:

  • S.A: Selects the A-value from the S table (which corresponds to sid).
  • The first JOIN connects table S with table R through sid.
  • The second JOIN connects R and Q on tid.
  • Finally, Q is connected to U via uid, allowing us to select C from U.
9. A telephone line normally has a bandwidth of 3000 Hz (300 to 3300 Hz) assigned for data communication. The SNR is usually 3162. What will be the capacity for this channel?

Shannon Capacity Calculation

Given:

  • Bandwidth (B) = 3000 Hz
  • Signal-to-Noise Ratio (SNR) = 3162

Formula:

C = B × log2(1 + SNR)

Approximation:

Since log2(1 + 3162) ≈ 11.627

Calculation:

C = 3000 × 11.627= 34,881.23 bps

This means that the highest bit rate for a telephone line is 34,881.23 bps.

If we want to send data faster than this, we must either increase the bandwidth of the line or improve the SNR.

Source : [brainly.in]

10. Max Heap Operation [a-j] show heap.

Collection incomplete

General Part
  1. Bangla to English Translation (Bank, Economy Related)
  2. English to Bangla Translation (Bank, Risk Management Related)
  3. Essay on "Digital Financial Literacy"
The Security Printing Corporation (Bangladesh) Ltd.

Post: Sub-Assistant programmer,
Exam Date: 15-01-2022
1. What is Blacklist and Whitelist? Write down the Difference between Black list and white list.

Blacklist

A Blacklist is a list of users, IP addresses, websites, or applications that are explicitly blocked from accessing a system or network.

Whitelist

A Whitelist is a list of users, IP addresses, websites, or applications that are explicitly allowed to access a system or network. Everything else is blocked by default.

Difference between Blacklist and Whitelist

  • Access Rule: Blacklist blocks specific entities; Whitelist allows only specific entities.
  • Default Behavior: Blacklist allows all except blocked ones; Whitelist blocks all except allowed ones.
  • Security Level: Blacklist is less secure; Whitelist is more secure.
  • Use Case: Blacklist is used to block known threats; Whitelist is used in high-security environments.

Blacklist

Blacklist হলো এমন একটি তালিকা যেখানে নির্দিষ্ট user, IP address, website বা application-কে block করে রাখা হয় যাতে তারা system বা network access না পায়।

Whitelist

Whitelist হলো এমন একটি তালিকা যেখানে শুধুমাত্র নির্দিষ্ট user, IP address, website বা application-কে allow করা হয়। তালিকার বাইরে থাকা সবকিছু block থাকে।

Blacklist এবং Whitelist-এর পার্থক্য

  • Access Rule: Blacklist নির্দিষ্ট entity block করে; Whitelist নির্দিষ্ট entity allow করে।
  • Default Behavior: Blacklist-এ সব allow থাকে শুধু blocked ছাড়া; Whitelist-এ সব block থাকে শুধু allowed ছাড়া।
  • Security Level: Blacklist তুলনামূলক কম secure; Whitelist বেশি secure।
  • Use Case: Blacklist পরিচিত threat block করতে ব্যবহৃত হয়; Whitelist উচ্চ security পরিবেশে ব্যবহৃত হয়।
2. What is the difference between exception and Error in java?

Difference between Exception and Error in Java

  • Meaning: Exception represents conditions that a program can handle; Error represents serious problems that a program cannot handle.
  • Recovery: Exceptions can be caught and handled using try-catch; Errors are generally not recoverable.
  • Cause: Exceptions occur due to logical issues or user input; Errors occur due to system-level failures.
  • Examples: Exception – NullPointerException, ArithmeticException; Error – OutOfMemoryError, StackOverflowError.
  • Package: Both belong to java.lang package, but Error is not meant to be handled.

Java-তে Exception এবং Error-এর পার্থক্য

  • অর্থ: Exception হলো এমন সমস্যা যা program handle করতে পারে; Error হলো গুরুতর সমস্যা যা program handle করতে পারে না।
  • Recovery: Exception try-catch দিয়ে handle করা যায়; Error সাধারণত recover করা যায় না।
  • কারণ: Exception হয় logical সমস্যা বা ভুল input-এর কারণে; Error হয় system-level failure-এর কারণে।
  • উদাহরণ: Exception – NullPointerException, ArithmeticException; Error – OutOfMemoryError, StackOverflowError।
  • Package: দুটোই java.lang package-এর অন্তর্ভুক্ত, তবে Error handle করার জন্য নয়।
3. What is exception handling? Write with an example.

Exception Handling

Exception handling is a mechanism used in programming to handle runtime errors so that the normal flow of the program is not interrupted. It helps detect errors and provides a way to recover from them.

Example (Java):

try {
    int a = 10;
    int b = 0;
    int c = a / b;
    System.out.println(c);
} catch (ArithmeticException e) {
    System.out.println("Division by zero is not allowed");
}

Here, the exception is caught and handled instead of crashing the program.

Exception Handling

Exception handling হলো programming-এর একটি পদ্ধতি যেখানে runtime error ঘটলে তা handle করা হয়, যাতে program হঠাৎ বন্ধ না হয়ে যায় এবং স্বাভাবিকভাবে চলতে পারে।

উদাহরণ (Java):

try {
    int a = 10;
    int b = 0;
    int c = a / b;
    System.out.println(c);
} catch (ArithmeticException e) {
    System.out.println("Division by zero is not allowed");
}

এখানে error ঘটলেও program বন্ধ না হয়ে error message দেখায়।

4. What is SQL injection? How to prevent it?

SQL Injection

SQL Injection is a web security vulnerability where an attacker inserts malicious SQL code into a query to manipulate or access the database without authorization. It can lead to data theft, data modification, or complete database compromise.

How to Prevent SQL Injection

  • Use Prepared Statements: Parameterized queries prevent malicious SQL execution.
  • Input Validation: Validate and sanitize user inputs.
  • Use Stored Procedures: Reduces direct SQL execution.
  • Limit Database Privileges: Use least-privilege principle.
  • Web Application Firewall (WAF): Blocks common SQL injection patterns.

SQL Injection

SQL Injection হলো একটি web security vulnerability যেখানে attacker malicious SQL code ব্যবহার করে database-এ unauthorized access পায়। এতে data চুরি, পরিবর্তন বা database সম্পূর্ণ নষ্ট হয়ে যেতে পারে।

SQL Injection প্রতিরোধের উপায়

  • Prepared Statement ব্যবহার: Parameterized query malicious SQL execute হতে দেয় না।
  • Input Validation: User input যাচাই ও sanitize করা।
  • Stored Procedure ব্যবহার: Direct SQL execution কমায়।
  • Database Privilege সীমিত করা: Least privilege নীতি অনুসরণ করা।
  • Web Application Firewall (WAF): SQL injection attack block করে।
5. What is Cross site script (XSS) and how can fix it?

Cross-Site Scripting (XSS)

XSS (Cross-Site Scripting) is a web security vulnerability where an attacker injects malicious scripts into trusted websites. These scripts run in the victim’s browser and can steal sensitive information like cookies, session tokens, or redirect users to malicious sites.

How to Fix / Prevent XSS

  • Input Validation: Validate and sanitize all user inputs.
  • Output Encoding: Encode data before displaying it on web pages.
  • Use Security Headers: Implement Content Security Policy (CSP).
  • Avoid Inline Scripts: Reduce use of inline JavaScript.
  • Use Secure Frameworks: Modern frameworks handle XSS automatically.

Cross-Site Scripting (XSS)

XSS (Cross-Site Scripting) হলো একটি web security vulnerability যেখানে attacker একটি trusted website-এ malicious script inject করে। এই script user-এর browser-এ execute হয় এবং cookie, session information চুরি করতে পারে বা malicious site-এ redirect করতে পারে।

XSS প্রতিরোধের উপায়

  • Input Validation: User input যাচাই ও sanitize করা।
  • Output Encoding: Web page-এ দেখানোর আগে data encode করা।
  • Security Header ব্যবহার: Content Security Policy (CSP) প্রয়োগ করা।
  • Inline Script এড়ানো: Inline JavaScript কম ব্যবহার করা।
  • Secure Framework ব্যবহার: আধুনিক framework XSS handle করতে সাহায্য করে।
6. What is DBMS? Write short note on Virtual memory and Cache memory

DBMS (Database Management System)

A DBMS is software that is used to create, store, manage, and retrieve data efficiently from a database. It provides an interface between users/applications and the database.

Virtual Memory

Virtual memory is a memory management technique that uses a part of secondary storage (hard disk) as an extension of main memory (RAM). It allows programs to run even if the physical memory is insufficient.

Cache Memory

Cache memory is a small, high-speed memory located between the CPU and main memory. It stores frequently accessed data and instructions to improve system performance.

DBMS (Database Management System)

DBMS হলো এমন একটি software যা database তৈরি, সংরক্ষণ, পরিচালনা এবং data retrieve করার জন্য ব্যবহৃত হয়। এটি user/application এবং database-এর মধ্যে interface হিসেবে কাজ করে।

Virtual Memory

Virtual memory হলো একটি memory management technique যেখানে secondary storage (hard disk)-এর একটি অংশ main memory (RAM)-এর মতো ব্যবহার করা হয়। এতে physical memory কম হলেও program চলতে পারে।

Cache Memory

Cache memory হলো CPU এবং main memory-এর মাঝখানে থাকা একটি ছোট ও দ্রুতগতির memory। এটি বারবার ব্যবহৃত data ও instruction সংরক্ষণ করে system performance বাড়ায়।

7. Describe Dynamic memory allocation in programming in C.
Dynamic Memory Allocation in CDynamic memory allocation in C refers to allocating memory at runtime using standard library functions. Unlike static memory, dynamic memory can be allocated and freed as needed during program execution.Functions used:
  • malloc(): Allocates a block of memory.
  • calloc(): Allocates memory and initializes it to zero.
  • realloc(): Changes the size of previously allocated memory.
  • free(): Releases allocated memory.
Example:
int *ptr;
ptr = (int*)malloc(5 * sizeof(int));
Here, memory for 5 integers is allocated dynamically.
C Programming-এ Dynamic Memory AllocationDynamic memory allocation হলো program চলাকালীন (runtime) memory বরাদ্দ করার পদ্ধতি। এটি প্রয়োজন অনুযায়ী memory allocate ও deallocate করতে সাহায্য করে।ব্যবহৃত function:
  • malloc(): Memory allocate করে।
  • calloc(): Memory allocate করে এবং zero দিয়ে initialize করে।
  • realloc(): আগের memory-এর size পরিবর্তন করে।
  • free(): Allocate করা memory মুক্ত করে।
উদাহরণ:
int *ptr;
ptr = (int*)malloc(5 * sizeof(int));
এখানে 5টি integer-এর জন্য dynamically memory allocate করা হয়েছে।
8. Difference between data and information?
9. Difference between High level language low level languages with some example?

Examples:

  • High-Level Languages: C, C++, Java, Python, etc.
  • Low-Level Languages: Assembly Language, Machine Code.
10. Difference LIFO and FIFO in data structure?

Difference Between FIFO and LIFO in Data Structures:

11. What is kernel? Write down the objectives of Kernel.

Kernel

The kernel is the core component of an operating system. It acts as a bridge between hardware and software, managing system resources and allowing programs to run efficiently.

Objectives of Kernel

  • Process Management: Controls creation, execution, and termination of processes.
  • Memory Management: Allocates and deallocates memory to programs efficiently.
  • Device Management: Manages communication between hardware devices and applications.
  • File Management: Handles reading, writing, and organization of files.
  • Security and Protection: Ensures controlled access to system resources.

Kernel

Kernel হলো operating system-এর মূল অংশ। এটি hardware এবং software-এর মধ্যে সংযোগ স্থাপন করে এবং system resource গুলো দক্ষভাবে পরিচালনা করে।

Kernel-এর উদ্দেশ্যসমূহ

  • Process Management: Process তৈরি, চালানো এবং শেষ করা নিয়ন্ত্রণ করে।
  • Memory Management: Program-এ memory বরাদ্দ ও মুক্ত করে।
  • Device Management: Hardware device এবং application-এর মধ্যে যোগাযোগ নিয়ন্ত্রণ করে।
  • File Management: File পড়া, লেখা ও সংরক্ষণ পরিচালনা করে।
  • Security এবং Protection: System resource-এ নিয়ন্ত্রিত প্রবেশ নিশ্চিত করে।
12. What is the nested structure in C programming? Explain with example.

Nested Structure in C Programming

A nested structure in C means a structure defined inside another structure. It is used when a structure member itself needs to store complex data.

Example:

struct Date {
  int day;
  int month;
  int year;
};

struct Student {
  int id;
  char name[20];
  struct Date dob;
};

Here, the Date structure is nested inside the Student structure to store the date of birth.

C Programming-এ Nested Structure

C ভাষায় nested structure বলতে একটি structure-এর ভিতরে আরেকটি structure ব্যবহার করাকে বোঝায়। যখন কোনো member-এ complex data সংরক্ষণ করতে হয়, তখন nested structure ব্যবহার করা হয়।

উদাহরণ:

struct Date {
  int day;
  int month;
  int year;
};

struct Student {
  int id;
  char name[20];
  struct Date dob;
};

এখানে Date structure-টি Student structure-এর ভিতরে ব্যবহার করা হয়েছে জন্মতারিখ সংরক্ষণের জন্য।

6 Banks & Financial Institutions

Post: Assistant Programmer
Exam Date:2021
1. Topological sorting for Directed Acyclie Graph (DAG) is a linear ordering of vertices such that for every directed edge u v, vertex u comes before v in the ordering. Topological Sorting for a graph is not possible if the graph is not a DAG. Now write a C/C++ Program with the following input and Output.
Input: 5 2, 5 0, 4 0, 4 1, 2 3, 3 1
Output: 5 4 2 3 1 0

#include <bits/stdc++.h>
using namespace std;

// Function to perform DFS and topological sorting
void topologicalSortUtil(int v, vector<vector<int>> &adj, vector<bool> &visited, stack<int> &st) {
    // Mark the current node as visited
    visited[v] = true;

    // Recur for all adjacent vertices
    for (int i : adj[v]) {
        if (!visited[i])
            topologicalSortUtil(i, adj, visited, st);
    }

    // Push current vertex to stack which stores the result
    st.push(v);
}

vector<vector<int>> constructAdj(int V, vector<vector<int>> &edges) {
    vector<vector<int>> adj(V);

    for (auto it : edges) {
        adj[it[0]].push_back(it[1]);
    }

    return adj;
}

// Function to perform Topological Sort
vector<int> topologicalSort(int V, vector<vector<int>> &edges) {
    // Stack to store the result
    stack<int> st;

    vector<bool> visited(V, false);
    vector<vector<int>> adj = constructAdj(V, edges);

    // Call the recursive helper function for all vertices
    for (int i = 0; i < V; i++) {
        if (!visited[i])
            topologicalSortUtil(i, adj, visited, st);
    }

    vector<int> ans;

    // Append contents of stack
    while (!st.empty()) {
        ans.push_back(st.top());
        st.pop();
    }

    return ans;
}

int main() {
    int V = 6;
    vector<vector<int>> edges = {
        {2, 3}, {3, 1}, {4, 0}, {4, 1}, {5, 0}, {5, 2}
    };

    vector<int> ans = topologicalSort(V, edges);

    for (int node : ans) {
        cout << node << " ";
    }
    cout << endl;

    return 0;
}
Source:geeksforgeeks
2. Write a C/C++ program to check Balanced parentheses in an Expression.
#include <bits/stdc++.h>
using namespace std;

// function to check if brackets are balanced
bool areBracketsBalanced(string expr)
{
    stack s;
    char x;

    // Traversing the Expression
    for (int i = 0; i < expr.length(); i++) 
    {
        if (expr[i] == '(' || expr[i] == '[' || expr[i] == '{') 
        {
            // Push the element in the stack
            s.push(expr[i]);
            continue;
        }

        // IF current current character is not opening
        // bracket, then it must be closing. So stack
        // cannot be empty at this point.
        if (s.empty())
            return false;

        switch (expr[i]) {
        case ')':
            // Store the top element in a
            x = s.top();
            s.pop();
            if (x == '{' || x == '[')
                return false;
            break;

        case '}':
            // Store the top element in b
            x = s.top();
            s.pop();
            if (x == '(' || x == '[')
                return false;
            break;

        case ']':
            // Store the top element in c
            x = s.top();
            s.pop();
            if (x == '(' || x == '{')
                return false;
            break;
        }
    }

    // Check Empty Stack
    return (s.empty());
}

// Driver code
int main()
{
    string expr;

    // Taking input from the user
    cout << "Enter an expression: "; cin >> expr;

    // Function call
    if (areBracketsBalanced(expr))
        cout << "Balanced\n";
    else
        cout << "Not Balanced\n";
    return 0;
}


Source : GeeksforGeeks

3. We are given an array of integers and a range, we need to find whether the subarray which falls in this range has values in the form of a mountain or not. All values of the subarray are said to be in the form of a mountain if either all values are increasing or decreasing or first increasing and then decreasing. Write a C/C++ Program that shows input is a Mountain sequence or Not Mountain sequence.

#include <bits/stdc++.h>
using namespace std;

#define ll long long

bool isMountain(vector<ll> a) {
    ll n = a.size();

    if (n < 3)
        return false;

    ll i = 1;

    // Increasing part
    while (i < n && a[i] > a[i - 1]) {
        i++;
    }

    // Peak cannot be first or last
    if (i == 1 || i == n)
        return false;

    // Decreasing part
    while (i < n && a[i] < a[i - 1]) {
        i++;
    }

    return i == n;
}

int main() {
    ll n;
    cin >> n;

    vector<ll> a(n);
    for (ll i = 0; i < n; i++) {
        cin >> a[i];
    }

    if (isMountain(a)) {
        cout << "Mountain" << endl;
    } else {
        cout << "Not Mountain" << endl;
    }

    return 0;
}
Source: Geeksforgeeks
4. Given n jobs starting time n[] and duration d[], print maximum number of jobs that don't overlap between each other.

#include <bits/stdc++.h>
using namespace std;

#define N 6

// Define structure for Activity
struct Activity {
    int start, finish;
};

// Function to compare two activities
bool Sort_activity(Activity s1, Activity s2) {
    return (s1.finish < s2.finish); // Sort by finish time
}

// Function to print the maximum number of activities
void print_Max_Activities(Activity arr[], int n) {
    // Sort activities based on finish time
    sort(arr, arr + n, Sort_activity);

    cout << "Following activities are selected: \n";

    int i = 0;
    cout << "(" << arr[i].start << ", " << arr[i].finish << ")\n";

    // Select the next activity that starts after the last selected activity finishes
    for (int j = 1; j < n; j++) {
        if (arr[j].start >= arr[i].finish) {
            cout << "(" << arr[j].start << ", " << arr[j].finish << ")\n";
            i = j;
        }
    }
}

int main() {
    Activity arr[N];

    // Taking input from the user
    for (int i = 0; i < N; i++) {
        cout << "Enter the start and finish time for job " << i + 1 << " : ";
        cin >> arr[i].start >> arr[i].finish;
    }

    // Function call to print the selected activities
    print_Max_Activities(arr, N);

    return 0;
}
#include <iostream>
#include <string>
using namespace std;

// Bank Management System using Class & Inheritance in C++
/*
1. Saving Account
2. Current Account
3. Account Creation
4. Deposit
5. Withdraw
6. Balance
*/

class account {
private:
    string name;
    int accno;
    string atype;

public:
    void getAccountDetails() {
        cout << "\nEnter Customer Name : ";
        cin >> name;
        cout << "Enter Account Number : ";
        cin >> accno;
        cout << "Enter Account Type : ";
        cin >> atype;
    }

    void displayDetails() {
        cout << "\n\nCustomer Name : " << name;
        cout << "\nAccount Number : " << accno;
        cout << "\nAccount Type : " << atype;
    }
};

class current_account : public account {
private:
    float balance = 0;

public:
    void c_display() {
        cout << "\nBalance : " << balance;
    }

    void c_deposit() {
        float deposit;
        cout << "\nEnter amount to Deposit : ";
        cin >> deposit;
        balance = balance + deposit;
    }

    void c_withdraw() {
        float withdraw;
        cout << "\n\nBalance : " << balance;
        cout << "\nEnter amount to be withdraw : ";
        cin >> withdraw;

        if (balance >= withdraw && balance > 1000) {
            balance = balance - withdraw;
            cout << "\nBalance Amount After Withdraw: " << balance;
        } else {
            cout << "\nInsufficient Balance";
        }
    }
};

class saving_account : public account {
private:
    float sav_balance = 0;

public:
    void s_display() {
        cout << "\nBalance : " << sav_balance;
    }

    void s_deposit() {
        float deposit, interest;
        cout << "\nEnter amount to Deposit : ";
        cin >> deposit;
        sav_balance = sav_balance + deposit;
        interest = (sav_balance * 2) / 100;
        sav_balance = sav_balance + interest;
    }

    void s_withdraw() {
        float withdraw;
        cout << "\nBalance : " << sav_balance;
        cout << "\nEnter amount to be withdraw : ";
        cin >> withdraw;

        if (sav_balance >= withdraw && sav_balance > 500) {
            sav_balance = sav_balance - withdraw;
            cout << "\nBalance Amount After Withdraw: " << sav_balance;
        } else {
            cout << "\nInsufficient Balance";
        }
    }
};

int main() {
    current_account c1;
    saving_account s1;
    char type;
    int choice;

    cout << "\nEnter S for saving customer and C for current a/c customer : ";
    cin >> type;

    if (type == 's' || type == 'S') {
        s1.getAccountDetails();

        while (1) {
            cout << "\nChoose Your Choice" << endl;
            cout << "1) Deposit" << endl;
            cout << "2) Withdraw" << endl;
            cout << "3) Display Balance" << endl;
            cout << "4) Display with full Details" << endl;
            cout << "5) Exit" << endl;
            cout << "Enter Your choice: ";
            cin >> choice;

            switch (choice) {
                case 1:
                    s1.s_deposit();
                    break;
                case 2:
                    s1.s_withdraw();
                    break;
                case 3:
                    s1.s_display();
                    break;
                case 4:
                    s1.displayDetails();
                    s1.s_display();
                    break;
                case 5:
                    goto end;
                default:
                    cout << "\n\nEntered choice is invalid, TRY AGAIN";
            }
        }
    } 
    else if (type == 'c' || type == 'C') {
        c1.getAccountDetails();

        while (1) {
            cout << "\nChoose Your Choice" << endl;
            cout << "1) Deposit" << endl;
            cout << "2) Withdraw" << endl;
            cout << "3) Display Balance" << endl;
            cout << "4) Display with full Details" << endl;
            cout << "5) Exit" << endl;
            cout << "Enter Your choice: ";
            cin >> choice;

            switch (choice) {
                case 1:
                    c1.c_deposit();
                    break;
                case 2:
                    c1.c_withdraw();
                    break;
                case 3:
                    c1.c_display();
                    break;
                case 4:
                    c1.displayDetails();
                    c1.c_display();
                    break;
                case 5:
                    goto end;
                default:
                    cout << "\n\nEntered choice is invalid, TRY AGAIN";
            }
        }
    } 
    else {
        cout << "\nInvalid Account Selection";
    }

end:
    cout << "\nThank You for Banking with us..";
    return 0;
}
6. Write the definition of Inheritance, Polymorphism with coding example.

Inheritance:
Inheritance is an important concept of Object-Oriented Programming (OOP) where one class (child class) can acquire the properties and methods of another class (parent class). It helps in code reuse and creates a relationship between classes.

Example (C++):

#include <iostream>
using namespace std;

class Animal {
public:
    void eat() {
        cout << "Animal is eating" << endl;
    }
};

class Dog : public Animal {
public:
    void bark() {
        cout << "Dog is barking" << endl;
    }
};

int main() {
    Dog d;
    d.eat();   // inherited function
    d.bark();  // own function
}

In this example, the Dog class inherits the eat() function from the Animal class.

Polymorphism:
Polymorphism means “many forms”. It allows the same function name to perform different tasks depending on the situation. It improves flexibility and reusability in programs.

Example (Function Overloading in C++):

#include <iostream>
using namespace std;

class Math {
public:
    int add(int a, int b) {
        return a + b;
    }

    double add(double a, double b) {
        return a + b;
    }
};

int main() {
    Math m;
    cout << m.add(5, 3) << endl;
    cout << m.add(4.5, 2.3) << endl;
}

Here the function add() works in different ways depending on the data type of the arguments. This is an example of polymorphism.

Inheritance:
Inheritance হলো Object-Oriented Programming (OOP)-এর একটি গুরুত্বপূর্ণ ধারণা যেখানে একটি class (child class) অন্য একটি class (parent class)-এর properties এবং methods গ্রহণ করতে পারে। এটি code reuse করতে সাহায্য করে এবং class-এর মধ্যে relationship তৈরি করে।

Example (C++):

#include <iostream>
using namespace std;

class Animal {
public:
    void eat() {
        cout << "Animal is eating" << endl;
    }
};

class Dog : public Animal {
public:
    void bark() {
        cout << "Dog is barking" << endl;
    }
};

int main() {
    Dog d;
    d.eat();   // inherited function
    d.bark();  // own function
}

এখানে Dog class, Animal class-এর eat() function inherit করেছে।

Polymorphism:
Polymorphism অর্থ “many forms”। অর্থাৎ একই function নাম বিভিন্ন পরিস্থিতিতে ভিন্নভাবে কাজ করতে পারে। এটি program-এর flexibility এবং reusability বৃদ্ধি করে।

Example (Function Overloading in C++):

#include <iostream>
using namespace std;

class Math {
public:
    int add(int a, int b) {
        return a + b;
    }

    double add(double a, double b) {
        return a + b;
    }
};

int main() {
    Math m;
    cout << m.add(5, 3) << endl;
    cout << m.add(4.5, 2.3) << endl;
}

এখানে add() function একই নাম ব্যবহার করেও ভিন্ন data type-এর জন্য ভিন্নভাবে কাজ করছে। এটিই polymorphism

7. Write SQL command from the following tables.
Employee (ename, street, city)
Works (ename, cname, salary, joindate)
Company (cname, city)
Manages (ename, mname)

(a) Find name, street, city who work for First Corporation Bank and earn more than 30000
SELECT e.ename, e.street, e.city
FROM Employee e, Works w
WHERE e.ename = w.ename
  AND w.cname = 'First Corporation Bank'
  AND w.salary > 30000;
(b) Find name of all employees, who live in the same city and company for which they work.
SELECT e.ename
FROM Employee e, Works w, Company c
WHERE e.city = c.city
  AND w.cname = c.cname
  AND e.ename = w.ename
  AND e.city = w.city;
(c) Give all employees of First Century Bank 10 percent salary raise.
UPDATE Works
SET salary = salary + salary * 0.1
WHERE cname = 'First Century Bank';
(d) Find the company with payroll less than 100000.
SELECT cname
FROM Works
GROUP BY cname
HAVING SUM(salary) < 100000;
8. State diagram of DFA using binary strings having 0 with multiple of 3 on input {0,1}. Also showing regular expression
Transition Table:
StatesInput (0)Input (1)
—> A *BA
BCB
CAC
Regular Expression: (1* 0 1* 0 1* 0 1*)*

You must subscribe & Login to view more.

Don’t have an account? Register

Or your subscription is under review by admin. Please message on WhatsApp / Telegram.

Computer Architecture & Microprocessor
  1. Determine whether the following pair of graphs are isomorphic, and justify your answer in one sentence. [CB, SO(IT),2025]
  2. Explain the difference between direct, immediate, and register addressing modes in the 8086 microprocessor. [CB, SO(IT),2025]
  3. What exactly is a microcontroller? What distinguishes a microprocessor from a microcontroller? Mention the differences between RISC and CISC microprocessors. [CB, SO(IT),2024]
  4. Difference between 32 bit Microprocessor and 64 bit Microprocessor with example. What is the meaning of 2.40GHz Microprocessor? Differentiate among Core Intel i3, i5 and i7 processor. Why do you prefer SSD instead of HDD? [CB, SO(IT),2023]
  5. Differentiate among CPU register, Cache memory, Main memory and Secondary memory. [CB, SO(IT),2023]
  6. Consider a disk with a sector size of 512 bytes, 2000 tracks per surface, 50 sectors per track, five double-sided platters, and average seek time of 10 msec. What is the capacity of a track in bytes? What is the capacity of each surface? What is the capacity of the disk? [CB, SO(IT),2022]
Computer Networking & Data communication
  1. Why does the Domain Name System (DNS) primarily use UDP as its transport layer protocol instead of TCP? Describe the sequence of events during DNS name resolution when a user enters www.companybd.com into a web browser. [CB, SO(IT),2025]
  2. Briefly describe the following network devices: Repeater, Hub, Bridge, Switch and Router. [CB, SO(IT),2024]
  3. What are the different types of transmission media used for data communication? Explain their advantages and disadvantages. [CB, SO(IT),2024]
  4. How many types of modes are used in data transferring through networks? Briefly explain those modes. Differentiate between TCP vs UDP. [CB, SO(IT),2024]
  5. Difference between OSI model and TCP/IP model. Relation between Data, Segment, Packet and Bit in OSI model. [CB, SO(IT),2023]
  6. Differentiate among TDM, FDM and WDM. How does working process in TDM? [CB, SO(IT),2023]
  7. What is Topology in data communication? What are differences between Bus, Ring, Tree and Star topology? Purpose of IEEE 802.11 committee. [CB, SO(IT),2023]
  8. Using this IP 172.16.16.137/22 find the following: Subnet Mask, Block Size, Network Address, Broadcast Address and Total Valid Host. [CB, SO(IT),2022]
  9. A telephone line normally has a bandwidth of 3000 Hz assigned for data communications. The signal-to-noise ratio is usually 3162. Calculate the channel capacity. [CB, SO(IT),2022]
  10. Write about ARQ. [CB, SO(IT),2022]
Operating System
  1. Consider a logical address space of 512 pages, each of 2-KB page size, mapped onto a physical memory containing 128 frames. Determine the number of bits required in the logical and physical address. [CB, SO(IT),2025]
  2. Explain the concept of thrashing in an operating system, describing how it occurs in a demand-paged virtual memory system and how it impacts CPU utilization and overall system performance. [CB, SO(IT),2025]
Programming, Algorithm & Theory of Computation
  1. Explain the Quick Sort algorithm with a suitable example. Under what conditions does Quick Sort exhibit its worst-case time complexity, and why does this situation occur? [CB, SO(IT),2025]
  2. Write a structured program (in C or Python) that takes an integer input n and prints the sum of all even numbers from 1 to n. [CB, SO(IT),2025]
  3. Write a program using any object-oriented language to represent a Bank Account with encapsulation, deposit, withdraw and display functions. [CB, SO(IT),2025]
  4. Write a program in any language to find the sum of rows and columns of a m × n matrix. [CB, SO(IT),2024]
  5. Write a program in any language to find the prime numbers between 1 to n, where n is taken as user input. [CB, SO(IT),2024]
  6. Write a program in any language that takes two matrices A and B as inputs and performs matrix multiplication, average calculation and maximum finding. [CB, SO(IT),2023]
  7. What is platform independent software? Discuss with example. [CB, SO(IT),2023]
  8. Write a recursive function that returns a boolean after taking a string as parameter to check if it is a palindrome or not. [CB, SO(IT),2022]
  9. Determine the time complexity of the given nested loop function. [CB, SO(IT),2022]
  10. Construct a DFD of the following language: {W ⊂ (a,b)* | every a in W is followed by at least two b's}. [CB, SO(IT),2022]
  11. Pre-order and Post-order traversals are given. Draw the graph/tree. [CB, SO(IT),2022]
DBMS / Database
  1. Write an SQL query to display the region, average sale amount, and total number of sales for each region where average sale amount exceeds BDT 50,000 and total sales are at least 5. [CB, SO(IT),2025]
  2. Explain the concept of ACID properties in a database transaction. [CB, SO(IT),2025]
  3. Explain Inner Join, Left Join, Right Join and Full Join using Customers and Orders tables. [CB, SO(IT),2024]
  4. Briefly describe primary key, foreign key and indexing in relational database and their relationship. Does indexing always make applications faster? Explain. [CB, SO(IT),2024]
  5. Differentiate among Database, Data Warehouse and Data Mining with real world example. [CB, SO(IT),2023]
  6. What happens after executing the given SQL statement? [CB, SO(IT),2022]
  7. Draw an ER diagram from the given information. [CB, SO(IT),2022]
Cyber Security
  1. Describe how the principles of Confidentiality, Integrity, and Availability work together to protect organizational data with real-world example. [CB, SO(IT),2025]
  2. Explain how to test a 4-digit PIN input field for valid and invalid inputs and why such testing is important. [CB, SO(IT),2025]
  3. What cyber-security threats should be considered for a microfinance application hosted in a data centre and how can those threats be mitigated? [CB, SO(IT),2024]
  4. What is Cryptography? Difference between Symmetric and Asymmetric encryption with example. Draw and design public key encryption using Hash function. [CB, SO(IT),2023]
  5. What is Cyber Security? Write down the top 10 cyber attacks. Discuss Ransomware and DDoS attack. [CB, SO(IT),2023]
  6. Explain the problems with possible solutions of Session Hijacking and SQL Injection. [CB, SO(IT),2022]
Cloud Computing, Data Center & Server
  1. What is SaaS and multi-tenant architecture? How are they related? Discuss advantages and disadvantages of multi-tenancy. [CB, SO(IT),2024]
  2. Describe your approach to disaster recovery and business continuity planning for a data centre. [CB, SO(IT),2024]
  3. To achieve zero-bit data loss for 24×7 online banking operation, what steps or technologies should an online bank employ? [CB, SO(IT),2023]
Software Engineering, Testing, Audit & IT Governance
  1. What do you understand about software quality assurance (SQA)? As a SQA team leader, what aspects will you consider while purchasing software? [CB, SO(IT),2024]
  2. Between Waterfall Approach and Incremental Approach, which software development approach would you choose for rapid deployment and why? [CB, SO(IT),2024]
Artificial Intelligence / Machine Learning
  1. Explain the concepts of Reinforcement Learning (RL), Deep Learning (DL), and Federated Learning (FL) in Machine Learning. [CB, SO(IT),2025]
  2. Explain how Generative AI and Explainable AI (XAI) can be used in an AI-based citizen service chatbot. [CB, SO(IT),2025]
  3. What is machine learning? Differentiate among supervised learning, unsupervised learning and reinforcement learning. [CB, SO(IT),2024]
Web Technology
  1. What are SOAP and RESTful APIs in web services? State one main difference between SOAP and REST in terms of data exchange. [CB, SO(IT),2025]
  2. How does HTTP work? How many HTTP requests would be needed for a given situation? [CB, SO(IT),2022]
  3. What is Web Caching? Is it available for every user request? Why or why not? [CB, SO(IT),2022]
ICT, Digital Banking & Banking Technology
  1. What is Blockchain? How does it work? Mention five benefits of blockchain. Differentiate between Traditional Banking and Digital Banking. [CB, SO(IT),2023]
  2. Discuss tools and techniques to develop a Business Intelligence Dashboard for a bank. [CB, SO(IT),2023]
Digital Logic Design / Electronics
  1. Solve the following function using K-map: F(w,x,y,z)= ∑(0,4,5,6,12,14,15). [CB, SO(IT),2022]
Programming, Algorithm & Theory of Computation
  1. Explain the concept of inheritance in Object-Oriented Programming. Name and briefly describe three common types of inheritance used in OOP. [CB, AP,2026]
  2. Describe step-by-step how Binary Search locates a target value in a sorted array. Why does it fail if the array is unsorted? [CB, AP,2026]
  3. You have two stacks. Explain the logic required to implement a Queue (FIFO) using only these two stacks. [CB, AP,2026]
  4. Explain the logic of Bubble Sort. Why is it considered inefficient for large datasets compared to Merge Sort? [CB, AP,2026]
  5. Draw or describe a Flowchart to determine the largest of three distinct numbers (A, B, C). [CB, AP,2026]
  6. Construct a logical argument explaining why a heuristic search (like A*) might be faster than a blind search (like BFS), even if it doesn't guarantee the absolute perfect path in all cases. [CB, AP,2026]
  7. Write a Program to print Prime numbers from 1 to n. [CB, AP,2024]
  8. Write a Program to print Floyd's Triangle for n = 5. [CB, AP,2024]
  9. Write a C++ program to find the sum of the series: 1 + 2 + 4 + 7 + 11 + ... + N. [CB, AP,2024]
  10. What is Polymorphism? Discuss different types of Polymorphism with examples. [CB, AP,2024]
  11. Difference between Stack and Queue. Write about two problems solved by Stack and Queue. [CB, AP,2024]
  12. Find the output of the given recursion program. [CB, AP,2024]
  13. Given two integers A and B as input write a program to compute the least common multiple (LCM) of A and B. [BB, AP,2023]
  14. Mention which methods overload, override and hide super class methods in the given Java code. [BB, AP,2023]
  15. Write a function to find the smallest element from an array. [CB, AP,2023]
  16. Problems solved more efficiently using adjacency list representation than adjacency matrix representation and vice versa. [CB, AP,2023]
  17. Topological sorting for Directed Acyclic Graph (DAG). Write a C/C++ Program for topological sorting. [6BFI, AP,2021]
  18. Write a C/C++ program to check Balanced Parentheses in an expression. [6BFI, AP,2021]
  19. Write a C/C++ Program that shows whether the given sequence is a Mountain sequence or not. [6BFI, AP,2021]
  20. Given n jobs starting times and durations, print maximum number of non-overlapping jobs. [6BFI, AP,2021]
  21. Write a C/C++ Program that has a Class Account, Savings Account and Current Account with hierarchy. [6BFI, AP,2021]
  22. Write the definition of Inheritance and Polymorphism with coding example. [6BFI, AP,2021]
  23. State diagram of DFA using binary strings having number of 0's multiple of 3 on input {0,1}. Also show regular expression. [6BFI, AP,2021]
Software Engineering, Testing, Audit & IT Governance
  1. Explain the concept of the Software Development Life Cycle (SDLC) and describe its main phases. [CB, AP,2026]
  2. What is Version Control (e.g., Git)? Explain the difference between Committing code and Pushing code. [CB, AP,2026]
  3. Given the following values, compute Function Point when all complexity adjustment factor (CAF) and weighting factors are average. [CB, AP,2023]
  4. What is Blacklist and Whitelist? Write down the differences between Blacklist and Whitelist. [SPCBL, SAP,2022]
Computer Networking
  1. Apply the concept of IP addressing and routing to explain how packets are delivered across networks using OSPF at the network layer. [CB, AP,2026]
  2. Explain the logic of a Checksum. How is it used to verify data integrity during file transfer? [CB, AP,2026]
  3. In order to implement end-to-end encryption techniques, which layer of the OSI model is most suitable considering maintainability and development cost? [BB, AP,2023]
  4. A telephone line normally has a bandwidth of 3000 Hz and SNR of 3162. Calculate the channel capacity. [CB, AP,2023]
Operating System
  1. Explain the fundamental difference between a Process and a Thread. Provide two advantages of using threads over processes. [CB, AP,2026]
  2. Explain the Producer-Consumer problem in operating systems. What synchronization issue must be solved? [CB, AP,2026]
  3. What is Multithreading programming? Why is Multithreading used in programming? [CB, AP,2024]
  4. Consider page reference string 1, 3, 0, 3, 5, 6, 3 with 3 page frames. Find the number of page faults. [CB, AP,2023]
  5. What is Kernel? Write down the objectives of Kernel. [SPCBL, SAP,2022]
  6. Write short note on Virtual Memory and Cache Memory. [SPCBL, SAP,2022]
DBMS / Database
  1. You are designing a database for a Library. Explain the relationship between a Book table and a Borrower table. [CB, AP,2026]
  2. Discuss different types of relations in DBMS. [CB, AP,2024]
  3. Write an SQL query to return the number of movies that are romantic comedies. [BB, AP,2023]
  4. Write SQL queries using tables S, T, U, R and Q to retrieve related sid, uid and A, C values. [CB, AP,2023]
  5. What is DBMS? [SPCBL, SAP,2022]
  6. Write SQL commands from the given Employee, Works, Company and Manages tables. [6BFI, AP,2021]
Cyber Security
  1. Describe a Man-in-the-Middle attack on the Diffie-Hellman key exchange protocol. [BB, AP,2023]
  2. Explain how Confidentiality, Integrity and Availability relate to falsification, interception, masquerade and denial of service. [BB, AP,2023]
  3. If an attacker steals the private key of a website using TLS and remains undetected, what can be done with the private key? [CB, AP,2023]
  4. What is SQL Injection? How can it be prevented? [SPCBL, SAP,2022]
  5. What is Cross Site Scripting (XSS) and how can it be fixed? [SPCBL, SAP,2022]
Digital Logic Design / Electronics
  1. What is a Universal Gate? Prove that the NAND Gate is a Universal Gate. [CB, AP,2026]
  2. CRC is a redundancy error detection technique. Given original data 11100 and divisor 1001, solve using CRC method. [CB, AP,2023]
Data Structure & Graph Theory
  1. Suppose the hash function is h(k)=k mod 13. Insert keys 10, 3, 6, 16, 17, 19 into the hash table using linear probing. [BB, AP,2023]
  2. Given an adjacency list representation for a complete binary tree on 7 vertices, construct the equivalent adjacency matrix representation. [BB, AP,2023]
  3. Draw a class diagram for a token-ring based local area network (LAN). [BB, AP,2023]
  4. Difference between LIFO and FIFO in Data Structure. [SPCBL, SAP,2022]
  5. Max Heap Operations [a-j]. Show heap construction and operations. [CB, AP,2023]
Machine Learning & Artificial Intelligence
  1. Compare and contrast Supervised Learning, Unsupervised Learning and Reinforcement Learning. [CB, AP,2026]
Computer Fundamentals / Office / Utility
  1. Difference between Data and Information. [SPCBL, SAP,2022]
  2. Difference between High Level Language and Low Level Language with examples. [SPCBL, SAP,2022]
  3. Describe Dynamic Memory Allocation in C programming. [SPCBL, SAP,2022]
  4. What is Nested Structure in C programming? Explain with example. [SPCBL, SAP,2022]
  5. Difference between Exception and Error in Java. [SPCBL, SAP,2022]
  6. What is Exception Handling? Explain with example. [SPCBL, SAP,2022]

Leave a Comment

Latest Post
Field Based Job Question & Solution
Bank IT Job Solution

MCQ + Written from Bangladesh Bank, Sonali, Combined Bank IT recruitment.

BPSC IT Job Solution

BPSC Computer/IT cadre & non-cadre post Question papers with full solutions.

Gas Field IT Job Solution

Gas field like TGTDCL, BGDCL, JGTDSL, KGDCL, SGCL, RPGCL, GTCL etc. question solution

Power Sector IT Job Solution

Power sector such as NESCO, DESCO, DPDC, WZPDCL, BPDB, PGCB, BREB etc

Other IT Job Solution

Other Govt. Semi govt. organization like BCC, BTCL, CAAB, NSI etc.

NTRCA IT Job Solution (upcoming)

NTRCA ICT-related posts such as Assistant Teacher, Demonstrator, Lecturer.

IT MCQ Job Solution

Collected MCQ Job solution of BANK, BPSC, POWER SECTOR, GAS Field and Others.

Topic Based Q&S
WhatsApp Telegram Messenger