Theory of Programming is a very helpful website that helps you in understanding a wide range of programming concepts. There are many posts on Data Structures, Algorithms and the Java Programming Language which explain the concepts with vivid explanations, well-drawn diagrams and also come with the actual code of concept.

Theory of Programming also has posts on solving competitive coding questions which are based on data structures and algorithms discussed in the website. These help you not only to be a hero in your classroom but also a legend in the coding websites such as CodeChef, SPOJ, etc.

Interview Corner!

Learn useful Data Structures !

December 24, 2014

Graph Theory

Hello people…! In this post, I will talk about Graph Theory Basics, which are its terminologies, types and implementations in C. Graphs are difficult to code, but they have the most interesting real-life applications. When you want to talk about the real-life applications of graphs, you just cannot resist talking about the Facebook’s Graph Search! …

Continue reading Graph Theory Basicsread more

December 25, 2014

Graph Theory

Hello people…! In this post, we will discuss about the Snakes and Ladders Game Code, where we find the shortest path to win the Snakes and Ladders game by using the Breadth First Search (BFS) Algorithm. If you don’t know the algorithm, I suggest you read my post on Breadth First Search Algorithm. Now, Graph …

Continue reading Snakes and Ladders Game Coderead more

March 27, 2015

Graph Theory

Hello people…! In this post, I will talk about the Prim’s Algorithm for finding a Minimum Spanning Tree for a given weighted graph. It is an excellent example of a Greedy Algorithm. It is very similar to Dijkstra’s Algorithm for finding the shortest path from a given source. This is my first post regarding the …

Continue reading Prim’s Algorithmread more

January 11, 2015

Graph Theory

Hello people…! In this post I will talk about one of the fastest single source shortest path algorithms, which is, the Dijkstra’s Algorithm. The Dijkstra’s Algorithm works on a weighted graph with non-negative edge weights and ultimately gives a Shortest Path Tree. It is a Greedy Algorithm, which sort of… mimics the working of Breadth First …

Continue reading Dijkstra’s Algorithmread more

December 24, 2014

Tree Data Structures

Every programmer needs a suitable data structure to compute some complex function or to do a time-taking task quickly. In this post, I will explain the Binary Indexed Tree (BIT) data structure also known as the Fenwick Tree in post-soviet countries. This data structure is very easy to code in competitions. So, a programmer who …

Continue reading Binary Indexed Tree (or) Fenwick Treeread more

January 16, 2015

Tree Data Structures

Hello people…! In this post we will talk about the Trie Tree Implementation. Trie Trees are are used to search for all occurrences of a word in a given text very quickly. To be precise, if the length of the word is “L“, the trie tree searches for all occurrences of this data structure in O(L) …

Continue reading Trie Tree Implementationread more

December 28, 2014

Heaps

Hello people…! In this post I will talk about Binary Heaps, or, more casually called as Heaps. Binary Heaps are used to implement Priority Queues which are associated with Scheduling. Binary Heaps is a starting step to learn many advanced heap related Data Structures that are used in many algorithms. So let’s understand the need …

Continue reading Binary Heapsread more

January 27, 2015

Tree Data Structures

Hello people…! In this post I will talk about one of the most versatile data structure in competitive programming, the Segment Tree. Almost in every contest that you do in the major coding websites, at least one question is asked which uses a Segment Tree in its solution. This is because it is easy to …

Continue reading Segment Treesread more

December 25, 2014

Graph Theory

Hello people…! In this post I will explain one of the most widely used Graph Search Algorithms, the Breadth First Search (BFS) Algorithm. Once you have learned this, you would have gained a new weapon in your arsenal, and you can start solving good number of Graph Theory related competitive programming questions. What we do …

Continue reading Breadth First Search Algorithmread more

January 19, 2015

Graph Theory

Hello people…! In this post I will talk about another single source shortest path algorithm, the Bellman Ford Algorithm. Unlike Dijkstra’s Algorithm, which works only for a graph positive edge weights, the Bellman Ford Algorithm will give the shortest path from a given vertex for a graph with negative edge weights also. Due to this, …

Continue reading Bellman Ford Algorithmread more

