Data Structures and Algorithms
|
| Tree Data Structures |
|||
|
Binary Search Trees A basic form of tree data structures. Inserting and deleting elements in them. Different kind of binary tree traversal algorithms. |
Heaps - A tree like data structure where every element is lesser (or greater) than the one above it. Heap formation, sorting using heaps in O(n log n) time. | Height Balanced Trees - Ensuring that trees remain balanced to optimize complexity of operations which are performed on them. | |
| Graphs and Graph Algorithms | |||
Depth First Search - Traversing
through a graph using Depth First Search in which unvisited neighbors
of the current vertex are pushed into a stack and visited in that order. |
Traversing through a graph using Breadth First Search in which unvisited neighbors of the current vertex are pushed into a queue and then visited in that order. |
Minimum Spanning Trees: Kruskal Algorithm Finding the Minimum Spanning Tree using the Kruskal Algorithm which is a greedy technique. Introducing the concept of Union Find. |
Minumum Spanning Trees: Prim's Algorithm Finding the Minimum Spanning Tree using the Prim's Algorithm. |
|
Dijkstra Algorithm for Shortest Paths |
Floyd Warshall Algorithm for Shortest Paths All the all shortest path algorithm: Floyd Warshall Algorithm |
Bellman Ford Algorithm Another common shortest path algorithm : Bellman Ford Algorithm. |
|
| Popular Algorithms in Dynamic Programming | |||
| Dynamic Programming A technique used to solve optimization problems, based on identifying and solving sub-parts of a problem first. |
Integer Knapsack problem An elementary problem, often used to introduce the concept of dynamic programming. |
Matrix Chain Multiplication Given a long chain of matrices of various sizes, how do you parenthesize them for the purpose of multiplication - how do you chose which ones to start multiplying first? |
Longest Common Subsequence Given two strings, find the longest common sub sequence between them. |
| Dynamic Programming Algorithms covered previously: Insertion Sort, Floyd Warshall Algorithm Algorithms which we already covered, which are example of dynamic programming. |
|||
| Greedy Algorithms |
|||
| Elementary cases : Fractional Knapsack Problem, Task Scheduling - Elementary problems in Greedy algorithms - Fractional Knapsack, Task Scheduling. Along with C Program source code. |
Data Compression using Huffman Trees Compression using Huffman Trees. A greedy technique for encoding information. |
Commonly Asked Programming Interview Questions - from Microsoft/Google/Facebook/Amazon interviews
A Collection of C Programs
Functional Programming Principles and Techniques
| Functional Programming - A General Overview | Using the Functional Programming paradigm with a regular programming language like Ruby | ||
Introduction to Ruby
| Introduction to Ruby and some playing around with the Interactive Ruby Shell (irb) |
![]() Introduction to Ruby - Conditional statements and Modifiers: If-then, Unless, Case |
![]() |
![]() |
![]() Introduction to Ruby - Arrays - Sorting, Filtering (Select), Transforming, Multi-Dimensional Arrays |
Introduction to Ruby - Strings | ![]() |
![]() |
![]() |
Introduction to Ruby - Binomial Coefficients (nCr) : An Example of Recursion | ![]() |
Introduction to Ruby - Towers of Hanoi : An Example of Recursion |
![]() |
Basic Data Structures With Ruby
Databases - A Quick Introduction To SQL - Sample Queries demonstrating common commands
|
Introduction to SQL- A few sample queries - A Case Study - Coming up with a Schema for Tables -Taking a look at how the schema for a database table is defined, how different fields require to be defined. Starting with a simple "case study" on which the following SQL tutorials will be based. |
Introduction to SQL- A few sample queries : Creating Tables (CREATE) Creating tables, defining the type and size of the fields that go into it. |
Introduction to SQL - A few sample queries : Making Select Queries Elementary database queries - using the select statement, adding conditions and clauses to it to retrieve information stored in a database. |
Introduction to SQL - A few sample queries : Insert, Delete, Update, Drop, Truncate, Alter Operation Example of SQL commands which are commonly used to modify database tables. |
|
Introduction to SQL - A few sample queries: Important operators - Like, Distinct, Inequality, Union, Null, Join, Top |
Introduction to SQL- A few sample queries: Aggregate Functions - Sum, Max, Min, Avg - Aggregate functions to extract numerical features about the data. |
Introduction To Networking
| Client Server Program in Python |
A basic introduction to networking and client server programming in Python. In this, you will see the code for an expression calculator . Clients can sent expressions to a server, the server will evaluate those expressions and send the output back to the client. |
Introduction to Basic Digital Image Processing Filters
| Introductory Digital Image Processing filters | Low-pass/Blurring
filters, hi-pass filters and their behavior, edge detection filters in
Matlab . You can take a look at how different filters transform images. Matlab scripts for these filters. |
An Introduction to Graphics and Solid Modelling
Java Applet Visualizations of Common Algorithms and Data Structures


