Dynamic Programming (DP) Longest Geometric Progression In this article, we have explained how to solve the problem of Longest Geometric Progression efficiently using Dynamic Programming. It involves the use of Map data structure in implementation which is different from other standard problems.
Greedy Algorithms Fitting Shelves Problem [Greedy Algorithm] In this article, we will understand what fitting shelves problem is and will see a greedy approach algorithm of solving this problem.
Deep Learning Neural Architecture Search (NAS) The aim of this article is to provide a clear and intuitive understanding of the deep learning paradigm known as Neural Architecture Search (NAS).
Compiler Design Add support of Debugging: DWARF, Functions, Source locations, Variables In this article, we continue to discuss other aspects involved with debugging and debugging information in Kaleidoscope. We discuss how to include function definitions, source locations, and variable locations in debug information.
Compiler Design Building a Compiler Front-End The front-end of a compiler comprises four phases, source code is converted from high-level code to an intermediate representation which is optimized and compiled to machine code.
game theory Pure and Mixed Strategy Nash equilibrium In this article, we will discuss about the pure and mixed strategy nash equilibrium which are important concepts in Game Theory.
Compiler Design Add debugging support in Programming Language A good programming language should also be able to support debugging and debug information. In this article, we add support for debugging and debug information.
Compiler Design Bootstraping a Compiler Bootstrapping a compiler involves producing a self-compiling compiler, that is, we write a compiler using language A that produces code for target machine B and can still compile itself.
Compiler Design Compiling LLVM IR to Object Code We have seen how to implement the Kaleidoscope programming language, from source code to an LLVM IR to optimization to implementing a JIT compiler and implementing further extensions. In this article, we will compile the LLVM IR into object code.
Compiler Design Variable Mutation in Kaleidoscope Mutation in programming languages involves the ability to change an object. In this article, we further extend our language, we add to it the ability to define new variables and mutate them.
Compiler Design How to compile a compiler? [Bootstrapping] In this article, we will learn the process and types of bootstrapping. Bootstrapping involves using compilers to compile other compilers or themselves.
Compiler Design LLVM Memory and SSA In this article, we learn all about SSA and LLVM memory and how the two are related.
Compiler Design User-defined Operators in Kaleidoscope User-defined operators take in a set of operands as input and return a result. We want to support functionalities such as division, logical negation, comparisons, etc.
Compiler Design If-then-else in LLVM Control Flow Control flow statements are statements used to change the flow of execution of the program. In this article, we extend Kaleidoscope to include control flow operations such as if-then-else statements.
Compiler Design For loops in LLVM Control Flow In programming, we use loops to repeat a sequence of instructions until a specified condition is met. In this article, we further extend Kaleidoscope to support for loops.
data science Statistical Features in Data Science In this article, we will understand about various statistical features like median, quartiles, inter quartile range (IQR), bias and variance.
data science Confidence intervals This article aims to improve our understanding on one of the basic concepts of statistics: confidence intervals.
System Design System Design of Retail Management System In this article, we will take a look at the key features a retail management system needs to offer, its high-level, low-level design, database design, and some of the already existing retail management systems.
data science Relation of Data Science to ML, AI, NLP, DL In this article, we will understand how data science is related to various other domains such as Machine learning, Artificial intelligence. Natural language Processing and Deep learning.
data science Over and under sampling This article aims to improve our understanding of oversampling and under sampling which are important concepts in Data Science.
data science Phases / life cycle of Data Science This article serves as an introduction to data science life cycle and gives an overview on the various phases.
Algorithms Majority element in sorted array In this article, we will be learning how to find the majority element in a sorted array. This involve using Linear Search, Binary Search and a constant time algorithm.
C++ Working with 2D Maps in C++ In this article, we will learn how to work with two-dimensional (2D) maps in C++. We have explained the concept using C++ code examples.
queue K queues in an array In this article, we have explained 2 approaches to implement K queues in a single array. The challenge is that the space of the array should be utilized optimally by the K queues.
divide and conquer Find floor in sorted array In this article, we are going to see various methods of finding the floor of a given number from a given sorted array. To solve this efficiently, the concept of Divide and Conquer / Binary Search is required.