February 1, 2015

Tree Data Structures

Hello people…! In this post I will talk about the Binary Heaps and Heapsort Algorithm implemented using structures and not arrays. This is post is the successor to my previous post on Binary Heaps. Using arrays to code Binary Heaps is very comfortable for the programmer. But it is not fit for the day-to-day applications. …

Continue reading Binary Heaps and Heapsort Algorithmread more

December 26, 2014

Graph Theory

Hello people…! In this post I will talk about the other Graph Search Algorithm, the Depth First Search Algorithm. Depth First Search is different by nature from Breadth First Search. As the name suggests, “Depth”, we pick up a vertex S and see all the other vertices that can possibly reached by that vertex S and …

Continue reading Depth First Search Algorithmread more

Learn great Algorithms !

December 24, 2014

Miscellaneous

In competitive programming, Modular Arithmetic Properties are essential tools in solving big number problems. In the problem statement, whenever they say, “print the answer “, it’s not that simple. You may have worked a lot to get the logic, but the output must be given as they say. You may get your answer stored in a …

Continue reading Modular Arithmetic Propertiesread more

December 24, 2014

Graph Theory

Hello people…! In this post, I will talk about Graph Theory Basics, which are its terminologies, types and implementations in C. Graphs are difficult to code, but they have the most interesting real-life applications. When you want to talk about the real-life applications of graphs, you just cannot resist talking about the Facebook’s Graph Search! …

Continue reading Graph Theory Basicsread more

December 25, 2014

Graph Theory

Hello people…! In this post I will explain one of the most widely used Graph Search Algorithms, the Breadth First Search (BFS) Algorithm. Once you have learned this, you would have gained a new weapon in your arsenal, and you can start solving good number of Graph Theory related competitive programming questions. What we do …

Continue reading Breadth First Search Algorithmread more

December 25, 2014

Graph Theory

Hello people…! In this post, we will discuss about the Snakes and Ladders Game Code, where we find the shortest path to win the Snakes and Ladders game by using the Breadth First Search (BFS) Algorithm. If you don’t know the algorithm, I suggest you read my post on Breadth First Search Algorithm. Now, Graph …

Continue reading Snakes and Ladders Game Coderead more

December 26, 2014

Graph Theory

Hello people…! In this post I will talk about the other Graph Search Algorithm, the Depth First Search Algorithm. Depth First Search is different by nature from Breadth First Search. As the name suggests, “Depth”, we pick up a vertex S and see all the other vertices that can possibly reached by that vertex S and …

Continue reading Depth First Search Algorithmread more

January 11, 2015

Graph Theory

Hello people…! In this post I will talk about one of the fastest single source shortest path algorithms, which is, the Dijkstra’s Algorithm. The Dijkstra’s Algorithm works on a weighted graph with non-negative edge weights and ultimately gives a Shortest Path Tree. It is a Greedy Algorithm, which sort of… mimics the working of Breadth First …

Continue reading Dijkstra’s Algorithmread more

January 20, 2015

Sorting Algorithms

Hello people…! In this post I will talk about the Quick Sort Algorithm. This is an in-place sorting algorithm, which means it works on the given array itself and does not need any additional space, which means less overheads. But this is an unstable sorting algorithm, which means that the relative position of equal elements …

Continue reading Quick Sort Algorithmread more

January 19, 2015

Graph Theory

Hello people…! In this post I will talk about another single source shortest path algorithm, the Bellman Ford Algorithm. Unlike Dijkstra’s Algorithm, which works only for a graph positive edge weights, the Bellman Ford Algorithm will give the shortest path from a given vertex for a graph with negative edge weights also. Due to this, …

Continue reading Bellman Ford Algorithmread more

January 29, 2015

Sorting Algorithms

Hello people…! In this post I will talk about another sorting algorithm, the Merge Sort Algorithm, which is considered to be the fastest sorting technique by many. Merge Sort was invented by a famous computer scientist John von Neumann. It is a stable sort, so the relative position of the elements are preserved. It uses …

Continue reading Merge Sort Algorithmread more

March 27, 2015

Graph Theory