Sorting and searching arrays.
Linear data structures : Lists, Stacks, Queues
Trees : Binary search trees, Heaps, Height balanced trees
Recursion
Dynamic Programming
Greedy Algorithms

A Collection of C Programs
Functional Programming Principles and Techniques
| Functional Programming - A General Overview | Using the Functional Programming paradigm with a regular programming language like Ruby | ||
Databases - A Quick Introduction To SQL - Sample Queries demonstrating common commands
Introduction to SQL- A few sample queries - A Case Study - Coming up with a Schema for Tables -Taking a look at how the schema for a database table is defined, how different fields require to be defined. Starting with a simple "case study" on which the following SQL tutorials will be based. | Introduction to SQL- A few sample queries : Creating Tables (CREATE) Creating tables, defining the type and size of the fields that go into it. | Introduction to SQL - A few sample queries : Making Select Queries Elementary database queries - using the select statement, adding conditions and clauses to it to retrieve information stored in a database. | Introduction to SQL - A few sample queries : Insert, Delete, Update, Drop, Truncate, Alter Operation Example of SQL commands which are commonly used to modify database tables. |
Introduction to SQL - A few sample queries: Important operators - Like, Distinct, Inequality, Union, Null, Join, Top | Introduction to SQL- A few sample queries: Aggregate Functions - Sum, Max, Min, Avg - Aggregate functions to extract numerical features about the data. |
Areas of Mathematics which are important for Computer Science students
Probability
Basic of Linear Algebra
| Introduction to Matrices - Part I Introduction to Matrices. Theory, definitions. What a Matrix is, order of a matrix, equality of matrices, different kind of matrices: row matrix, column matrix, square matrix, diagonal, identity and triangular matrices. Definitions of Trace, Minor, Cofactors, Adjoint, Inverse, Transpose of a matrix. Addition, subtraction, scalar multiplication, multiplication of matrices. Defining special types of matrices like Symmetric, Skew Symmetric, Idempotent, Involuntary, Nil-potent, Singular, Non-Singular, Unitary matrices. | Introduction to Matrices - Part II Problems and solved examples based on the sub-topics mentioned above. Some of the problems in this part demonstrate finding the rank, inverse or characteristic equations of matrices. Representing real life problems in matrix form. | Determinants Introduction to determinants. Second and third order determinants, minors and co-factors. Properties of determinants and how it remains altered or unaltered based on simple transformations is matrices. Expanding the determinant. Solved problems related to determinants. | Simultaneous linear equations in multiple variablesRepresenting a system of linear equations in multiple variables in matrix form. Using determinants to solve these systems of equations. Meaning of consistent, homogeneous and non-homogeneous systems of equations. Theorems relating to consistency of systems of equations. Application of Cramer rule. Solved problems demonstrating how to solve linear equations using matrix and determinant related methods. |
Applied Mathematics : An Introduction to Game Theory
| An Introduction to Game Theory | Extensive Games | Bayesian Games : Games with Incomplete Information | Repeated Games |
Applied Mathematics : An Introduction to Operations Research
| Introduction to Operations Research | A quick introduction to Operations Research. Introducing Linear Programming, standard and canonical forms. Linear Programming geometry, feasible regions, feasible solutions, simplex method. Some basic problems. |

















