The first step to solving any problem is to think about what you are going to do. Only after deciding the right process and flow of the solution, you explain the same process to the computer using a programming language. So no matter what language you write your code in, to explain the computer what you want it to do, the first step is always deciding the flow. This is called writing pseudocode.
Let’s listen Sajan as he shows how to break down some complex real-life problems into smaller problems and write pseudocode for those using flow diagrams.
Our first problem for this discussion is the implementation of the back button. The back button is not only used in browsers but also in smartphones and different applications. Ever wondered how that works? Of course, we will not be designing the real back button for different applications or browsers, but we can still try and break down the basic implementation. This basic thought or flow of the problem is then worked on and improved with different things like giving different illustrations and applying a similar concept for different data forms and so on. Let's see how you will solve the implementation of the back button.
Here you saw a very rudimentary application of the back button using stacks. Another concept similar to stack is a queue. You can read more about stacks and queues here. We saw how the back button can be implemented as a stack using lists. This is also how the 'undo' function works in your text editors. The programs are built upon many times to improve performance and speed but the core idea never changes.
The next problem is YouTube views and upGrad views. You must have realised by now that YouTube keeps a count of the unique views each video gets. Even upGrad platform keeps track of the video being seen by its student to later analyse the content and student performance. How do you think this is done? Let us see Sajan explain this algorithm in the video below, which we are tracking if you viewed or not as well :P
Now you know why different websites store cookies or collect IP addresses or even ask you to signup or link accounts before viewing the content.
With this much data being saved, the next big problem is to search the entry of interest from this accumulated ton of data. Our next problem is the same. While shopping online on a platform you enter the product name and the platform finds all the relevant results for displaying, or while using any other filter as well. How would you implement this functionality on a platform?
Although a 'search bar' in real life has been further developed to perform more complex searches than just basic string matching, this should serve as a very good starting point to further develop a more sophisticated search bar. This solution might seem very trivial now, but that is only because we selected the right data structure. Selecting the right data structure to store a particular data depending on the problem at hand is can make the problem extremely easy or hard.
Try these following very easy problem statements and see if you can come up with a flow diagram to solve the problem, remember to put some thought into what data you will be saving and in what format.
Let us look at a few more such problems in the next segment.