SALIENT FEATURES OF BOOK
Provides insight into what drives the recruitment process and what an interviewer looks for while interviewing an engineering student
Covers concepts, problems, and interview questions for each topic
Covers latest buzzwords like Cloud Computing, Virtualization, Big Data, and many more
All the concepts are discussed in a lucid, easy to understand manner
A reader without any basic knowledge in computers can comfortably follow this book
Coders/Programmers are in demand, but to land the job, you must demonstrate knowledge of those things expected by today's employers. This guide sets you up for success. Not only does it provide the most commonly asked interview questions and answers, but it also offers insight into the interview process in today's marketplace. This book is a comprehensive guide for experienced and first-time programmers alike.
The book is specifically designed for freshers, who despite being brilliant at the technical aspects of the interview, tend to fail when it comes to soft skills and HR interviews. The book provides readers with a relevant blueprint when it comes to planning for pre-interview preparation. It provides candidates with guidelines on the preparation of their resumes and the format that should be followed.
Table of Contents
Organization of Chapters 17
Getting Ready 22
Group Discussions 37
Operating System Concepts 54
C/C++/Java Interview Questions 81
Scripting Languages 157
Bitwise Hacking 194
Concepts of Computer Networking 203
Database Management Systems 256
Brain Teasers 271
Algorithms Introduction 274
Recursion and Backtracking 285
Linked Lists 290
Stacks 322
Queues 336
Trees 345
Priority Queues and Heaps 397
Graph Algorithms 407
Sorting 417
Searching 441
Hashing 466
String Algorithms 473
Algorithms Design Techniques 479
Greedy Algorithms 482
Divide and Conquer Algorithms 486
Dynamic Programming 489
Basics of Design Patterns 496
Non-Technical Help 505
Quantitative Aptitude Concepts 511
Basics of Cloud Computing 524
Miscellaneous Concepts 539
Career Options 559
This document discusses type casting in Java. It explains that casting can be widening or narrowing. Widening casting converts a primitive type to a larger type and is safe, while narrowing casting converts to a smaller type and can lose data, requiring an explicit cast. It also discusses casting between classes, which is possible if they are related by inheritance, and how casting allows generalization to a super class or specialization to a subclass.
This document discusses error detection and correction techniques used in computer networks. It describes several methods:
- Vertical redundancy check (VRC or parity check) which detects single-bit errors by adding an extra parity bit to each data unit.
- Longitudinal redundancy check (LRC) which calculates parity bits for each column in a data block.
- Cyclic redundancy check (CRC) which uses binary division to generate a CRC remainder that is appended to the data.
- Checksum which calculates a sum of all data bits and appends the one's complement as a checksum. These methods allow detection of errors during data transmission.
The document provides an overview and instructions for installing and using the Damn Vulnerable Web Application (DVWA). DVWA is a PHP/MySQL web application designed to be vulnerable for testing security skills. It contains vulnerabilities like SQL injection, XSS, file inclusion, and more. The document outlines how to install DVWA using XAMPP, describes the different security levels and vulnerabilities, and provides instructions for accessing the vulnerabilities and practicing attacks. It emphasizes that DVWA should only be used on localhost for legal and safe security testing.
Critical section problem in operating system.MOHIT DADU
The critical section problem refers to ensuring that at most one process can execute its critical section, a code segment that accesses shared resources, at any given time. There are three requirements for a correct solution: mutual exclusion, meaning no two processes can be in their critical section simultaneously; progress, ensuring a process can enter its critical section if it wants; and bounded waiting, placing a limit on how long a process may wait to enter the critical section. Early attempts to solve this using flags or a turn variable were incorrect as they did not guarantee all three requirements.
This document discusses decision trees and the ID3 algorithm for generating decision trees. It explains that a decision tree classifies examples based on their attributes through a series of questions or rules. The ID3 algorithm uses information gain to choose the most informative attributes to split on at each node, resulting in a tree that maximizes classification accuracy. Some drawbacks of decision trees are that they can only handle nominal attributes and may not be robust to noisy data.
This document presents an overview of process synchronization techniques. It discusses the critical section problem and provides solutions like Peterson's algorithm and semaphores. Classical synchronization problems like the bounded buffer, readers-writers, and dining philosophers problems are explained. The document also covers concepts like deadlock, starvation, and monitors. The objectives are to introduce software and hardware solutions for shared data consistency and describe mechanisms for ensuring atomic transactions.
Principles of soft computing-Associative memory networksSivagowry Shathesh
The document discusses various types of associative memory networks including auto-associative, hetero-associative, bidirectional associative memory (BAM), and Hopfield networks. It describes the architecture, training algorithms, and testing procedures for each type of network. The key points are: Auto-associative networks store and recall patterns using the same input and output vectors, while hetero-associative networks use different input and output vectors. BAM networks perform bidirectional retrieval of patterns. Hopfield networks are auto-associative single-layer recurrent networks that can converge to stable states representing stored patterns. Hebbian learning and energy functions are important concepts in analyzing the storage and recall capabilities of these associative memory networks.
Deadlocks occur when processes are waiting for resources held by other processes, resulting in a circular wait. Four conditions must be met: mutual exclusion, hold and wait, no preemption, and circular wait. Deadlocks can be handled through avoidance, prevention, or detection and recovery. Avoidance algorithms allocate resources only if it ensures the system remains in a safe state where deadlocks cannot occur. Prevention methods make deadlocks impossible by ensuring at least one condition is never satisfied, such as through collective or ordered resource requests. Detection finds existing deadlocks by analyzing resource allocation graphs or wait-for graphs to detect cycles.
This document discusses type casting in Java. It explains that casting can be widening or narrowing. Widening casting converts a primitive type to a larger type and is safe, while narrowing casting converts to a smaller type and can lose data, requiring an explicit cast. It also discusses casting between classes, which is possible if they are related by inheritance, and how casting allows generalization to a super class or specialization to a subclass.
This document discusses error detection and correction techniques used in computer networks. It describes several methods:
- Vertical redundancy check (VRC or parity check) which detects single-bit errors by adding an extra parity bit to each data unit.
- Longitudinal redundancy check (LRC) which calculates parity bits for each column in a data block.
- Cyclic redundancy check (CRC) which uses binary division to generate a CRC remainder that is appended to the data.
- Checksum which calculates a sum of all data bits and appends the one's complement as a checksum. These methods allow detection of errors during data transmission.
The document provides an overview and instructions for installing and using the Damn Vulnerable Web Application (DVWA). DVWA is a PHP/MySQL web application designed to be vulnerable for testing security skills. It contains vulnerabilities like SQL injection, XSS, file inclusion, and more. The document outlines how to install DVWA using XAMPP, describes the different security levels and vulnerabilities, and provides instructions for accessing the vulnerabilities and practicing attacks. It emphasizes that DVWA should only be used on localhost for legal and safe security testing.
Critical section problem in operating system.MOHIT DADU
The critical section problem refers to ensuring that at most one process can execute its critical section, a code segment that accesses shared resources, at any given time. There are three requirements for a correct solution: mutual exclusion, meaning no two processes can be in their critical section simultaneously; progress, ensuring a process can enter its critical section if it wants; and bounded waiting, placing a limit on how long a process may wait to enter the critical section. Early attempts to solve this using flags or a turn variable were incorrect as they did not guarantee all three requirements.
This document discusses decision trees and the ID3 algorithm for generating decision trees. It explains that a decision tree classifies examples based on their attributes through a series of questions or rules. The ID3 algorithm uses information gain to choose the most informative attributes to split on at each node, resulting in a tree that maximizes classification accuracy. Some drawbacks of decision trees are that they can only handle nominal attributes and may not be robust to noisy data.
This document presents an overview of process synchronization techniques. It discusses the critical section problem and provides solutions like Peterson's algorithm and semaphores. Classical synchronization problems like the bounded buffer, readers-writers, and dining philosophers problems are explained. The document also covers concepts like deadlock, starvation, and monitors. The objectives are to introduce software and hardware solutions for shared data consistency and describe mechanisms for ensuring atomic transactions.
Principles of soft computing-Associative memory networksSivagowry Shathesh
The document discusses various types of associative memory networks including auto-associative, hetero-associative, bidirectional associative memory (BAM), and Hopfield networks. It describes the architecture, training algorithms, and testing procedures for each type of network. The key points are: Auto-associative networks store and recall patterns using the same input and output vectors, while hetero-associative networks use different input and output vectors. BAM networks perform bidirectional retrieval of patterns. Hopfield networks are auto-associative single-layer recurrent networks that can converge to stable states representing stored patterns. Hebbian learning and energy functions are important concepts in analyzing the storage and recall capabilities of these associative memory networks.
Deadlocks occur when processes are waiting for resources held by other processes, resulting in a circular wait. Four conditions must be met: mutual exclusion, hold and wait, no preemption, and circular wait. Deadlocks can be handled through avoidance, prevention, or detection and recovery. Avoidance algorithms allocate resources only if it ensures the system remains in a safe state where deadlocks cannot occur. Prevention methods make deadlocks impossible by ensuring at least one condition is never satisfied, such as through collective or ordered resource requests. Detection finds existing deadlocks by analyzing resource allocation graphs or wait-for graphs to detect cycles.
Binomial queues allow merging of heaps in O(log N) time rather than the usual O(N) time for binary heaps. They use a forest of binomial trees where each tree is used 0 or 1 times. To merge two binomial queues, the corresponding binomial trees are combined level by level. Insertion takes O(log N) time by merging the new node as its own queue. Deletion of the minimum takes O(log N) time by removing the smallest tree and merging its children.
En français - Stay tuned for English
There are more and more opportunities to have a human having to exchange a file with an application.
To deal with that requirement, it is possible to plug on the Axway file transfer service a portal that allow straight integration of a file uploaded by a person within an application.
The document discusses various search strategies for solving problems like the 8-puzzle game. It defines key concepts like search, state space graphs, search trees, step costs, path costs, and solutions. It explains uninformed and informed search strategies. Specifically it covers breadth-first search, uniform-cost search, and depth-first search algorithms. It provides examples of applying these algorithms to sample state space graphs and discusses their time and space complexities.
- Bayesian networks can model conditional independencies between variables based on the network structure. Each variable is conditionally independent of its non-descendants given its parents.
- The d-separation algorithm allows determining if two variables are conditionally independent given some evidence by checking if all paths between them are "blocked".
- For trees/forests where each node has at most one parent, inference can be done efficiently in linear time by decomposing probabilities and passing messages between nodes.
The document discusses Java event handling and various listener interfaces. It describes the delegation event model where an event source generates an event and sends it to registered listeners. It outlines common listener interfaces like ActionListener, ItemListener, KeyListener, MouseListener, and WindowListener. It provides details on the methods in each interface and how to write classes that implement the listener interfaces.
This document provides an overview of Chapter 14 on probabilistic reasoning and Bayesian networks from an artificial intelligence textbook. It introduces Bayesian networks as a way to represent knowledge over uncertain domains using directed graphs. Each node corresponds to a variable and arrows represent conditional dependencies between variables. The document explains how Bayesian networks can encode a joint probability distribution and represent conditional independence relationships. It also discusses techniques for efficiently representing conditional distributions in Bayesian networks, including noisy logical relationships and continuous variables. The chapter covers exact and approximate inference methods for Bayesian networks.
Here I have discussed models of parallel systems, criteria for Parallel programming model, computations in parallel programming, Parallelization of programms, levels of parallelism, parallelism in those levels, Static Scheduling, Dynamic Scheduling, explicit and implicit representation of parallelism ect
Peephole optimization techniques in compiler designAnul Chaudhary
This document discusses various compiler optimization techniques, focusing on peephole optimization. It defines optimization as transforming code to run faster or use less memory without changing functionality. Optimization can be machine-independent, transforming code regardless of hardware, or machine-dependent, tailored to a specific architecture. Peephole optimization examines small blocks of code and replaces them with faster or smaller equivalents using techniques like constant folding, strength reduction, null sequence elimination, and algebraic laws. Common replacement rules aim to improve performance, reduce memory usage, and decrease code size.
Three main types of machine learning are supervised learning, unsupervised learning, and reinforcement learning. Supervised learning involves training a model using labeled input/output data where the desired outputs are provided, allowing the model to map inputs to outputs. Unsupervised learning involves discovering hidden patterns in unlabeled data and grouping similar data points together. Reinforcement learning involves an agent learning through trial-and-error interactions with a dynamic environment by receiving rewards or punishments for actions.
1. There are two main ways to handle input-output in C - formatted functions like printf() and scanf() which require format specifiers, and unformatted functions like getchar() and putchar() which work only with characters.
2. Formatted functions allow formatting of different data types like integers, floats, and strings. Unformatted functions only work with characters.
3. Common formatted functions include printf() for output and scanf() for input. printf() outputs data according to format specifiers, while scanf() reads input and stores it in variables based on specifiers.
The document discusses different notation styles for representing arithmetic expressions, including infix, prefix, and postfix notations. It provides examples of converting expressions between these notations. Infix notation is the conventional style that humans use, but prefix and postfix notations are better suited for computer parsing. The document also covers parsing expressions, operator precedence, and the steps to convert between infix and prefix and infix and postfix notations.
The document discusses EvilTwin attacks on WiFi networks and potential countermeasures. It begins with an agenda that includes WiFi security evolution, how systems communicate over WiFi, threats in hotspots, EvilTwin attacks, and countermeasures. It then provides technical details on packet sniffing and injection tools that can be used to carry out EvilTwin attacks. The document describes how an attacker can set up an EvilTwin access point, intercept traffic, redirect internet access, and potentially steal information or carry out further attacks on connected devices. It concludes with recommendations for client-side protections like regularly checking and verifying WiFi profiles and keeping devices updated.
This document provides an overview of server-side web programming. It discusses how web servers deliver static and dynamic web pages using technologies like HTML, CSS, JavaScript, Java, PHP, and databases. It then covers common web servers like Apache and IIS. The main server-side technologies - CGI, servlets, and PHP - are explained. Servlets are Java classes that extend server capabilities, while PHP is a scripting language designed for web development. Examples are given to demonstrate basic servlets and PHP scripts. The document also mentions modifying configuration files, handling GET/POST requests, and returning JSON/XML data.
Deadlock detection and recovery by saad symbiansaad symbian
1) Deadlock occurs when there is a cycle of processes where each process is waiting for a resource held by the next process in the cycle.
2) Solutions to deadlock include prevention, avoidance, detection and recovery. Prevention ensures deadlock is impossible through restrictions. Avoidance uses scheduling to steer around deadlock. Detection checks for cycles periodically and recovery kills processes or rolls them back to release resources.
3) Deadlock recovery options include killing all deadlocked processes, killing one at a time to release resources, or rolling processes back to a prior safe state instead of killing them. The process to kill or roll back is chosen based on factors like priority, resources used, and amount of work.
The document discusses solutions to the critical section problem where multiple processes need exclusive access to shared resources. It defines the critical section problem and requirements for a solution. It then presents three algorithms using shared variables to coordinate access between two processes in a way that satisfies mutual exclusion, progress, and bounded waiting.
The document discusses concurrency in operating systems. It notes that operating systems must manage multiple concurrent processes through techniques like multiprogramming and multiprocessing. This introduces challenges around sharing resources and non-deterministic execution orders. It provides examples of race conditions that can occur without proper synchronization and discusses requirements for implementing mutual exclusion like critical sections to avoid issues like deadlock and starvation.
The document discusses seven touchpoints for building security into software systems. The touchpoints are ordered from most to least effective and include code review, architectural risk analysis, penetration testing, risk-based security testing, abuse cases, security requirements, and security operations. Conducting code reviews alone can find around 50% of security issues, so a comprehensive approach using multiple touchpoints is recommended to holistically address security risks.
The inference engine applies logical rules to facts in the knowledge base to infer new information. It uses two approaches:
- Forward chaining starts with known facts and fires rules until reaching the goal, applying rules in a bottom-up manner.
- Backward chaining starts with the goal and works backwards through rules to find supporting facts, taking a top-down approach.
Both are illustrated using examples of determining an animal's color. Forward chaining applies rules to known facts about an animal to conclude its color, while backward chaining starts with the color goal and applies rules in reverse to find facts proving the goal.
The document provides an overview of key concepts in C++, including:
1) C++ adds object-oriented programming capabilities to C while maintaining C's power and flexibility. It was created in 1979 to provide object-oriented programming features to C.
2) Object-oriented programming encourages breaking problems into constituent parts called objects that contain related instructions and data. The three main traits of OOP are encapsulation, polymorphism, and inheritance.
3) C++ supports both traditional and modern styles, with newer headers placed in the std namespace. Keywords like class, public, and virtual allow defining classes and controlling access to members. Functions can be overloaded if their signatures differ.
This document is the preface to a book titled "Data Structures and Algorithms Made Easy" by Narasimha Karumanchi. It introduces the purpose and structure of the book. The book aims to help readers prepare for interviews and exams by focusing on solving problems of varying complexities for each data structures topic. It contains over 700 algorithm problems and their solutions. The preface recommends reading the entire book to fully understand the topics, and provides information on how to contact the author with any corrections or suggestions.
This document is the preface to a book titled "Data Structures and Algorithms Made Easy" by Narasimha Karumanchi. It introduces the objective of the book, which is to provide solutions to algorithmic problems with different complexities rather than focus on theorems and proofs. The book contains approximately 700 problems covering topics relevant for competitive exams and interviews. For each problem, multiple solutions with varying complexities are provided to illustrate different approaches. The preface recommends reading the entire book to gain a full understanding of the topics covered. It also notes that while efforts were made to correct errors, readers should check the author's website for any updates or corrections.
Binomial queues allow merging of heaps in O(log N) time rather than the usual O(N) time for binary heaps. They use a forest of binomial trees where each tree is used 0 or 1 times. To merge two binomial queues, the corresponding binomial trees are combined level by level. Insertion takes O(log N) time by merging the new node as its own queue. Deletion of the minimum takes O(log N) time by removing the smallest tree and merging its children.
En français - Stay tuned for English
There are more and more opportunities to have a human having to exchange a file with an application.
To deal with that requirement, it is possible to plug on the Axway file transfer service a portal that allow straight integration of a file uploaded by a person within an application.
The document discusses various search strategies for solving problems like the 8-puzzle game. It defines key concepts like search, state space graphs, search trees, step costs, path costs, and solutions. It explains uninformed and informed search strategies. Specifically it covers breadth-first search, uniform-cost search, and depth-first search algorithms. It provides examples of applying these algorithms to sample state space graphs and discusses their time and space complexities.
- Bayesian networks can model conditional independencies between variables based on the network structure. Each variable is conditionally independent of its non-descendants given its parents.
- The d-separation algorithm allows determining if two variables are conditionally independent given some evidence by checking if all paths between them are "blocked".
- For trees/forests where each node has at most one parent, inference can be done efficiently in linear time by decomposing probabilities and passing messages between nodes.
The document discusses Java event handling and various listener interfaces. It describes the delegation event model where an event source generates an event and sends it to registered listeners. It outlines common listener interfaces like ActionListener, ItemListener, KeyListener, MouseListener, and WindowListener. It provides details on the methods in each interface and how to write classes that implement the listener interfaces.
This document provides an overview of Chapter 14 on probabilistic reasoning and Bayesian networks from an artificial intelligence textbook. It introduces Bayesian networks as a way to represent knowledge over uncertain domains using directed graphs. Each node corresponds to a variable and arrows represent conditional dependencies between variables. The document explains how Bayesian networks can encode a joint probability distribution and represent conditional independence relationships. It also discusses techniques for efficiently representing conditional distributions in Bayesian networks, including noisy logical relationships and continuous variables. The chapter covers exact and approximate inference methods for Bayesian networks.
Here I have discussed models of parallel systems, criteria for Parallel programming model, computations in parallel programming, Parallelization of programms, levels of parallelism, parallelism in those levels, Static Scheduling, Dynamic Scheduling, explicit and implicit representation of parallelism ect
Peephole optimization techniques in compiler designAnul Chaudhary
This document discusses various compiler optimization techniques, focusing on peephole optimization. It defines optimization as transforming code to run faster or use less memory without changing functionality. Optimization can be machine-independent, transforming code regardless of hardware, or machine-dependent, tailored to a specific architecture. Peephole optimization examines small blocks of code and replaces them with faster or smaller equivalents using techniques like constant folding, strength reduction, null sequence elimination, and algebraic laws. Common replacement rules aim to improve performance, reduce memory usage, and decrease code size.
Three main types of machine learning are supervised learning, unsupervised learning, and reinforcement learning. Supervised learning involves training a model using labeled input/output data where the desired outputs are provided, allowing the model to map inputs to outputs. Unsupervised learning involves discovering hidden patterns in unlabeled data and grouping similar data points together. Reinforcement learning involves an agent learning through trial-and-error interactions with a dynamic environment by receiving rewards or punishments for actions.
1. There are two main ways to handle input-output in C - formatted functions like printf() and scanf() which require format specifiers, and unformatted functions like getchar() and putchar() which work only with characters.
2. Formatted functions allow formatting of different data types like integers, floats, and strings. Unformatted functions only work with characters.
3. Common formatted functions include printf() for output and scanf() for input. printf() outputs data according to format specifiers, while scanf() reads input and stores it in variables based on specifiers.
The document discusses different notation styles for representing arithmetic expressions, including infix, prefix, and postfix notations. It provides examples of converting expressions between these notations. Infix notation is the conventional style that humans use, but prefix and postfix notations are better suited for computer parsing. The document also covers parsing expressions, operator precedence, and the steps to convert between infix and prefix and infix and postfix notations.
The document discusses EvilTwin attacks on WiFi networks and potential countermeasures. It begins with an agenda that includes WiFi security evolution, how systems communicate over WiFi, threats in hotspots, EvilTwin attacks, and countermeasures. It then provides technical details on packet sniffing and injection tools that can be used to carry out EvilTwin attacks. The document describes how an attacker can set up an EvilTwin access point, intercept traffic, redirect internet access, and potentially steal information or carry out further attacks on connected devices. It concludes with recommendations for client-side protections like regularly checking and verifying WiFi profiles and keeping devices updated.
This document provides an overview of server-side web programming. It discusses how web servers deliver static and dynamic web pages using technologies like HTML, CSS, JavaScript, Java, PHP, and databases. It then covers common web servers like Apache and IIS. The main server-side technologies - CGI, servlets, and PHP - are explained. Servlets are Java classes that extend server capabilities, while PHP is a scripting language designed for web development. Examples are given to demonstrate basic servlets and PHP scripts. The document also mentions modifying configuration files, handling GET/POST requests, and returning JSON/XML data.
Deadlock detection and recovery by saad symbiansaad symbian
1) Deadlock occurs when there is a cycle of processes where each process is waiting for a resource held by the next process in the cycle.
2) Solutions to deadlock include prevention, avoidance, detection and recovery. Prevention ensures deadlock is impossible through restrictions. Avoidance uses scheduling to steer around deadlock. Detection checks for cycles periodically and recovery kills processes or rolls them back to release resources.
3) Deadlock recovery options include killing all deadlocked processes, killing one at a time to release resources, or rolling processes back to a prior safe state instead of killing them. The process to kill or roll back is chosen based on factors like priority, resources used, and amount of work.
The document discusses solutions to the critical section problem where multiple processes need exclusive access to shared resources. It defines the critical section problem and requirements for a solution. It then presents three algorithms using shared variables to coordinate access between two processes in a way that satisfies mutual exclusion, progress, and bounded waiting.
The document discusses concurrency in operating systems. It notes that operating systems must manage multiple concurrent processes through techniques like multiprogramming and multiprocessing. This introduces challenges around sharing resources and non-deterministic execution orders. It provides examples of race conditions that can occur without proper synchronization and discusses requirements for implementing mutual exclusion like critical sections to avoid issues like deadlock and starvation.
The document discusses seven touchpoints for building security into software systems. The touchpoints are ordered from most to least effective and include code review, architectural risk analysis, penetration testing, risk-based security testing, abuse cases, security requirements, and security operations. Conducting code reviews alone can find around 50% of security issues, so a comprehensive approach using multiple touchpoints is recommended to holistically address security risks.
The inference engine applies logical rules to facts in the knowledge base to infer new information. It uses two approaches:
- Forward chaining starts with known facts and fires rules until reaching the goal, applying rules in a bottom-up manner.
- Backward chaining starts with the goal and works backwards through rules to find supporting facts, taking a top-down approach.
Both are illustrated using examples of determining an animal's color. Forward chaining applies rules to known facts about an animal to conclude its color, while backward chaining starts with the color goal and applies rules in reverse to find facts proving the goal.
The document provides an overview of key concepts in C++, including:
1) C++ adds object-oriented programming capabilities to C while maintaining C's power and flexibility. It was created in 1979 to provide object-oriented programming features to C.
2) Object-oriented programming encourages breaking problems into constituent parts called objects that contain related instructions and data. The three main traits of OOP are encapsulation, polymorphism, and inheritance.
3) C++ supports both traditional and modern styles, with newer headers placed in the std namespace. Keywords like class, public, and virtual allow defining classes and controlling access to members. Functions can be overloaded if their signatures differ.
This document is the preface to a book titled "Data Structures and Algorithms Made Easy" by Narasimha Karumanchi. It introduces the purpose and structure of the book. The book aims to help readers prepare for interviews and exams by focusing on solving problems of varying complexities for each data structures topic. It contains over 700 algorithm problems and their solutions. The preface recommends reading the entire book to fully understand the topics, and provides information on how to contact the author with any corrections or suggestions.
This document is the preface to a book titled "Data Structures and Algorithms Made Easy" by Narasimha Karumanchi. It introduces the objective of the book, which is to provide solutions to algorithmic problems with different complexities rather than focus on theorems and proofs. The book contains approximately 700 problems covering topics relevant for competitive exams and interviews. For each problem, multiple solutions with varying complexities are provided to illustrate different approaches. The preface recommends reading the entire book to gain a full understanding of the topics covered. It also notes that while efforts were made to correct errors, readers should check the author's website for any updates or corrections.
Table of contents [data structure and algorithmic thinking with python]CareerMonk Publications
This document is the preface of a book on data structures and algorithms by Narasimha Karumanchi. It introduces the book's objectives of helping readers learn fundamental data structures and algorithms through practice problems of varying complexities. The preface emphasizes understanding problem-solving over theory and encourages readers to think of multiple solutions to problems. It also acknowledges those who helped with the book's creation and provides an overview of the book's organization into chapters covering topics like recursion, linked lists, trees and sorting algorithms.
Sample chapters [data structure and algorithmic thinking with python]CareerMonk Publications
This document is the preface of a book on data structures and algorithms by Narasimha Karumanchi. It introduces the book's purpose of helping beginners learn fundamental data structures and algorithms concepts through practice problems of varying complexities. The preface emphasizes understanding problem-solving over theory and encourages readers to think of multiple solutions to problems. It also acknowledges those who helped with the book's creation and provides an overview of the book's organization into chapters covering topics like recursion, linked lists, trees and sorting algorithms.
Elements of Computer Networking: An Integrated Approach (Concepts, Problems a...CareerMonk Publications
Salient Features of Book:
All the concepts are discussed in a lucid, easy to understand manner.
A reader without any basic knowledge in computers can comfortably follow this book.
Helps to build logic in the students which becomes stepping stone for understanding computer networking protocols.
Interview questions collected from the actual interviews of various Software companies (and past compititive examinations like GATE) will help the students to be successful in their campus interviews.
Hundreds of solved problems help the students of various universities do well in their examinations like B.C.A, B.Sc, M.Sc, M.C.A, B.E, B.Tech, M.Tech, etc.
Works like a handy reference to the Software professionals.
Table of Contents (Chapters):
1) Organization of Chapters
2) Introduction
3) Networking Devices
4) OSI and TCP/IP Models
5) LAN Technologies
6) ARP and RARP
7) IP Addressing
8) Network Routing
9) TCP and UDP
10) TCP Error Control
11 )TCP Flow Control
12) TCP Congestion Control
13) Session layer
14) Presentation layer
15) Network Security
16) Application Layer Protocols
17) Miscellaneous Concepts
The document discusses using technology to promote higher-order thinking in students. It suggests asking open-ended questions to encourage creative problem solving rather than fact memorization. Specific strategies mentioned include project-based learning, using different modes of expression, and creating student-centered stories to make learning meaningful.
Myself Essay For Girl In English Short Essay On MMariana Arnold
Rama and Jesus are compared and contrasted in their religious beliefs and paths of righteousness. Both honored their fathers and resisted temptations. A key difference is that Jesus had to die to save humanity from sins, while Rama brought righteousness through following his dharma or moral law completely. Rama was devoted to dharma and could not deviate from it, even when forced to live in exile in the forest for 14 years. Both men had to save their kingdoms from evil forces.
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...PsychoTech Services
Study smart! The most important topics for your IGNOU exam are in this document.
We analyzed the examination pattern for IGNOU’s PGDCFT and MSCCFT courses – taking into account every single question of every exam of every single subject to generate these very useful, high-quality insights. Forget about 10 years papers – study smart using FIHC’s IGNOU Exam Question Pattern!
I kept a learning diary for my entrepreneurship class studies at Tallinn University of Technology. Here is my reflections about entrepreneurship. Enjoy reading!
Tips on answering cv based interview questions [ https://learningpundits.com/module-view/2-cv-based-interview-questions/1-tips-for-answering-cv-based-interview-questions/ ]. LearningPundits helps Job Seekers make great CVs [ https://learningpundits.com/module-view/1-cv-preparation-for-freshers/1-cv-writing-tips-for-freshers/ ] , master English Grammar and Vocabulary [ https://learningpundits.com/course/4-english-grammar/ ] , ace Aptitude Tests [ https://learningpundits.com/course/11-mathematical-aptitude/ ], speak fluently in a Group Discussion [ https://learningpundits.com/module-view/6-group-discussion-questions/1-tips-for-speaking-in-a-group-discussion/ ] and perform well in Interviews [ https://learningpundits.com/course/2-personal-interview/ ] We also conduct weekly online contests on Aptitude and English [ https://learningpundits.com/contest ]. We also allow Job Seekers to apply for Jobs [ https://learningpundits.com/applyForJobs ]
AI as a career skill.MCU AI conference slides.may 11.2024.pptxNigel Daly
This presentation paper reported the findings from interviews and assignments from 4 students who extensively used Gen AI in a 5.5-month ESP program. One of these students was followed up with another interview 6 months later, after getting a job and continuing to use Gen AI over 20 hours a week.
The document discusses ideas for a student approaching graduation to gain job skills. It provides numerous solutions including internships, projects, extracurricular activities, and technical skills. The most practical idea is to get a campus job at a large, fast-growing company for opportunities to learn. A disruptive idea is to start one's own company to prove talents and help the economy. The favorite idea is to join a startup for experience building a company from the ground up and substantial long term gains.
The document is a report on laptop and PC use habits among students at American International University Bangladesh (AIUB). It begins with an introduction letter and preface, then provides background on laptop history in Bangladesh and AIUB students. The report details a survey conducted on AIUB students to understand their laptop and PC usage patterns for academic and other purposes. Graphs and pie charts are used to analyze the survey data and show most students use laptops/PCs daily, especially for tasks like writing assignments, accessing online materials, and entertainment. The conclusion is that laptop/PC use has become an important part of academic culture at AIUB and helps students gain computer skills valued by employers.
"Peeling Design Patterns: For Beginners and Interviews" by Narasimha Karumanchi and Prof. Sreenivasa Rao Meda is a book that presents design patterns in simple and straightforward manner with a clear-cut explanation. This book will provide an introduction to the basics and covers many real-time design interview questions. It comes handy as an interview and exam guide for computer scientists.
Salient Features of Book:
Readers without any background in software design will be able to understand it easily and completely.
Presents the concepts of design patterns in simple and straightforward manner with a clear-cut explanation.
After reading the book, readers will be in a position to come up with better designs than before and participate in design discussions which happen in their daily office work.
The book provides enough real-time examples so that readers get better understanding of the design patterns and also useful for the interviews. We mean, the book should cover design interview questions.
Table of Contents:
Introduction
UML Basics
Design Patterns Introduction
Creational Patterns
Structural Patterns
Behavioral Patterns
Glossary and Tips
Design Interview Questions
Miscellaneous Concepts
This book provides an introduction to design patterns, which are common solutions to recurring problems in software design. The book aims to help readers learn design patterns to improve their skills and prepare for interviews. It covers fundamental design pattern concepts, categorizes patterns, and explains each pattern with examples. In addition, it includes tips, UML basics, and common design interview questions. The book recommends multiple readings to fully understand patterns and how they can be applied.
The document contains a cover letter worksheet for a job applicant to complete. The worksheet asks the applicant to identify their unique strengths, how their talents match the employer's needs, relevant job experiences and accomplishments, examples of desirable qualities, relevant coursework and skills learned, and campus involvement. The worksheet is then used to draft a complete cover letter for a software engineering position, addressing the applicant's background, interest in the company, relevant experiences, and availability for an interview. Cover letter worksheets are considered important as they help applicants objectively assess their qualifications and identify inconsistencies to improve their application materials.
The document is a cover letter worksheet completed by an applicant named Seiya Hoshi. The worksheet asks the applicant to identify their unique strengths, which include being positive with Java, C, hardware, and software skills and having both English and Japanese language abilities. When asked about past experiences, the applicant notes accomplishments working with foreigners and never giving up. From completing the worksheet, the applicant then writes a complete cover letter applying for a job posted on graduate-jobs.com by IBM, highlighting their relevant education, skills, and experiences.
The document discusses opportunities for user experience (UX) design to impact the future of learning using new technologies. It notes that students now learn using mobile phones, Google, Wikipedia, online courses, and social media rather than traditional textbooks. The author argues that UX design could help gather learning materials, enable practice in realistic settings, support test preparation, and track student behaviors and outcomes to improve education. Major opportunities exist to provide customized learning services and apply UX principles to the main tasks of gathering information, practicing skills, and assessing understanding.
Learning for digital natives by Lukas Ritzel, SwitzerlandLukas Ritzel
Talk at 4th GERA conference at Khalsa College of Education, Amritsar in November, 2015 on the theme "EDUCATION: WITHIN AND BEYOND THE CLASSROOM" by Honorary Member - 1 Lukas O Ritzel, Accenture, Guest Professor with HWZ, Grenoble Graduate School of Business, Harvard, Speaker TEDx, Lucerne http://thegera.in/
With help of some 3 brightest young India professionals which I am proud to know and call friends > Shweta, Gautam & Kaushal
This document outlines the topics that will be covered in a presentation on mastering workplace performance. The presentation will discuss the 4 principles of productivity and how to combine personal working styles with company culture. It will cover setting the stage for more productive days through planning and knowing individual needs. Engaging others to improve their productivity through managing meetings and expectations will also be discussed. The bulk of the presentation focuses on effective time management techniques and tools to get more done faster with less effort. Assessing progress through resource tracking for measurable results and building an accountability program will also be covered. Questions from attendees are solicited to be addressed during and after the seminar.
Throughout the presentation examples of productivity practices, challenges, and tools that can help
This document provides information about a book on design patterns. The book is written in Java and covers common interview questions related to design patterns without requiring any prior software design experience. It serves as a reference guide for professionals. The author, Narasimha Karumanchi, has industry experience at Amazon and previously worked at IBM, Mentor Graphics, and Microsoft. He has a B.Tech and M.Tech in Computer Science. The book is published by CareerMonk Publications.
This document provides an overview of an approach to learning data structures and algorithms that focuses on enumerating possible solutions to problems with different complexities, rather than just presenting theorems and proofs. It is intended to help with interview, course, and competition exam preparation by improving thinking skills. All code examples are written in C but are not language-specific. It recommends completely reading each chapter, which presents required theory and related problems, and then practicing applying techniques to new questions in order to analyze multiple solutions.
Chapter 1 Introduction 9
Variables 9
Data types 9
System defined data types (Primitive data types) 10
User defined data types 10
Data Structure 10
Abstract Data Types (ADT’s) 11
Memory and Variables 11
Size of a Variable 12
Address of a Variable 12
Pointers 13
Declaration of Pointers 13
Pointers Usage 13
Pointer Manipulation 14
Arrays and Pointers 15
Dynamic Memory Allocation 15
Function Pointers 16
Parameter Passing Techniques 16
Actual and Formal Parameters 16
Semantics of Parameter Passing 17
Language Support for Parameter Passing Techniques 17
Pass by Value 17
Pass by Result 18
Pass by Value-Result 19
Pass by Reference (aliasing) 20
Pass by Name 21
Binding 22
Binding Times 22
Static Binding (Early binding) 22
Dynamic Binding (Late binding) 23
Scope 23
Static Scope 23
Dynamic Scope 24
Storage Classes 25
Auto Storage Class 25
Extern storage class 26
Register Storage Class 31
Static Storage Class 31
Storage Organization 32
Static Segment 32
Stack Segment 33
Heap Segment 35
Shallow Copy versus Deep Copy 36
Success key book for:
* Campus Preparation
* Degree/Masters Course Preparation
* Instructor’s
* GATE Preparation
* Big job hunters: Microsoft, Google, Amazon, Yahoo, Flip Kart, Adobe, IBM Labs, Citrix, Mentor Graphics, NetApp, Oracle, Webaroo, De-Shaw, Success Factors, Face book, McAfee and many more
* Reference Manual for working people
Success key book for:
* Campus Preparation
* Degree/Masters Course Preparation
* Instructor’s
* GATE Preparation
* Big job hunters: Microsoft, Google, Amazon, Yahoo, Flip Kart, Adobe, IBM Labs, Citrix, Mentor Graphics, NetApp, Oracle, Webaroo, De-Shaw, Success Factors, Face book, McAfee and many more
* Reference Manual for working people
Success key book for:
* Campus Preparation
* Degree/Masters Course Preparation
* Instructor’s
* GATE Preparation
* Big job hunters: Microsoft, Google, Amazon, Yahoo, Flip Kart, Adobe, IBM Labs, Citrix, Mentor Graphics, NetApp, Oracle, Webaroo, De-Shaw, Success Factors, Face book, McAfee and many more
* Reference Manual for working people
Leadership Ambassador club Adventist modulekakomaeric00
Aims to equip people who aspire to become leaders with good qualities,and with Christian values and morals as per Biblical teachings.The you who aspire to be leaders should first read and understand what the ambassador module for leadership says about leadership and marry that to what the bible says.Christians sh
5 Common Mistakes to Avoid During the Job Application Process.pdfAlliance Jobs
The journey toward landing your dream job can be both exhilarating and nerve-wracking. As you navigate through the intricate web of job applications, interviews, and follow-ups, it’s crucial to steer clear of common pitfalls that could hinder your chances. Let’s delve into some of the most frequent mistakes applicants make during the job application process and explore how you can sidestep them. Plus, we’ll highlight how Alliance Job Search can enhance your local job hunt.
Jill Pizzola's Tenure as Senior Talent Acquisition Partner at THOMSON REUTERS...dsnow9802
Jill Pizzola's tenure as Senior Talent Acquisition Partner at THOMSON REUTERS in Marlton, New Jersey, from 2018 to 2023, was marked by innovation and excellence.
Job Finding Apps Everything You Need to Know in 2024SnapJob
SnapJob is revolutionizing the way people connect with work opportunities and find talented professionals for their projects. Find your dream job with ease using the best job finding apps. Discover top-rated apps that connect you with employers, provide personalized job recommendations, and streamline the application process. Explore features, ratings, and reviews to find the app that suits your needs and helps you land your next opportunity.
Resumes, Cover Letters, and Applying OnlineBruce Bennett
This webinar showcases resume styles and the elements that go into building your resume. Every job application requires unique skills, and this session will show you how to improve your resume to match the jobs to which you are applying. Additionally, we will discuss cover letters and learn about ideas to include. Every job application requires unique skills so learn ways to give you the best chance of success when applying for a new position. Learn how to take advantage of all the features when uploading a job application to a company’s applicant tracking system.
A Guide to a Winning Interview June 2024Bruce Bennett
This webinar is an in-depth review of the interview process. Preparation is a key element to acing an interview. Learn the best approaches from the initial phone screen to the face-to-face meeting with the hiring manager. You will hear great answers to several standard questions, including the dreaded “Tell Me About Yourself”.
3. Acknowledgements
ℎ and ℎ , it is impossible to thank you adequately for everything you have
done, from loving me unconditionally to raising me in a stable household, where you
persistent efforts traditional values and taught your children to celebrate and embrace
life. I could not have asked for better parents or role-models. You showed me that
anything is possible with faith, hard work and determination.
This book would not have been possible without the help of many people. I would like to
thank them for their efforts in improving the end result. Before we do so, however, I
should mention that I have done my best to correct the mistakes that the reviewers
have pointed out and to accurately describe the protocols and mechanisms. I alone am
responsible for any remaining errors.
First and foremost, I would like to express my gratitude to many people who saw me
through this book, to all those who provided support, talked things over, read, wrote,
offered comments, allowed me to quote their remarks and assisted in the editing,
proofreading and design. In particular, I would like to thank the following individuals.
ℎ , IIT Bombay, Architect, dataRPM Pvt. Ltd.
, Senior Consultant, Juniper Networks Pvt. Ltd.
ℎ ℎ , IIT Kanpur, Mentor Graphics Pvt. Ltd.
, IISc, Bangalore
ℎ , Yahoo India Pvt. Ltd.
ℎ , Development Manager, IBM Software Labs
ℎ , - ℎ., , Subjects.
ℎ B-Tech., Technical Lead, HCL
ℎ, Head Master, Obulasuni Palle, Z. P. H. School
, Teacher, Kambhampadu, Z. P. H. School
ℎ , Teacher, Durgi
ℎ ℎ , Founder, StockMonks Pvt. Ltd.
, Co-Founder, NotionPress Pvt. Ltd.
ℎ, Lecturer, Nagarjuna Institute of Technology and Sciences, MLG
-𝑁𝑎𝑟𝑎𝑠𝑖𝑚ℎ𝑎 𝐾𝑎𝑟𝑢𝑚𝑎𝑛𝑐ℎ𝑖
M. Tech, 𝐼𝐼𝑇 𝐵𝑜𝑚𝑏𝑎𝑦
Founder, 𝐶𝑎𝑟𝑒𝑒𝑟𝑀𝑜𝑛𝑘 𝑐𝑜𝑚
4.
5. Preface
Dear Reader,
Please Hold on! I know many people do not read the preface. But I would strongly
recommend that you go through the preface of this book at least.
India has many of the key ingredients for making this transition. It has a critical mass
of skilled, English-speaking knowledge workers, especially in the sciences. It has a well-
functioning democracy. Its domestic market is one of the world’s largest. It has a large
and impressive scattering, creating valuable knowledge linkages and networks. In
addition, the development of the IT sector in recent years has been remarkable. India
has created profitable niches in information technology (IT) and is becoming a global
provider of software services.
Many software companies hire graduates with different back-grounds computer science,
electrical, civil, mechanical, B.E., B. Tech., MCAs, MBAs etc. The year 2013-14
characterizes a landmark year as aggregate revenue for the Indian IT-BPO sector is
estimated to cross USD 120 billion.
India currently produces a solid core of knowledge workers in tertiary and scientific and
technical education, although the country needs to do more to create a larger cadre of
educated and agile workers who can adapt and use knowledge. Efforts have been put
into establishing a top-quality university system that includes many world-class
institutions of higher learning that are competitive and meritocratic, such as Indian
Institutes of Technology (IITs), Indian Institutes of Management, Indian Institute of
Science, and the National Institute of Technology (NITs). Despite these efforts, not all
publicly funded universities or other educational institutions in India have been able to
maintain high-quality standards or keep pace with developments in knowledge and
technology.
IT Interview Questions try to facilitate pupils who arrive from colleges where they could
not find proper assistance for career counselling.
There are hundreds of books on IT interviews already flooding the market. You may
naturally wonder what the need of writing another book on IT interviews is! This book
assumes you have basic knowledge about computer science. Main objective of the book
is to provide you the of and ℎ Before
writing the book, I set myself the following :
The book be written in ℎ that students from non-IT branches should
be able to understand it and .
The book should present the concepts in and straightforward manner
with a explanation.
The book should provide enough examples so that students get better
understanding of the and also useful for the / -
interviews.
It should challenge you to look at the small but signifcant changes you need to
make to improve your impact at interviews.
In this book you will learn all the secrets you need to know to help nail your job
interview and get the job.
Please remember, the books which are available in the market are lacking one or many
of these goals. This book is different from other books available on the market. The
main goals of this book are to provide students with a good knowledge base, and to
offer a better understanding to those new to IT. Based on my experience, I thought of
writing this book aiming at achieving these goals in a simple way. A 3-stage formula is
used in writing this book, i.e.
+ +
6. I used very simple language such that a school going student can also understand the
concepts easily. Once the concept is discussed, it is then interlaced into problems. The
solutions of each and every problem are well explained. Finally, interview questions
with answers on every concept are covered. All the interview questions in this book are
collected from various interviews conducted by top software development companies.
Interviewing is all about research, confidence and creating a good rapport. Everyone is
nervous on interviews. If you simply allow yourself to feel nervous, you'll do much
better. Remember also that it's difficult for the interviewer as well. In general, be upbeat
and positive. Never be negative. As a job seeker if you read complete book with good
understanding, I am sure you will challenge the interviewers and that is the objective of
this book.
It is that, at least reading of this book is required to get full
understanding of all the topics. In the readings, you can directly go to any
chapter and refer. Even though, enough readings were given for correcting the errors,
due to human tendency there could be some minor typos in the book. If any such typos
found, they will be updated at . . I request you to constantly monitor this
site for any corrections, new problems and solutions. Also, please provide your valuable
suggestions at: .
Wish you all the best. I are sure that you will find this book useful.
-𝑁𝑎𝑟𝑎𝑠𝑖𝑚ℎ𝑎 𝐾𝑎𝑟𝑢𝑚𝑎𝑛𝑐ℎ𝑖
M. Tech, 𝐼𝐼𝑇 𝐵𝑜𝑚𝑏𝑎𝑦
Founder, 𝐶𝑎𝑟𝑒𝑒𝑟𝑀𝑜𝑛𝑘 𝑐𝑜𝑚
7. Table of Contents
1. Organization of Chapters-----------------------------------------------------------17
1.1 Why Separate Book on IT Interviews? -------------------------------------------------- 17
1.2 What Is this Book About?----------------------------------------------------------------- 17
1.3 Should I Take this Book? ----------------------------------------------------------------- 18
1.4 Organization of Chapters ----------------------------------------------------------------- 18
2. Getting Ready ------------------------------------------------------------------------22
2.1 Best Ways To Get An Interview Call ----------------------------------------------------- 22
2.2 Reasons Why You Are Not Getting Interview Calls------------------------------------ 23
2.3 Does Your GPA (or Percentage) Really Matter? ---------------------------------------- 25
2.4 Hot Tips On Resume Writing ------------------------------------------------------------- 27
2.5 Designing The Resume -------------------------------------------------------------------- 32
2.6 Sample Resume ---------------------------------------------------------------------------- 34
3. Group Discussions ------------------------------------------------------------------37
3.1 What is Group Discussion?--------------------------------------------------------------- 37
3.2 Group Discussions in Interviews -------------------------------------------------------- 37
3.3 Group Discussions at Universities/Colleges------------------------------------------- 38
3.4 How to Face Group Discussion in Interviews?----------------------------------------- 38
3.5 Points to Remember ----------------------------------------------------------------------- 40
3.6 Tips for Group Discussion ---------------------------------------------------------------- 41
3.7 Do’s of a Group Discussion--------------------------------------------------------------- 43
3.8 Topics for Practicing Group DIscussions ----------------------------------------------- 44
3.9 Mock Group Discussions ----------------------------------------------------------------- 46
4. Operating System Concepts--------------------------------------------------------54
4.1 What is an Operating System? ----------------------------------------------------------- 54
4.2 Types of Operating Systems -------------------------------------------------------------- 54
4.3 Memory Management---------------------------------------------------------------------- 55
4.4 What is Job Scheduling and a Process? ------------------------------------------------ 60
4.5 Processor Scheduling Algorithms-------------------------------------------------------- 62
4.6 Process Synchronization ------------------------------------------------------------------ 63
4.7 Interprocess Communication [IPC] ------------------------------------------------------ 66
4.8 Starvation and Aging ---------------------------------------------------------------------- 70
4.9 Complier and Interpreter------------------------------------------------------------------ 71
4.10 Process Loading and Linking ----------------------------------------------------------- 71
Problems and Questions with Answers------------------------------------------------------ 74
8. 5. C/C++/Java Interview Questions ------------------------------------------------ 81
5.1 Variables------------------------------------------------------------------------------------- 81
5.2 Data types ----------------------------------------------------------------------------------- 81
5.3 Data Structure------------------------------------------------------------------------------ 82
5.4 Abstract Data Types (ADTs) -------------------------------------------------------------- 82
5.5 Memory and Variables--------------------------------------------------------------------- 83
5.6 Pointers -------------------------------------------------------------------------------------- 84
5.7 Techniques of Parameter Passing-------------------------------------------------------- 87
5.8 Binding -------------------------------------------------------------------------------------- 90
5.9 Scope----------------------------------------------------------------------------------------- 91
5.10 Storage Classes --------------------------------------------------------------------------- 93
5.11 Storage Organization--------------------------------------------------------------------- 97
5.12 Programming Techniques --------------------------------------------------------------- 99
5.13 Basic Concepts of OOPS----------------------------------------------------------------101
Problems and Questions with Answers-----------------------------------------------------105
6. Scripting Languages ---------------------------------------------------------------157
6.1 Interpreter versus Compiler -------------------------------------------------------------157
6.2 What Are Scripting Languages?---------------------------------------------------------158
6.3 Shell Scripting -----------------------------------------------------------------------------158
6.4 PERL [Practical Extraction and Report Language] -----------------------------------166
6.5 Python --------------------------------------------------------------------------------------188
7. Bitwise Hacking --------------------------------------------------------------------194
7.1 Introduction--------------------------------------------------------------------------------194
7.1 Hacks on Bitwise Programming---------------------------------------------------------194
Problems and Questions with Answers-----------------------------------------------------198
8. Concepts of Computer Networking----------------------------------------------203
8.1 What is a Computer Network? ----------------------------------------------------------203
8.2 Basic Elements of Computer Networks ------------------------------------------------203
8.3 What is an Internet? ----------------------------------------------------------------------204
8.4 Fundamentals of Data and Signals-----------------------------------------------------204
8.5 Network Topologies -----------------------------------------------------------------------207
8.6 Network Operating Systems -------------------------------------------------------------211
8.7 Transmission Medium--------------------------------------------------------------------212
8.8 Types of Networks-------------------------------------------------------------------------214
8.9 Connection-oriented and Connectionless services -----------------------------------217
8.10 Segmentation and Multiplexing -------------------------------------------------------218
8.11 Network Performance -------------------------------------------------------------------218
8.12 Network Switching-----------------------------------------------------------------------222
9. 8.13 Why OSI Model? -------------------------------------------------------------------------229
8.14 What is a Protocol-Stack? --------------------------------------------------------------229
8.15 OSI Model---------------------------------------------------------------------------------229
8.16 TCP/IP Model-----------------------------------------------------------------------------234
8.17 Difference between OSI and TCP/IP models-----------------------------------------236
8.18 How does TCP/IP Model (Internet) work? --------------------------------------------237
8.19 Understanding Ports --------------------------------------------------------------------239
8.20 Hypertext Transfer Protocol [HTTP] ---------------------------------------------------240
8.21 Simple Mail Transfer Protocol [SNMP]------------------------------------------------243
8.22 File Transfer Protocol [FTP] ------------------------------------------------------------244
8.23 Domain Name Server [DNS]------------------------------------------------------------245
8.24 Dynamic Host Configuration Protocol [DHCP] --------------------------------------250
8.25 How traceroute (or tracert) works?----------------------------------------------------252
8.26 How ping works?-------------------------------------------------------------------------253
8.27 What is QoS? -----------------------------------------------------------------------------253
8.28 Wireless Networking---------------------------------------------------------------------254
Problems and Questions with Answers-----------------------------------------------------255
9. Database Management Systems ------------------------------------------------ 256
9.1 What is a Database?----------------------------------------------------------------------256
9.2 Database Management System [DBMS] -----------------------------------------------256
9.3 Procedural and Non-Procedural --------------------------------------------------------257
9.4 What is SQL? ------------------------------------------------------------------------------257
9.5 Data Definition and Manipulation------------------------------------------------------257
9.6 What is RDBMS? --------------------------------------------------------------------------257
9.7 What is Table? -----------------------------------------------------------------------------257
9.8 What is Field?------------------------------------------------------------------------------257
9.9 What is Record or Row? ------------------------------------------------------------------258
9.10 What is Column? ------------------------------------------------------------------------258
9.11 What is NULL value? --------------------------------------------------------------------258
9.12 SQL Constraints -------------------------------------------------------------------------258
9.13 Data Integrity-----------------------------------------------------------------------------258
9.14 Database Keys ---------------------------------------------------------------------------259
9.15 Normalization ----------------------------------------------------------------------------259
9.16 Functional Dependencies---------------------------------------------------------------262
9.17 First Normal Form or 1NF--------------------------------------------------------------262
9.18 Second Normal Form or 2NF-----------------------------------------------------------263
9.19 Third Normal Form or 3NF-------------------------------------------------------------264
9.20 Other Normal Forms --------------------------------------------------------------------265
10. Problems and Questions with Answers-----------------------------------------------------265
10. Brain Teasers -----------------------------------------------------------------------271
Problems and Questions with Answers-----------------------------------------------------271
11. Algorithms Introduction ----------------------------------------------------------274
11.1 What is an Algorithm? ------------------------------------------------------------------274
11.2 Why Analysis of Algorithms?-----------------------------------------------------------274
11.3 Goal of Analysis of Algorithms---------------------------------------------------------274
11.4 What is Running Time Analysis?------------------------------------------------------275
11.5 How to Compare Algorithms?----------------------------------------------------------275
11.6 What is Rate of Growth?----------------------------------------------------------------275
11.7 Commonly used Rate of Growths -----------------------------------------------------275
11.8 Types of Analysis ------------------------------------------------------------------------276
11.9 Asymptotic Notation and Big-O Notation --------------------------------------------276
11.10 Why is it called Asymptotic Analysis? ----------------------------------------------278
11.11 Guidelines for Asymptotic Analysis -------------------------------------------------278
11.12 Amortized Analysis---------------------------------------------------------------------279
Problems and Questions with Answers-----------------------------------------------------280
12. Recursion and Backtracking -----------------------------------------------------285
12.1 Introduction ------------------------------------------------------------------------------285
12.2 What is Recursion?----------------------------------------------------------------------285
12.3 Why Recursion?--------------------------------------------------------------------------285
12.4 Format of a Recursive Function -------------------------------------------------------285
12.5 Recursion and Memory (Visualization) -----------------------------------------------286
12.6 Recursion versus Iteration -------------------------------------------------------------287
12.7 Notes on Recursion----------------------------------------------------------------------287
12.8 Example Algorithms of Recursion-----------------------------------------------------287
Problems and Questions with Answers-----------------------------------------------------288
12.9 What is Backtracking?------------------------------------------------------------------289
12.10 Example Algorithms of Backtracking -----------------------------------------------289
Problems and Questions with Answers-----------------------------------------------------289
13. Linked Lists -------------------------------------------------------------------------290
13.1 What is a Linked List? ------------------------------------------------------------------290
13.2 Linked Lists ADT-------------------------------------------------------------------------290
13.3 Why Linked Lists? -----------------------------------------------------------------------290
13.4 Arrays Overview--------------------------------------------------------------------------291
13.5 Linked Lists Versus Arrays and Dynamic Arrays-----------------------------------292
13.6 Singly Linked Lists ----------------------------------------------------------------------292
13.7 Doubly Linked Lists ---------------------------------------------------------------------297
11. 13.8 Circular Linked Lists--------------------------------------------------------------------302
13.9 A Memory-Efficient Doubly Linked List ----------------------------------------------307
Problems and Questions with Answers-----------------------------------------------------308
14. Stacks-------------------------------------------------------------------------------- 322
14.1 What is a Stack?-------------------------------------------------------------------------322
14.2 How Stacks are used? ------------------------------------------------------------------322
14.3 Stack ADT---------------------------------------------------------------------------------323
14.4 Applications ------------------------------------------------------------------------------323
14.5 Implementation --------------------------------------------------------------------------323
14.6 Comparison of Implementations ------------------------------------------------------328
Problems and Questions with Answers-----------------------------------------------------328
15. Queues ------------------------------------------------------------------------------ 336
15.1 What is a Queue?------------------------------------------------------------------------336
15.2 How are Queues Used? -----------------------------------------------------------------336
15.3 Queue ADT -------------------------------------------------------------------------------336
15.4 Exceptions --------------------------------------------------------------------------------337
15.5 Applications ------------------------------------------------------------------------------337
15.6 Implementation --------------------------------------------------------------------------337
Problems and Questions with Answers-----------------------------------------------------343
16. Trees --------------------------------------------------------------------------------- 345
16.1 What is a Tree?---------------------------------------------------------------------------345
16.2 Glossary-----------------------------------------------------------------------------------345
16.3 Binary Trees ------------------------------------------------------------------------------346
16.4 Types of Binary Trees -------------------------------------------------------------------347
16.5 Properties of Binary Trees --------------------------------------------------------------348
16.6 Binary Tree Traversals ------------------------------------------------------------------349
Problems and Questions with Answers-----------------------------------------------------353
16.7 Generic Trees (N-ary Trees) ------------------------------------------------------------366
Problems and Questions with Answers-----------------------------------------------------368
16.8 Threaded Binary Tree Traversals------------------------------------------------------368
Problems and Questions with Answers-----------------------------------------------------374
16.9 Binary Search Trees (BSTs) ------------------------------------------------------------375
Problems and Questions with Answers-----------------------------------------------------381
16.10 Balanced Binary Search Trees -------------------------------------------------------386
16.11 AVL (Adelson-Velskii and Landis) Trees --------------------------------------------387
Problems and Questions with Answers-----------------------------------------------------394
17. Priority Queues and Heaps------------------------------------------------------- 397
17.1 What is a Priority Queue? --------------------------------------------------------------397
12. 17.2 Priority Queue ADT----------------------------------------------------------------------397
17.3 Priority Queue Applications------------------------------------------------------------398
17.4 Heaps and Binary Heap ----------------------------------------------------------------398
17.5 Binary Heaps -----------------------------------------------------------------------------399
17.6 Heapsort ----------------------------------------------------------------------------------404
Problems and Questions with Answers-----------------------------------------------------405
18. Graph Algorithms ------------------------------------------------------------------407
18.1 Introduction ------------------------------------------------------------------------------407
18.2 Glossary-----------------------------------------------------------------------------------407
18.3 Applications of Graphs------------------------------------------------------------------410
18.4 Graph Representation ------------------------------------------------------------------410
18.5 Graph Traversals ------------------------------------------------------------------------413
18.6 Shortest Path Algorithms---------------------------------------------------------------416
19. Sorting -------------------------------------------------------------------------------417
19.1 What is Sorting? -------------------------------------------------------------------------417
19.2 Why is Sorting necessary? -------------------------------------------------------------417
19.3 Classification of Sorting Algorithms --------------------------------------------------417
19.4 Other Classifications --------------------------------------------------------------------418
19.5 Bubble sort -------------------------------------------------------------------------------418
19.6 Selection Sort-----------------------------------------------------------------------------419
19.7 Insertion sort -----------------------------------------------------------------------------420
19.8 Shell sort----------------------------------------------------------------------------------422
19.9 Merge sort---------------------------------------------------------------------------------423
19.10 Heapsort---------------------------------------------------------------------------------425
19.11 Quicksort--------------------------------------------------------------------------------425
19.12 Tree Sort---------------------------------------------------------------------------------428
19.13 Comparison of Sorting Algorithms --------------------------------------------------428
19.14 Linear Sorting Algorithms ------------------------------------------------------------428
19.15 Counting Sort---------------------------------------------------------------------------428
19.16 Bucket sort [or Bin Sort] --------------------------------------------------------------429
19.17 Radix sort -------------------------------------------------------------------------------430
19.18 External Sorting------------------------------------------------------------------------430
Problems and Questions with Answers-----------------------------------------------------431
20. Searching----------------------------------------------------------------------------441
20.1 What is Searching?----------------------------------------------------------------------441
20.2 Why do we need Searching? -----------------------------------------------------------441
20.3 Types of Searching ----------------------------------------------------------------------441
20.4 Unordered Linear Search---------------------------------------------------------------441
13. 20.5 Sorted/Ordered Linear Search --------------------------------------------------------442
20.6 Binary Search ----------------------------------------------------------------------------442
20.7 Comparing Basic Searching Algorithms ---------------------------------------------443
Problems and Questions with Answers-----------------------------------------------------443
21. Hashing------------------------------------------------------------------------------ 466
21.1 What is Hashing?------------------------------------------------------------------------466
21.2 Why Hashing?----------------------------------------------------------------------------466
21.3 HashTable ADT --------------------------------------------------------------------------466
21.4 Understanding Hashing ----------------------------------------------------------------466
21.5 Components of Hashing ----------------------------------------------------------------468
21.6 Hash Table--------------------------------------------------------------------------------468
21.7 Hash Function ---------------------------------------------------------------------------468
21.8 Load Factor -------------------------------------------------------------------------------469
21.9 Collisions----------------------------------------------------------------------------------469
21.10 Collision Resolution Techniques-----------------------------------------------------469
21.11 Separate Chaining ---------------------------------------------------------------------469
21.12 Open Addressing -----------------------------------------------------------------------470
21.13 Comparison of Collision Resolution Techniques ----------------------------------471
21.14 How Hashing Gets O(1) Complexity?------------------------------------------------471
21.15 Hashing Techniques -------------------------------------------------------------------471
21.16 Problems for which Hash Tables are not suitable---------------------------------472
22. String Algorithms ------------------------------------------------------------------ 473
22.1 Introduction ------------------------------------------------------------------------------473
22.2 String Matching Algorithms------------------------------------------------------------473
22.3 Brute Force Method ---------------------------------------------------------------------474
22.4 Robin-Karp String Matching Algorithm ----------------------------------------------474
22.5 KMP Algorithm ---------------------------------------------------------------------------475
Problems and Questions with Answers-----------------------------------------------------478
23. Algorithms Design Techniques -------------------------------------------------- 480
23.1 Introduction ------------------------------------------------------------------------------480
23.2 Classification -----------------------------------------------------------------------------480
23.3 Classification by Implementation Method -------------------------------------------480
23.4 Classification by Design Method ------------------------------------------------------481
23.5 Other Classifications --------------------------------------------------------------------482
24. Greedy Algorithms ----------------------------------------------------------------- 483
24.1 Introduction ------------------------------------------------------------------------------483
24.2 Does Greedy Always Work? ------------------------------------------------------------483
24.3 Advantages and Disadvantages of Greedy Method ---------------------------------483
14. 24.4 Greedy Applications ---------------------------------------------------------------------483
24.5 Understanding Greedy Technique ----------------------------------------------------484
25. Divide and Conquer Algorithms -------------------------------------------------487
25.1 Introduction ------------------------------------------------------------------------------487
25.2 What is Divide and Conquer Strategy?-----------------------------------------------487
25.3 Does Divide and Conquer Always Work? --------------------------------------------487
25.4 Divide and Conquer Visualization ----------------------------------------------------487
25.5 Understanding Divide and Conquer --------------------------------------------------488
25.6 Advantages of Divide and Conquer ---------------------------------------------------489
25.7 Disadvantages of Divide and Conquer------------------------------------------------489
25.8 Divide and Conquer Applications -----------------------------------------------------489
26. Dynamic Programming------------------------------------------------------------490
26.1 Introduction ------------------------------------------------------------------------------490
26.2 What is Dynamic Programming Strategy? -------------------------------------------490
26.3 Can Dynamic Programming Solve All Problems? -----------------------------------490
26.4 Examples of Dynamic Programming Algorithms------------------------------------490
26.5 Understanding Dynamic Programming ----------------------------------------------491
27. Basics of Design Patterns---------------------------------------------------------494
27.1 Brief History Of Design Patterns ------------------------------------------------------494
27.2 Why Design Patterns?-------------------------------------------------------------------494
27.3 Categories Of Design Patterns ---------------------------------------------------------494
27.4 What To Observe For A Design Pattern? ---------------------------------------------495
27.5 Using Patterns To Gain Experience---------------------------------------------------496
27.6 Can We Use Design Patterns Always? ------------------------------------------------496
27.7 Design Patterns vs. Frameworks ------------------------------------------------------497
27.8 Creational Design Patterns-------------------------------------------------------------497
27.9 Singleton Design Pattern ---------------------------------------------------------------498
27.10 Structural Design Patterns -----------------------------------------------------------501
27.11 Behavioral Design Patterns-----------------------------------------------------------502
28. Non-Technical Help----------------------------------------------------------------504
28.1 Tips ----------------------------------------------------------------------------------------504
Questions with Answers ----------------------------------------------------------------------505
29. Quantitative Aptitude Concepts -------------------------------------------------510
29.1 Formulas on Number Series -----------------------------------------------------------510
29.2 Tips on Divisibility Checks -------------------------------------------------------------510
29.3 Mathematical Formulas ----------------------------------------------------------------511
29.4 Ratios and Proportions -----------------------------------------------------------------511
15. 29.5 Percentage --------------------------------------------------------------------------------511
29.6 Profit and Loss ---------------------------------------------------------------------------512
29.7 Volumes and Surface Areas------------------------------------------------------------512
29.8 Logarithms--------------------------------------------------------------------------------513
29.9 Formulae for Trains Problems ---------------------------------------------------------514
29.10 Indices -----------------------------------------------------------------------------------514
29.11 Surds-------------------------------------------------------------------------------------514
29.12 Clock -------------------------------------------------------------------------------------515
29.13 Blood Relations Tricks ----------------------------------------------------------------516
29.14 Probability-------------------------------------------------------------------------------516
29.15 Banker’s Discount ---------------------------------------------------------------------520
29.16 Simple Interest -------------------------------------------------------------------------520
29.17 Compound Interest --------------------------------------------------------------------520
29.18 Pipes -------------------------------------------------------------------------------------521
29.19 Stocks and Shares ---------------------------------------------------------------------521
30. Basics of Cloud Computing ------------------------------------------------------ 523
30.1 What is Cloud Computing? ------------------------------------------------------------523
30.2 Organizations are interested in Cloud Computing ---------------------------------524
30.3 Evolution of Cloud Computing --------------------------------------------------------524
30.4 Cloud Deployment Models -------------------------------------------------------------525
30.5 Types of Cloud Computing Services --------------------------------------------------526
30.6 Advantages of Cloud Computing ------------------------------------------------------526
30.7 Clustering---------------------------------------------------------------------------------528
30.8 Grid Computing--------------------------------------------------------------------------529
30.9 Virtualization -----------------------------------------------------------------------------530
30.10 Big Data ---------------------------------------------------------------------------------534
31. Miscellaneous Concepts ---------------------------------------------------------- 538
31.1 Basics of HTML and CSS ---------------------------------------------------------------538
31.2 Javascript---------------------------------------------------------------------------------545
31.3 TeX and LaTeX ---------------------------------------------------------------------------546
31.4 Ruby on Rails ----------------------------------------------------------------------------547
31.5 Google Search Tips ----------------------------------------------------------------------547
31.6 Web Crawling-----------------------------------------------------------------------------552
31.7 Google's Page Ranking Algorithm -----------------------------------------------------553
31.8 Basics of XML ----------------------------------------------------------------------------554
32. Career Options --------------------------------------------------------------------- 558
32.1 Campus Placement----------------------------------------------------------------------558
32.2 Going for M. Tech./M.S. in India------------------------------------------------------558
16. 32.3 Going for M.S. in Foreign Countries --------------------------------------------------559
32.4 Going for MBA----------------------------------------------------------------------------559
32.5 Entrepreneurship-Start your venture ------------------------------------------------560
32.6 Trying for Government Jobs and Civil Services -------------------------------------560
32.7 Final Notes--------------------------------------------------------------------------------560
32.8 Tips to Become Successful in Your Career ------------------------------------------560
References -------------------------------------------------------------------------------563