Hello people…! In this post, I will talk about the Prim’s Algorithm for finding a Minimum Spanning Tree for a given weighted graph. It is an excellent example of a Greedy Algorithm. It is very similar to Dijkstra’s Algorithm for finding the shortest path from a given source. This is my first post regarding the …

Continue reading Prim’s Algorithmread more

Learn the Java Programming Language !

May 26, 2015

Java

Hello people…! This is the first post in Java Tutorials – An Introduction. This, is a whole new section of Theory of Programming, where we talk about one of the most widely used languages in industry, Java. I have quite a lot of experience programming in Java and developing small applications. So, I am combining …

Continue reading Java Tutorials – An Introductionread more

May 27, 2015

Java

Hello people…! This is a new post in Java Tutorials – Data Types, Input and Operators in Java. In my previous post, Java Tutorials – An Introduction, I introduced you to the Java programming language. We didn’t do anything more than printing text on the terminal. Now, we will learn to write short programs which …

Continue reading Data Types, Input and Operators in Javaread more

May 30, 2015

Java

Hello people…! This is a new post in Java Tutorials – If-Else Switch and Loops in Java. In this post, I will talk about branching and looping in Java, i.e. , about the if-else, switch and loop constructs. With this you can write plenty of programs in Java which you wrote to practice C language. …

Continue reading Java Tutorials – If-Else Switch and Loops in Javaread more

August 14, 2015

Java

Hello people..! So we finally come to the most famous part of Java, the Object Oriented Programming (OOP). Although I introduce OOP in this post, this post mainly to get you started with the notion of classes and objects. But, before we start our discussion on OOP, let us see why the modern world is …

Continue reading Java Tutorials – Classes and Objectsread more

June 5, 2015

Java

Hello people…! This is a new post in Java Tutorials – String, StringBuffer and StringBuilder in Java. In this post, I will talk about some basics about Strings in Java. Why basics…? Well, there is a lot in Java when it comes to Strings, which we can’t understand right now due to lack of knowledge. …

Continue reading Java Tutorials – String, StringBuffer and StringBuilder in Javaread more

June 14, 2015

Java

Hello people..! This is a new post in Java Tutorials – Arrays in Java. In this post I will talk about about using arrays in Java. Arrays in Java are different from arrays in C. Arrays in Java are actually objects. But understanding arrays as being-an-object point-of-view is not something beginners feel comfortable with. So …

Continue reading Java Tutorials – Arrays in Javaread more

June 21, 2015

Java

Hello people..! This is a new post in Java Tutorials – Enum and Methods in Java. In this post I will talk about enum and methods (that is, functions) in Java. The full potential and usage of these constructs will be seen when we start creating classes. But you’ve gotta start somewhere..! So this post …

Continue reading Java Tutorials – Enum and Methods in Javaread more

February 19, 2016

Java

Hello, people..! Now we are going to look at the most basic and the first major topic in Object Oriented Programming, Encapsulation. For those who don’t know OOP, it is very important that you spend a lot of time trying to understand these concepts. Because once you learn these concepts, it will be exactly the …

Continue reading Encapsulation in Javaread more

March 3, 2016

Java

Hello, people..! In this post, we will explore some more aspects of object-oriented programming, which is overloading methods, but before that, I thought it is the right the time to tell you about what a constructor is. Constructor The constructor is a special method which is written in a class. This is called exactly once …

Continue reading Java Tutorials – Constructor and Overloading Methodsread more

Learn the C++ Programming Language!

Miscellaneous but Important!

## Express your support by liking our Facebook Page!

Did Theory of Programming help you with programming..? If yes, then, express your support by liking our Facebook page and sharing it with your friends. Let the knowledge flow..! The more you share, the more you get..! ;)

please provide a editorial on kmp algorithm.

please make a tutorial on suffix tree..

Sure…! We will try to post a tutorial on suffix tree in the near future 🙂

when you click on something in some cases cursor not appear , you need to fix that thing

This website was shifted from WordPress.com to a self-hosted one… So errors do creep in…. Can you be more specific so that I can deal with this..?

Nice job done sir. (y)

Thank you..!! 😀

This is really nice vamsie

Thanks a lot….!! 😀

