Cse Interview Questions Placement 2026
Computer Science Core (Theory) Interview Questions for Placement 2026
Last Updated: March 2026
Core computer science interviews focus on theoretical foundations including algorithms, data structures, operating systems, databases, and computer networks. This guide covers 25 essential theory questions that product-based companies frequently ask.
Top 25 Computer Science Core Interview Questions
1. Explain the time and space complexity of QuickSort and when it performs worst.
Algorithm Steps:
- Pick pivot element
- Partition: elements < pivot go left, > pivot go right
- Recursively sort subarrays
Time Complexity:
Best Case: O(n log n)
- Balanced partitions (pivot is median)
- Recurrence: T(n) = 2T(n/2) + O(n)
Average Case: O(n log n)
- Random pivot selection
- Expected balanced partitions
Worst Case: O(n²)
- Unbalanced partitions
- Occurs when:
- Array already sorted and first/last element chosen as pivot
- All elements are identical
- Recurrence: T(n) = T(n-1) + O(n)
Space Complexity:
- In-place: O(log n) average (recursion stack)
- Worst case: O(n) recursion depth
Optimization - Randomized QuickSort:
- Random pivot selection
- Expected O(n log n) regardless of input
- No worst-case scenarios in practice
Comparison with MergeSort:
- QuickSort: In-place, cache-friendly, O(n²) worst
- MergeSort: Stable, O(n log n) guaranteed, O(n) space
2. What is the difference between Process and Thread?
| Feature | Process | Thread |
|---|---|---|
| Definition | Independent executing program | Lightweight unit within process |
| Memory | Separate address space | Shares process memory |
| Communication | IPC (pipes, sockets, shared memory) | Direct memory sharing |
| Creation | Expensive (fork) | Cheap |
| Context Switch | Heavy (MMU involvement) | Light |
| Isolation | Crash doesn't affect others | Crash kills entire process |
| Resources | Own file descriptors, heap | Shares file descriptors, code, heap |
| Scheduling | OS schedules processes | Kernel/User schedules threads |
Process Components:
- Code segment (text)
- Data segment (global variables)
- Heap (dynamic memory)
- Stack (local variables, function calls)
- PCB (Process Control Block)
Thread Components:
- Thread ID
- Program Counter
- Register set
- Stack
- Shares: code, data, heap, open files
When to use Threads:
- Parallel computation
- Responsive U/O (non-blocking)
- Shared data processing
- Lightweight concurrency
When to use Processes:
- Isolation required (security)
- Independent applications
- Fault tolerance (crash isolation)
- Different privilege levels
3. Explain Deadlock - Conditions, Prevention, and Banker's Algorithm.
Four Necessary Conditions (Coffman):
- Mutual Exclusion: Resources non-shareable
- Hold and Wait: Process holds resources while waiting
- No Preemption: Resources cannot be forcibly taken
- Circular Wait: Circular chain of waiting processes
Deadlock Handling:
1. Prevention: Remove one Coffman condition
- Mutual Exclusion: Spool everything (not always possible)
- Hold and Wait: Request all resources at once
- No Preemption: Allow resource preemption
- Circular Wait: Order resources, request in order
2. Avoidance:
- Analyze resource allocation state
- Only grant if safe state maintained
- Banker's Algorithm
3. Detection & Recovery:
- Allow deadlocks, detect periodically
- Recovery: Process termination or resource preemption
4. Ignore:
- Ostrich algorithm (used in most OS)
- Reboot if deadlock occurs
Banker's Algorithm:
Data Structures:
- Available[m]: Available instances of each resource type
- Max[n][m]: Maximum demand of each process
- Allocation[n][m]: Currently allocated
- Need[n][m] = Max - Allocation
Safety Algorithm:
- Initialize Work = Available, Finish[i] = false
- Find process where Need ≤ Work and Finish = false
- Work = Work + Allocation, Finish = true
- Repeat until no such process exists
- If all Finish = true, system is safe
Resource Request Algorithm:
- Check if Request ≤ Need, else error
- Check if Request ≤ Available, else wait
- Pretend to allocate, check safety
- If safe, allocate; else, process waits
4. What are ACID properties in DBMS?
A - Atomicity:
- All operations complete or none
- Transaction is indivisible unit
- Implementation: Write-ahead logging, shadow paging
- Rollback on failure undoes all changes
C - Consistency:
- Database remains in valid state
- All integrity constraints maintained
- Ensured by: Database constraints, triggers, application logic
- Sum of transferred amounts must remain constant
I - Isolation:
- Concurrent transactions don't interfere
- Result as if transactions executed sequentially
- Isolation Levels:
- READ UNCOMMITTED: Lowest, dirty reads possible
- READ COMMITTED: No dirty reads
- REPEATABLE READ: No non-repeatable reads
- SERIALIZABLE: Highest, no anomalies
D - Durability:
- Committed transactions survive failures
- Changes permanent
- Implementation:
- Write-ahead logging (WAL)
- Redo logs
- Database backups
- Battery-backed write cache
Concurrency Control:
- Locking: Shared (S), Exclusive (X) locks
- Two-Phase Locking (2PL): Growing + shrinking phases
- Timestamp Ordering: Older transactions priority
- Optimistic: Validate at commit
5. Explain TCP 3-Way Handshake and 4-Way Termination.
Purpose: Synchronize sequence numbers, exchange parameters, prevent stale connections.
Steps:
Client Server
| SYN, seq=x |
|--------------------->|
| |
| SYN-ACK, seq=y, |
| ack=x+1 |
|<---------------------|
| |
| ACK, seq=x+1, |
| ack=y+1 |
|--------------------->|
| |
| Connection |
| Established |
1. SYN:
- Client sends SYN=1, initial sequence number (ISN=x)
- Enters SYN_SENT state
2. SYN-ACK:
- Server sends SYN=1, ACK=1
- Server ISN=y, ack=x+1
- Enters SYN_RECEIVED state
3. ACK:
- Client sends ACK=1, seq=x+1, ack=y+1
- Both in ESTABLISHED state
Why 3-way?
- Prevents stale/delayed connection requests
- Confirms both directions work
- Synchronizes sequence numbers
TCP 4-Way Termination (Connection Close):
Steps:
Client Server
| FIN, seq=u |
|--------------------->|
| |
| ACK, seq=v, |
| ack=u+1 |
|<---------------------|
| (Half-close: |
| Client→Server done)|
| |
| FIN, seq=w, |
| ack=u+1 |
|<---------------------|
| |
| ACK, seq=u+1, |
| ack=w+1 |
|--------------------->|
| |
| Connection |
| Closed |
1. FIN: Active closer sends FIN 2. ACK: Passive closer acknowledges 3. FIN: Passive closer sends FIN (when ready) 4. ACK: Active closer acknowledges
TIME_WAIT State:
- Active closer waits 2×MSL (Maximum Segment Lifetime)
- Ensures last ACK received
- Prevents stale segments
6. What is the difference between IPv4 and IPv6?
| Feature | IPv4 | IPv6 |
|---|---|---|
| Address Size | 32 bits | 128 bits |
| Address Space | 4.3 billion | 3.4 × 10³⁸ |
| Format | Dotted decimal (192.168.1.1) | Hexadecimal (2001:0db8::1) |
| Header Size | 20-60 bytes | Fixed 40 bytes |
| Checksum | Yes | No (handled by upper layers) |
| Fragmentation | Routers and hosts | Only hosts |
| NAT | Required (address shortage) | Not needed |
| Configuration | Manual or DHCP | Auto-configuration, DHCPv6 |
| Security | IPsec optional | IPsec mandatory (implementation) |
| QoS | Limited | Flow label field |
| Multicast | Optional | Required |
| Broadcast | Yes | No (replaced by multicast) |
IPv6 Address Types:
- Unicast: One-to-one
- Multicast: One-to-many
- Anycast: One-to-nearest
IPv6 Address Representation:
- 8 groups of 4 hex digits
- Leading zeros can be omitted
- One group of consecutive zeros can be replaced with ::
- Example: 2001:0db8:0000:0000:0000:ff00:0042:8329 → 2001:db8::ff00:42:8329
Transition Mechanisms:
- Dual Stack: Both protocols simultaneously
- Tunneling: IPv6 over IPv4 network
- Translation: NAT64, protocol translation
7. Explain Virtual Memory, Paging, and Page Faults.
- Abstraction giving each process illusion of large contiguous memory
- Allows execution of programs larger than physical RAM
- Protection between processes
Benefits:
- Larger address space than physical memory
- Memory isolation between processes
- Efficient memory sharing (shared libraries)
- Simplified memory management
Paging:
- Fixed-size blocks: Pages (logical) / Frames (physical)
- Typical size: 4KB
- Eliminates external fragmentation
Page Table:
- Maps virtual page numbers to physical frame numbers
- Stored in memory
- MMU (Memory Management Unit) performs translation
Page Fault:
- CPU references page not in physical memory
- OS handles fault:
- Find free frame (or victim)
- Load page from disk
- Update page table
- Restart instruction
Page Replacement Algorithms:
- FIFO: First-in-first-out (suffers Belady's anomaly)
- LRU: Least Recently Used (good, expensive)
- Optimal: Replace page used farthest in future (theoretical)
- Clock: Second chance algorithm (approximates LRU)
TLB (Translation Lookaside Buffer):
- Cache for page table entries
- Speeds up address translation
- Typical hit rate: 99%
Thrashing:
- Excessive page faults due to insufficient frames
- CPU utilization drops despite high multiprogramming
- Solution: Working set model, page fault frequency
8. What is Normalization? Explain 1NF, 2NF, 3NF, BCNF.
1NF (First Normal Form):
- Atomic values (no repeating groups)
- Each cell contains single value
- Each row is unique
Violation Example:
Student: ID, Name, Subjects ← Multiple subjects in one cell
1NF Solution:
Student_Subject: ID, Name, Subject (separate rows)
2NF (Second Normal Form):
- Must be in 1NF
- No partial dependency (non-prime attributes depend on full candidate key)
- Relevant for composite keys
Violation Example:
Enrollment: (StudentID, CourseID), StudentName, CourseName
StudentName depends only on StudentID (partial dependency)
2NF Solution:
Student: StudentID, StudentName
Course: CourseID, CourseName
Enrollment: StudentID, CourseID
3NF (Third Normal Form):
- Must be in 2NF
- No transitive dependency (non-prime → non-prime)
Violation Example:
Employee: EmpID, EmpName, DeptID, DeptName
DeptName depends on DeptID, not directly on EmpID (transitive)
3NF Solution:
Employee: EmpID, EmpName, DeptID
Department: DeptID, DeptName
BCNF (Boyce-Codd Normal Form):
- Stricter version of 3NF
- For every FD X → Y, X must be a superkey
BCNF Violation:
Student: (Student, Course), Instructor
Instructor → Course (Instructor determines Course)
Instructor is not a superkey
BCNF Solution:
Student_Instructor: Student, Instructor
Instructor_Course: Instructor, Course
Trade-offs:
- Higher normalization: Less redundancy, more joins
- Denormalization: Used for performance in read-heavy systems
9. Explain the Sliding Window Protocol in TCP.
Concept:
- Sender can transmit multiple packets without acknowledgment
- Window size determines unacknowledged data allowed
- Dynamic adjustment based on network conditions
Sender Window:
[Sent & ACKed] [Sent, not ACKed] [Can send] [Cannot send yet]
↑ ↑ ↑
lastACK sent lastACK + window
Receiver Window:
- Advertised in TCP header (Window Size field)
- Indicates available buffer space
Types:
1. Go-Back-N:
- Cumulative acknowledgments
- Timeout: Retransmit all from lost packet
- Window size up to 2ⁿ-1 (n = sequence number bits)
2. Selective Repeat:
- Individual acknowledgments
- Timeout: Retransmit only lost packet
- Receiver buffers out-of-order packets
- Window size up to 2ⁿ⁻¹
TCP Window Scaling:
- Original window size: 16 bits (64KB max)
- Window scale option for high-bandwidth networks
- Effective window up to 1GB
Congestion Control:
- Slow Start: Exponential window growth
- Congestion Avoidance: Linear growth
- Fast Retransmit: Retransmit on 3 duplicate ACKs
- Fast Recovery: Avoid slow start after fast retransmit
Throughput: Throughput = Window Size / RTT
10. What is the difference between Compile-time and Run-time Polymorphism?
| Aspect | Compile-time (Static) | Run-time (Dynamic) |
|---|---|---|
| Also called | Early binding, static binding | Late binding, dynamic binding |
| Mechanism | Function overloading, operator overloading | Virtual functions, overriding |
| Resolution | Compiler decides | JVM/runtime decides |
| Speed | Faster (decided at compile) | Slower (lookup at runtime) |
| Flexibility | Less flexible | More flexible |
| Example | Method overloading | Method overriding |
Compile-time Polymorphism:
Function Overloading:
class Calculator {
int add(int a, int b) { return a+b; }
double add(double a, double b) { return a+b; }
int add(int a, int b, int c) { return a+b+c; }
};
- Same name, different parameters
- Return type alone doesn't differentiate
Operator Overloading:
Complex operator+(const Complex& c) {
return Complex(real+c.real, imag+c.imag);
}
Run-time Polymorphism:
Method Overriding:
class Shape {
public:
virtual double area() = 0; // Pure virtual
};
class Circle : public Shape {
public:
double area() override { return 3.14*r*r; }
};
Shape* s = new Circle();
s->area(); // Calls Circle::area() at runtime
Virtual Function Table (vtable):
- Compiler creates table of function pointers
- Each object has pointer to vtable (vptr)
- Runtime: vptr → vtable → function
When to use:
- Static: Performance critical, known at compile
- Dynamic: Extensibility, plugin architecture
11. Explain Binary Search Tree (BST) and its operations complexity.
Properties:
- Left child < Parent
- Right child > Parent
- No duplicates (or handled by convention)
- In-order traversal gives sorted sequence
Operations:
Search:
1. Start at root
2. If target == node, found
3. If target < node, go left
4. If target > node, go right
5. Repeat until found or null
Insert:
- Search for position (will end at null)
- Insert as leaf
Delete:
- Leaf node: Simply remove
- One child: Replace with child
- Two children: Replace with in-order successor/predecessor
Complexity:
| Operation | Average | Worst |
|---|---|---|
| Search | O(log n) | O(n) |
| Insert | O(log n) | O(n) |
| Delete | O(log n) | O(n) |
Worst case: Skewed tree (inserted in sorted order)
Balanced BST Variants:
- AVL Tree: Height balanced (|left-right| ≤ 1)
- Red-Black Tree: Color balanced, less strict than AVL
- B-Tree: Multi-way tree for disk storage
- Splay Tree: Self-adjusting
AVL Tree Rotations:
- Single rotation (LL, RR cases)
- Double rotation (LR, RL cases)
- Guarantees O(log n) always
Applications:
- Indexing (databases)
- Symbol tables
- Expression parsers
- 3D game engines (BSP trees)
12. What is Semaphore and how does it solve the Producer-Consumer Problem?
Types:
1. Binary Semaphore (Mutex):
- Values: 0 or 1
- Used for mutual exclusion
- Like a lock
2. Counting Semaphore:
- Values: 0 to N
- Controls access to N resources
Operations:
- wait(P): Decrement, block if negative
- signal(V): Increment, wake waiting process
Atomicity: Both operations must be atomic (hardware support needed).
Producer-Consumer Problem:
Scenario:
- Producer generates data, puts in buffer
- Consumer removes and processes data
- Buffer has finite size N
Requirements:
- Producer waits if buffer full
- Consumer waits if buffer empty
- Mutual exclusion on buffer access
Solution with Semaphores:
semaphore mutex = 1; // Mutual exclusion
semaphore empty = N; // Empty slots
semaphore full = 0; // Filled slots
Producer:
while(true) {
item = produce();
wait(empty); // Wait for empty slot
wait(mutex); // Enter critical section
buffer[in] = item;
in = (in + 1) % N;
signal(mutex); // Exit critical section
signal(full); // Notify consumer
}
Consumer:
while(true) {
wait(full); // Wait for filled slot
wait(mutex); // Enter critical section
item = buffer[out];
out = (out + 1) % N;
signal(mutex); // Exit critical section
signal(empty); // Notify producer
consume(item);
}
Key Points:
wait(mutex)must come afterwait(empty)/wait(full)- Order prevents deadlock
signal()operations can be in any order
13. Explain Dijkstra's Algorithm and when it fails.
Algorithm:
1. Initialize: dist[source] = 0, dist[others] = ∞
2. Create priority queue (min-heap) of vertices
3. While queue not empty:
a. u = vertex with minimum dist
b. For each neighbor v of u:
if dist[u] + weight(u,v) < dist[v]:
dist[v] = dist[u] + weight(u,v)
prev[v] = u
4. Return dist[]
Time Complexity:
- Adjacency matrix: O(V²)
- Binary heap: O(E log V)
- Fibonacci heap: O(E + V log V)
Space Complexity: O(V)
When Dijkstra Fails:
Negative Edge Weights:
- Dijkstra assumes once vertex processed, shortest path found
- Negative edges may provide shorter path later
- Example:
Dijkstra gives A→C = 2, but A→B→C = -5A --5--> B --(-10)--> C | ↑ --------2-------------
Negative Cycles:
- Even worse - shortest path undefined (keep decreasing)
Alternatives:
- Bellman-Ford: Handles negative weights, O(VE)
- SPFA: Queue-based optimization of Bellman-Ford
- Floyd-Warshall: All-pairs shortest path
When to use:
- Non-negative weights only
- Single source shortest path
- Large graphs (use with heap)
14. What are the different types of Database Indexes?
1. B-Tree Index:
- Most common type
- Self-balancing tree
- O(log n) search, insert, delete
- Good for range queries
- Default in most databases
2. B+ Tree Index:
- Variant of B-Tree
- All data in leaf nodes (linked)
- Better for range scans
- Used in MySQL InnoDB
3. Hash Index:
- Hash table structure
- O(1) lookup for equality
- No range query support
- Used for exact match
- Example: PostgreSQL hash index
4. Bitmap Index:
- One bitmap per distinct value
- Efficient for low cardinality columns
- Good for data warehousing
- Example: Gender, status columns
5. Clustered Index:
- Determines physical order of data
- Only one per table
- Leaf nodes contain actual data
- Example: MySQL PK is clustered
6. Non-Clustered Index:
- Separate from data
- Contains index key + pointer to data
- Multiple allowed per table
- Extra lookup required
7. Composite Index:
- Multiple columns
- Order matters (leftmost prefix rule)
- Example: INDEX(last_name, first_name)
8. Covering Index:
- Contains all columns needed for query
- No table access required
- "Covering index scan"
Index Selection Considerations:
- Query patterns
- Cardinality
- Write frequency
- Storage cost
- Maintenance overhead
15. Explain the differences between HTTP/1.1, HTTP/2, and HTTP/3.
| Feature | HTTP/1.1 | HTTP/2 | HTTP/3 |
|---|---|---|---|
| Year | 1997 | 2015 | 2022 |
| Transport | TCP | TCP | QUIC (UDP) |
| Multiplexing | No (head-of-line blocking) | Yes | Yes |
| Header Compression | No | HPACK | QPACK |
| Server Push | No | Yes | Yes |
| Binary Protocol | No | Yes | Yes |
| Connection Setup | Multiple TCP | Single TCP | 0-RTT / 1-RTT |
| Security | Optional TLS | Usually TLS 1.2+ | TLS 1.3 mandatory |
HTTP/1.1 Limitations:
- One request per TCP connection (without pipelining)
- Head-of-line blocking
- Multiple TCP connections needed
- Verbose headers repeated
HTTP/2 Improvements:
1. Multiplexing:
- Multiple streams over single TCP connection
- No head-of-line blocking at HTTP layer
2. Binary Framing:
- More efficient parsing
- Smaller messages
3. Header Compression (HPACK):
- Static and dynamic tables
- Reduces header size
4. Server Push:
- Server can send resources proactively
- Example: Push CSS/JS with HTML
5. Stream Prioritization:
- Client can specify importance
HTTP/3 Improvements:
QUIC Protocol:
- Built on UDP
- Connection migration (IP change doesn't drop)
- 0-RTT connection establishment
- Built-in TLS 1.3
Benefits:
- Eliminates TCP head-of-line blocking
- Faster connection establishment
- Better performance on mobile (switching networks)
Adoption:
- HTTP/2: Widely adopted (60%+ websites)
- HTTP/3: Growing adoption (Google, Facebook, Cloudflare)
16. What is the difference between SQL and NoSQL databases?
| Feature | SQL (Relational) | NoSQL (Non-relational) |
|---|---|---|
| Schema | Fixed, predefined | Flexible, dynamic |
| Scaling | Vertical (scale up) | Horizontal (scale out) |
| Data Model | Tables (rows/columns) | Document, key-value, column, graph |
| ACID | Full ACID support | BASE (Basically Available, Soft state, Eventual consistency) |
| Joins | Supported | Generally not supported |
| Best for | Complex queries, transactions | High volume, unstructured data |
| Examples | MySQL, PostgreSQL, Oracle | MongoDB, Cassandra, Redis, Neo4j |
SQL Database Types:
- MySQL: Open source, web applications
- PostgreSQL: Advanced features, extensibility
- Oracle: Enterprise, mission-critical
- SQL Server: Microsoft ecosystem
NoSQL Types:
1. Document Store:
- JSON/BSON documents
- Flexible schema
- Example: MongoDB, CouchDB
2. Key-Value Store:
- Simple hash table
- Ultra-fast lookups
- Example: Redis, DynamoDB, Riak
3. Wide-Column Store:
- Column families
- Massive scale
- Example: Cassandra, HBase
4. Graph Database:
- Nodes and edges
- Relationship-focused
- Example: Neo4j, Amazon Neptune
When to use SQL:
- ACID transactions required
- Complex joins and queries
- Structured data with relationships
- Medium scale
When to use NoSQL:
- Massive scale (Big Data)
- Rapid prototyping (schema evolves)
- Unstructured/semi-structured data
- High write throughput
Polyglot Persistence:
- Using multiple database types
- Each service uses best-fit database
17. Explain RAID levels and their characteristics.
RAID 0 (Striping):
- Data split across disks
- No redundancy
- High performance
- Capacity: Sum of all disks
- Failure: Any disk fails = data lost
- Use: Non-critical data, speed needed
RAID 1 (Mirroring):
- Exact copy on two disks
- High redundancy
- Read performance improved
- Capacity: 50% of total
- Use: Critical data, OS drives
RAID 5 (Striping with Parity):
- Data striped, parity distributed
- Can survive one disk failure
- Good balance of speed and redundancy
- Capacity: (N-1)/N of total
- Write penalty (parity calculation)
- Use: File servers, general purpose
RAID 6 (Striping with Double Parity):
- Two parity blocks
- Can survive two disk failures
- More write overhead than RAID 5
- Capacity: (N-2)/N of total
- Use: Large arrays, critical data
RAID 10 (1+0, Mirrored Stripes):
- Striped array of mirrors
- Can survive multiple failures (if not same mirror)
- Excellent performance and redundancy
- Capacity: 50% of total
- Expensive
- Use: Databases, high-performance applications
Comparison:
| Level | Redundancy | Capacity | Read | Write |
|---|---|---|---|---|
| 0 | None | 100% | Fast | Fast |
| 1 | High | 50% | Fast | Medium |
| 5 | Medium | (N-1)/N | Fast | Slow |
| 6 | High | (N-2)/N | Fast | Slow |
| 10 | High | 50% | Fast | Fast |
18. What is Cache Memory and explain its mapping techniques.
Principle of Locality:
- Temporal: Recently accessed likely accessed again
- Spatial: Nearby addresses likely accessed
Cache Levels:
- L1: On-chip, 32-64KB, 1-4 cycles
- L2: On-chip, 256KB-1MB, 10 cycles
- L3: Shared, 4-64MB, 20-50 cycles
Performance Metrics:
- Hit Rate: Fraction of accesses found in cache
- Miss Rate: 1 - Hit Rate
- Miss Penalty: Time to fetch from lower level
Mapping Techniques:
1. Direct Mapping:
- Each memory block maps to exactly one cache line
- Index = Block address mod Number of cache lines
- Simple, fast, but rigid
- May cause conflicts (thrashing)
2. Fully Associative:
- Block can go anywhere in cache
- All entries searched in parallel
- Flexible, no conflicts
- Expensive (comparators for each entry)
3. Set-Associative (N-way):
- Compromise approach
- Cache divided into sets
- Block maps to set, can be any line within set
- N comparators needed
- Common: 2-way, 4-way, 8-way
Write Policies:
- Write-through: Update cache and memory immediately
- Write-back: Update cache only, write to memory on eviction
Cache Coherency (Multi-core):
- MESI protocol: Modified, Exclusive, Shared, Invalid
- Ensures all cores see consistent data
19. Explain the purpose and working of DNS.
Why DNS:
- Humans remember names, computers use IPs
- Decentralized management
- Scalable
DNS Hierarchy:
Root (.)
├── TLD (.com, .org, .net, .in)
│ ├── Second-level (google.com)
│ │ ├── Subdomain (mail.google.com)
│ │ └── Subdomain (drive.google.com)
DNS Query Types:
1. Recursive Query:
- DNS resolver does all work
- Returns final answer or error
- Clients typically use recursive
2. Iterative Query:
- Server returns best answer it has
- Resolver may need to query more servers
- Used between DNS servers
DNS Resolution Process:
1. Browser checks cache
2. OS checks hosts file, then cache
3. Query to configured DNS resolver
4. Resolver checks cache
5. If not cached:
a. Query Root Server → TLD server address
b. Query TLD Server → Authoritative server address
c. Query Authoritative Server → IP address
6. Return IP to client
7. Cache at each level
Record Types:
| Record | Purpose |
|---|---|
| A | IPv4 address |
| AAAA | IPv6 address |
| CNAME | Canonical name (alias) |
| MX | Mail server |
| NS | Name server |
| TXT | Text (SPF, DKIM) |
| SOA | Start of authority |
| PTR | Reverse DNS |
DNS Caching:
- TTL (Time To Live) controls cache duration
- Reduces query load and latency
20. What is the difference between Monolithic and Microservices Architecture?
| Aspect | Monolithic | Microservices |
|---|---|---|
| Structure | Single unified application | Multiple independent services |
| Deployment | One unit | Independently |
| Scaling | Whole application | Individual services |
| Technology | Single stack | Polyglot (different per service) |
| Complexity | Simpler initially | Higher initially |
| Failure | Whole app down | Graceful degradation |
| Database | Shared | Per-service |
| Communication | In-process | Network (HTTP/gRPC/messaging) |
| Team Structure | Single team | Multiple small teams |
Monolithic Architecture:
Advantages:
- Simple to develop and test
- Easy deployment
- Better performance (no network calls)
- Simple debugging
Disadvantages:
- Hard to scale specific features
- Technology lock-in
- Large codebase maintenance
- Risky deployments
Microservices Architecture:
Advantages:
- Independent scaling
- Technology flexibility
- Fault isolation
- Small, autonomous teams
- Easier to understand services
Disadvantages:
- Network latency
- Data consistency challenges
- Complex deployment
- Distributed system complexity
- Need for DevOps culture
When to use:
- Monolithic: Small team, simple application, rapid prototyping
- Microservices: Large scale, multiple teams, need for scalability
Hybrid Approaches:
- Modular monolith
- Service-oriented architecture (SOA)
- Serverless functions
21. Explain the concept of Load Balancing.
Benefits:
- High availability (failover)
- Scalability (add/remove servers)
- Performance (reduce individual load)
- Maintenance flexibility (drain connections)
Types of Load Balancers:
1. Layer 4 (Transport Layer):
- Based on IP address and port
- Faster, less overhead
- No content inspection
- Example: TCP/UDP load balancing
2. Layer 7 (Application Layer):
- Based on HTTP headers, cookies, URL
- Content-aware routing
- SSL termination
- Example: HTTP routing by path
Load Balancing Algorithms:
1. Round Robin:
- Sequential distribution
- Equal weight to all servers
- Simple, fair
2. Weighted Round Robin:
- Accounts for server capacity
- More powerful servers get more requests
3. Least Connections:
- Sends to server with fewest active connections
- Good for long-lived connections
4. Least Response Time:
- Considers current response time
- Routes to fastest server
5. IP Hash:
- Client IP determines server
- Session persistence
- Same client always to same server
6. Random:
- Simple, distributes evenly over time
Health Checks:
- Periodic checks to detect failures
- Failed servers removed from rotation
- Types: HTTP check, TCP check, custom
Session Persistence (Sticky Sessions):
- Same user to same server
- Cookie-based or IP-based
- Trade-off with load distribution
22. What is Docker and how does it differ from Virtual Machines?
Container: Lightweight, standalone executable package with everything needed to run application.
Docker Architecture:
- Docker Engine: Runtime and daemon
- Docker Images: Read-only templates
- Docker Containers: Running instances
- Docker Registry: Image storage (Docker Hub)
Container vs VM:
| Aspect | Container | Virtual Machine |
|---|---|---|
| OS | Shares host OS kernel | Complete OS per VM |
| Size | MBs | GBs |
| Boot time | Seconds | Minutes |
| Performance | Near native | Some overhead |
| Isolation | Process-level | Hardware-level |
| Density | Hundreds per host | Tens per host |
| Portability | Highly portable | Less portable |
Docker Benefits:
- Consistency: Same environment everywhere
- Isolation: Applications don't interfere
- Efficiency: Less overhead than VMs
- Portability: Runs on any Docker host
- Scalability: Easy to replicate
- Version Control: Image versioning
Dockerfile:
- Instructions to build image
- Layered architecture (caching)
- Example:
FROM node:14
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]
Orchestration:
- Docker Compose: Multi-container apps
- Kubernetes: Container orchestration at scale
23. Explain the CAP Theorem.
C - Consistency:
- All nodes see same data at same time
- Read returns most recent write
- Linearizability
A - Availability:
- Every request receives response
- No guarantee data is most recent
- System remains operational
P - Partition Tolerance:
- System continues despite network partitions
- Messages lost between nodes
- Required for distributed systems
The Trade-off:
CP Systems (Consistency + Partition Tolerance):
- Sacrifice availability during partition
- Example: HBase, MongoDB (configured), Redis Cluster
- Use case: Banking, inventory
AP Systems (Availability + Partition Tolerance):
- Sacrifice consistency during partition
- Example: Cassandra, DynamoDB, CouchDB
- Use case: Social media, analytics
CA Systems (Consistency + Availability):
- Sacrifice partition tolerance
- Single-node systems
- Not truly distributed
- Example: Traditional RDBMS (single node)
PACELC Theorem (Extended CAP):
- If partitioned (P), choose A or C
- Else (E), choose latency (L) or C
Practical Considerations:
- Partitions are rare but must be handled
- Many systems offer tunable consistency
- Eventual consistency common in AP systems
24. What is Blockchain and how does it work?
Key Properties:
- Decentralized: No single point of control
- Immutable: Cannot alter past records
- Transparent: All participants see transactions
- Secure: Cryptographic protection
Structure:
Block Components:
- Data: Transactions
- Hash: Unique fingerprint of block
- Previous Hash: Links to previous block
- Nonce: Number used for mining
- Timestamp
Chain:
- Blocks linked by hashes
- Changing one block changes its hash
- Breaks chain integrity
Consensus Mechanisms:
1. Proof of Work (PoW):
- Miners solve computational puzzle
- First to solve adds block
- Energy intensive (Bitcoin)
2. Proof of Stake (PoS):
- Validators stake cryptocurrency
- Randomly selected to add block
- Energy efficient (Ethereum 2.0)
3. Delegated PoS:
- Token holders vote for delegates
- Delegates validate transactions
Smart Contracts:
- Self-executing code on blockchain
- Automatically enforce agreements
- Ethereum popularized concept
Use Cases:
- Cryptocurrency (Bitcoin, Ethereum)
- Supply chain tracking
- Digital identity
- Voting systems
- Smart contracts
- Cross-border payments
Challenges:
- Scalability (limited TPS)
- Energy consumption (PoW)
- Regulatory uncertainty
- Complexity
25. Explain the difference between Authentication and Authorization.
Authentication Methods:
1. Knowledge:
- Something you know
- Password, PIN, security questions
- Weakest method alone
2. Possession:
- Something you have
- OTP, hardware token, smart card
3. Inherence:
- Something you are
- Fingerprint, face, iris, voice
4. Location:
- Where you are
- GPS, IP address
Multi-Factor Authentication (MFA):
- Combine two+ methods
- Common: Password + OTP
- Significantly improves security
Authentication Protocols:
- Basic Auth: Username:password in header
- Session-based: Server-side session storage
- Token-based: JWT (JSON Web Tokens)
- OAuth 2.0: Third-party authorization
- OpenID Connect: Authentication layer on OAuth
- SAML: Enterprise SSO
Authorization Models:
1. Role-Based Access Control (RBAC):
- Permissions assigned to roles
- Users assigned to roles
- Simple, scalable
2. Attribute-Based Access Control (ABAC):
- Policies based on attributes
- User, resource, environment attributes
- More flexible, complex
3. Access Control Lists (ACL):
- List of permissions per resource
- Fine-grained but hard to manage
JWT Structure:
- Header: Algorithm, token type
- Payload: Claims (user data, expiry)
- Signature: Verification
Flow:
- Authenticate → Receive token
- Send token with each request
- Server validates token
- Check authorization
- Allow/deny access
Company-wise Question Mapping
| Company | Favorite CS Topics | Difficulty Level |
|---|---|---|
| Algorithms, System Design | Very High | |
| Amazon | Data Structures, OOD | High |
| Microsoft | Problem solving, Coding | High |
| Apple | Algorithms, OS, Low-level | Very High |
| Meta | System Design, Algorithms | Very High |
| Netflix | Distributed Systems | Very High |
| Uber | System Design, Algorithms | High |
| Adobe | Algorithms, Product sense | High |
| Oracle | DBMS, Java, SQL | Medium-High |
| IBM | Enterprise systems | Medium-High |
Tips for CSE Students
Technical Preparation
- Data Structures: Arrays, Trees, Graphs, Heaps - master all
- Algorithms: Sorting, searching, dynamic programming, greedy
- System Design: Scalable architecture for experienced hires
- OS Concepts: Memory, processes, synchronization
- DBMS: SQL mastery, normalization, indexing
Coding Practice
- LeetCode: 200+ problems (Easy/Medium focus)
- Company-tagged questions
- Mock interviews
- Time yourself
System Design (For experienced)
- Design patterns
- Scalability concepts
- Database design
- Caching strategies
- Message queues
Frequently Asked Questions (FAQs)
Q1: Do I need to know competitive programming for product company placements?
A: Helpful but not mandatory. Strong problem-solving is essential, which CP develops. Focus on data structures and algorithms. LeetCode Medium-level proficiency is generally sufficient. Some companies (Google, Meta) have higher bars.
Q2: How important is system design for freshers?
A: Usually not asked for freshers. Focus on DSA, OS, DBMS, networks. System design becomes important for 2+ years experience. However, basic understanding of scalability and design patterns is beneficial.
Q3: Should I specialize in frontend, backend, or full-stack?
A: For campus placements, being versatile helps. Backend roles are most common. Full-stack gives flexibility. Specialize based on interest after joining. Core CS fundamentals matter more than specific tech stack.
Q4: Which programming language should I use for interviews?
A: Use what you're most comfortable with. Python is concise and popular. Java/C++ are also widely accepted. Know your chosen language deeply - standard libraries, time complexity of operations.
Q5: How to prepare for HR/behavioral rounds at tech companies?
A: Use STAR method (Situation, Task, Action, Result). Prepare stories about: teamwork, conflict resolution, failure and learning, leadership. Research company values. Have questions ready for interviewers. Practice with mock interviews.
Best of luck with your Computer Science placements 2026!
Explore this topic cluster
More resources in Interview Questions
Use the category hub to browse similar questions, exam patterns, salary guides, and preparation resources related to this topic.