Featured Resource One-line Algorithms questions & facts Random algorithm facts for quick interview revision when you only have a minute to spare.
Book DSA Cheatsheet A Cheatsheet for data structures and algorithms practice, coding interview and problem-solving intuition.
Featured Resource One AI Systems Question Practice AI and ML systems prompts across P/D disaggregation, inference, training, RAG, platform engineering and reliability.
Algorithms K-th smallest element of two sorted arrays In this article, we have explored algorithms to find the K-th smallest element of two sorted arrays. This involve the idea of Binary Search.
System Design Apache ZooKeeper in System Design In this article, we will look at Apache ZooKeeper and how it is useful in distributed systems.
System Design Bigtable in System Design Bigtable is a revolutionary internal Google database system that helped to launch the NoSQL industry. The company desired to create a database capable of providing real-time access to petabytes of data. Bigtable was born as a result.
Compiler Design Sethi Ullman algorithm The Sethi-Ullman algorithm is an optimal algorithm used for finding an optimal ordering of a computation tree. We discuss two generalizations that increase its applicability without increasing the cost.
Compiler Design L-Attributed and S-Attributed definitions and grammar We have discussed two classes of definitions that can efficiently be implemented in connection to top-down or bottom-up parsing in compilers and corresponding attribute grammars that result from serious restrictions.
System Design System Design of Snapchat This article will give an overview of the architecture, infrastructure and System Design of Snapchat, as well as provide some insight to the company (Snap Inc.'s) history.
data science Using Python for Data Analysis In this article, we will learn how Python is used for Data Analysis and introduced Python libraries that are frequently used in Data Science such as Numpy, Pandas, Matplotlib, Seaborn and others.
data science Data Analysis tools In this article, we will get the basic idea of what is data analysis and look into some tools that are used for data analysis.
Problems on Binary Tree Boundary Traversal of Binary Tree In this article, we have explored the approach of Boundary Traversal of Binary Tree along with Time and Space Complexity.
Compiler Design Instruction selection by tree-rewriting Instruction selection involves choosing target-language instructions for each IR statement. In this article we discuss how it can be done by a tree-rewriting process whereby tree patterns that correspond to machine instructions are used to tile a syntax tree.
Compiler Design Activation trees and records An activation tree is a tree structure that represents function calls made by a program during execution. When a function is called the a new activation record is pushed to the stack and popped from the stack when the function returns.
Compiler Design Dynamic programming for Code generation Dynamic programming not only applies to a broad class of register machines but its application results in the generation of optimal code that runs in linear time.
Compiler Design Attribute Dependence Graph and Evaluation in Semantic Analysis In this article we discuss attribute dependency graphs and attribute evaluation during semantic analysis phase in compiler design.
TensorFlow Max Pool and Avg Pool in TensorFlow In this article, we have explored Max Pool and Avg Pool in TensorFlow in depth with Python code using the MaxPool and AvgPool ops in TensorFlow.
data science R squared and Adjusted R squared In this article, we have explored the idea of R squared and Adjusted R squared which are frequently used in Regression Analysis to analyze data.
C++ Initialization of Multiset in C++ In this article, we have explored 6 different ways to initialize Multiset in C++ STL along with C++ code snippets for each approach.
Compiler Design Machine independent Optimizations Code written in high-level programming languages has a lot of overhead, in this article we discuss low-level techniques used to optimize this code for efficiency.
Compiler Design Backpatching During the code generation phase, the compiler has to make jumps, however, the values needed for these jumps may not be known in a single pass therefore it improvises by filling up values which are replaced when the real values are known, a process known as backpatching.
Compiler Design Types of compilers A compiler is a program that translates source code into machine code that can be executed by a computer. In this article we explore various types of compilers.
Compiler Design Pumping Lemma For Context Free Languages The pumping lemma is used as a way to prove if a language is context-free or not. In this article we have discussed this lemma for CFLs.
Compiler Design Basics of YACC and Bison In this article we discuss YACC and Bison, both tools used to generate parsers for context free languages that are LALR(1).
System Design Eager Loading and Over-Eager Loading Eager Loading and Over-eager loading are methods of loading resources to web pages.
Machine Learning (ML) A/B Testing In this article, we will learn more about the famous A/B testing which is an important topic in Data Science to find best performing experiments.
Software Engineering Your Career as a Computer Research Scientist In a world that is rapidly adopting new technologies, it’s no surprise that computer and information scientists are in high demand, with their employment rates projected to grow by 22% from 2020 to 2030.
Linux Search for a file in Linux (Find command) In this article, we have explored the approach to Search for a file in Linux (Find command).