hi, can u provide notes on hashmap, please…

I’ll try 🙂

great work Vamsi.. 🙂

Thank you Nitesh…! 🙂 😀

Good work Vamsi…..Here are a few suggestions-

1. For every topic you have covered just at the end give few links of the question may be from spoj, codechef, codeforces etc where people can practice after reading from the topics. This is because as the case of programming is concerned reading only or understanding will not help, you have to do a great deal of practice. Just make sections like beginners problem, advance and professional problems or something like that under each section.

2. Make a separate forum where people can post questions about different topics or questions and not only you others can also give their answers. It would help to bring the programming community and different coders together to your site.

3. Make a separate section for interview corner. Here write interview experience of people of different companies.

4. Make sections for Java, C, C++ basic concepts.

5. Maybe the name of books you want to recommend.

6. Output/MCQ questions or Quiz kind of thing of the topics studied.

Please don’t feel offended, but there are a lot many sites where you can find this stuff. You have to make things different from them and even better to attract people towards your site. You can take this journey of your to great levels.

Once again great work and just please don’t feel bad by my words. The above are just suggestions. You are free to implement any subsets of these including the null set.

Haha…! I was actually looking forward for suggestions such as these Vipul sir. As I am still young and I don’t have as much exposure as you sir. I am very glad you gave me these suggestions sir. And they are pretty cool too, sir. But they’ll take time. Eventually, I will surely implement them, sir, because you pin-pointed the drawbacks of my blog very accurately. Thanks a lot for your suggestions sir, they mean a lot to me…! ☺

Yes it will take time. So it is better to ask your batch-mates who are good in respective topics to write about some topics and give it to you in the required format. And then you put it on your site and also acknowledge them at the last of the post by writing something like- Thanks to Mr. xyz for contributing/helping for this post/topic. Moreover make a different section where you put the name of all those who have contributed so that you bring the programming community together. In this way they would also show interest in promoting your site as their name appears on it and also you will be able to quickly develop the website. Again you are free to implement any subsets of these including the null set.

That’s a great suggestion for developing the blog Vipul sir…! ☺ I will surely see what I can do. Thanks for the suggestion sir..! ☺

great work Vamsi !! keep it up (y)

Thanks a lot Keerti…!! 🙂

super ra . its very nice and also much helpful 🙂 🙂 all the best and hoping to see more like this from you . thumbs up 🙂

Thank you Sibhi…! I’ll surely try my best man…! ☺

nice work bro……may this be the beginning to your successfull career!!! 🙂

Thanks a lot Hemanth bro…!! ☺

grt work mama….!!!!!!!!!! Really gud to have one of this …….!!!! Helpful in many contexts……Hope we get more theory being added in this …….

Thanks a lot Neelesh ☺ …! We will surely have more and more theories man…! ☺

Good job Vamsi….proud of you…. God bless you.

Thanks a lot…! ☺ ☺

helpful for us sir………

Yes, Adarsh… I really hope my blog helps many more people who are in the need…! ☺

Great work champ!!! All the very best. It’s so good to see you people do so good. God bless you. kepp doing the good work. Hoping to learn from you now from here.. 😉

Thanks a lot Siddhant sir…! ☺ I don’t think the time will ever come when you would have to learn from me, Sir, and neither will the day come when you sptop inspiring me ! Thanks for everything you have done for me, Sir…! ☺

Good Job (y)

Thanks a lot Divya…! ☺

Great work dude (y)

Thanks a lot Shiv Sir….! ☺

Great Work job VAMSI !!!!!! 🙂 🙂

Thanks a lot Aanchal…! ☺

great work vamsi…!! 🙂 keep it up!! good job!! 🙂 I-N-S-P-I-R-E-D! 😀

Thanks a lot Khyathi….! ☺

Nice blog, please keep adding more content. One recommendation, it would be more friendly to use this blog if the flow diagram above would take to the relevant sections directly when clicked. Ex: Clicking on ‘Learn New Data Structures’ directly takes us to the data structures table of contents.

Thanks a lot for the feedback, sir. It is an excellent suggestion too ! That would make a great feature. I will surely look into it…! Have a nice day !