Our Index of Tutorials for all the topics

Mathematics

Algebra

Introduction to Complex NumbersIntroduction to Complex Numbers and iota. Arg-and plane and iota. Complex numbers as free vectors. N-th roots of a complex number. Notes, formulas and solved problems related to these sub-topics.

Series and ProgressionsArithmetic, Geometric, Harmonic and mixed progressions. Notes, formulas and solved problems. Sum of the first N terms. Arithmetic, Geometric and Harmonic means and the relationship between them.

Quadratic EquationsIntroducing various techniques by which quadratic equations can be solved - factorization, direct formula. Relationship between roots of a quadratic equation. Cubic and higher order equations - relationship between roots and coefficients for these. Graphs and plots of quadratic equations.

Linear Algebra - Simultaneous Equations in Multiple Variables - A Tutorial with Examples and Problems Representing 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.

Linear Algebra - Introductory Problems Related to Vector SpacesProblems demonstrating the concepts introduced in the previous tutorial. Checking or proving something to be a sub-space, demonstrating that something is not a sub-space of something else, verifying linear independence; problems relating to dimension and basis; inverting matrices and echelon matrices.

Computer Science and Programming

Data Structures and Algorithms

Arrays : Popular Sorting and Searching Algorithms

Bubble Sort - One of the most elementary sorting algorithms to implement - and also very inefficient. Runs in quadratic time. A good starting point to understand sorting in general, before moving on to more advanced techniques and algorithms. A general idea of how the algorithm works and a the code for a C program.

Insertion Sort - Another quadratic time sorting algorithm - an example of dynamic programming. An explanation and step through of how the algorithm works, as well as the source code for a C program which performs insertion sort.

Selection Sort - Another quadratic time sorting algorithm - an example of a greedy algorithm. An explanation and step through of how the algorithm works, as well as the source code for a C program which performs selection sort.

Shell Sort- An inefficient but interesting algorithm, the complexity of which is not exactly known.

Merge Sort An example of a Divide and Conquer algorithm. Works in O(n log n) time. The memory complexity for this is a bit of a disadvantage.

Quick SortIn the average case, this works in O(n log n) time. No additional memory overhead - so this is better than merge sort in this regard. A partition element is selected, the array is restructured such that all elements greater or less than the partition are on opposite sides of the partition. These two parts of the array are then sorted recursively.

Binary Search Algorithm- Commonly used algorithm used to find the position of an element in a sorted array. Runs in O(log n) time.

Basic Data Structures and Operations on them

StacksLast In First Out data structures ( LIFO ). Like a stack of cards from which you pick up the one on the top ( which is the last one to be placed on top of the stack ). Documentation of the various operations and the stages a stack passes through when elements are inserted or deleted. C program to help you get an idea of how a stack is implemented in code.

Queues First in First Out data structure (FIFO). Like people waiting to buy tickets in a queue - the first one to stand in the queue, gets the ticket first and gets to leave the queue first. Documentation of the various operations and the stages a queue passes through as elements are inserted or deleted. C Program source code to help you get an idea of how a queue is implemented in code.

Single Linked ListA self referential data structure. A list of elements, with a head and a tail; each element points to another of its own kind.

Double Linked List- A self referential data structure. A list of elements, with a head and a tail; each element points to another of its own kind in front of it, as well as another of its own kind, which happens to be behind it in the sequence.

Circular Linked ListLinked list with no head and tail - elements point to each other in a circular fashion.

Introduction To Networking

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.