Sitemap

A list of all the posts and pages found on the site. For you robots out there is an XML version available for digesting as well.

Pages

Posts

Backtracking : A Comprehensive Guide

6 minute read

Published:

Backtracking is a powerful algorithmic technique for solving problems related to permutations, combinations, and subsets. The essence of backtracking lies in exploring all potential solutions and then backtracking by undoing the last decision and trying the next possibility. Below is a generalized template for backtracking that can be adapted to a variety of problems like subsets, permutations, and combinations.

Dynamic Programming Pattern: Knapsack-like

6 minute read

Published:

This pattern has two sub-patterns namely, 0-1 Knapsack and Unbounded Knapsack. Together, the type of problems that match these patterns are called “Knapsack-like” problems.

841: Keys and Rooms

3 minute read

Published:

You are given n rooms labeled from 0 to n - 1, and all the rooms are locked except for room 0. Your goal is to visit all the rooms, but you cannot enter a locked room without having its key.

802: Find Eventual Safe States

4 minute read

Published:

Given a directed graph with n nodes labeled from 0 to n - 1, we need to identify all the safe nodes in the graph. A node is considered safe if every possible path starting from that node leads to a terminal node or another safe node. A terminal node is defined as a node that has no outgoing edges.

Graphs: A Comprehensive Guide

6 minute read

Published:

Graph problems are a fundamental part of computer science and are frequently encountered in competitive programming and technical interviews. They require a good understanding of graph theory and the ability to recognize various problem patterns. In this post, we’ll explore different types of graph problems, the patterns they follow, and some example problems to practice.

Binary Trees: A Comprehensive Guide

15 minute read

Published:

Binary trees are a fundamental data structure in computer science, often used in various applications ranging from databases to operating systems. Understanding the different types of problems and patterns associated with binary trees is essential for anyone looking to master data structures and algorithms. In this guide, we will explore key binary tree problem patterns and provide examples for each.

Coding Patterns: A Comprehensive Guide

6 minute read

Published:

This post includes some popular problems sorted according to the different patterns. This list excludes tree or graph related BFS and DFS, and dynamic programming. I feel that those topics require their own posts!

Study Plan: Dynamic Programming

3 minute read

Published:

This page is continually updated with new and improved content to ensure the best curation for Dynamic Programming problems.

academics

COMPSCI 589: Machine Learning (Grade: A)

Published:

Course Overview:
This course provided a comprehensive introduction to core machine learning models and algorithms, covering key concepts in classification, regression, clustering, and dimensionality reduction. It balanced theoretical understanding with practical application, allowing students to grasp both the mathematical foundations and the real-world usage of machine learning techniques.

COMPSCI 682: Neural Networks - A Modern Introduction (Grade: A)

Published:

Course Overview:
COMPSCI 682 is a 3-credit course focused on modern and practical methods for deep learning. The course began with an introduction to simple classifiers such as perceptrons and logistic regression and progressively moved into more complex topics, including standard neural networks, convolutional neural networks, and elements of recurrent neural networks and transformers. While the course provided a strong emphasis on practical applications, it maintained a solid foundation in the fundamentals of deep learning.

COMPSCI 532: Systems for Data Science (Grade: A)

Published:

Course Overview:
COMPSCI 532: Systems for Data Science is a 3-credit course designed to provide students with a deep understanding of the systems and infrastructures that underpin large-scale data science. The course focuses on the principles and challenges associated with scaling computational processes both vertically (to many processors) and horizontally (to many nodes), enabling efficient and fast analyses of large datasets.

COMPSCI 685: Advanced Natural Language Processing (Grade: A)

Published:

Course Overview:
Natural Language Processing (NLP) is both an engineering art and a science, focused on teaching computers to understand human language. As a subset of artificial intelligence, NLP has become ubiquitous, powering voice assistants, web-based question answering, discussion analysis in social media, and even human language translation. The complexity of language—rich in nuances and ambiguity—makes it challenging for computers to understand, but through the application of data, mathematics, and linguistic insights, these engineering problems can be tackled.

COMPSCI 670: Computer Vision (Grade: A)

Published:

Course Overview:
This graduate-level course delves into the sophisticated techniques for analyzing visual data, particularly color images. The course is structured in two key parts:

portfolio

Project Detail: Geospatial Object Detection

Published:

Develop a system that detects and classifies objects in satellite or aerial imagery, such as buildings, roads, and natural landmarks, and uses geolocation data to map them accurately. This could be used for urban planning, disaster response, or environmental monitoring

projects

research