Logo en.artbmxmagazine.com

Tools to develop algorithmic thinking

Table of contents:

Anonim

Have you solved the same problem or developed an activity repeatedly? And each time, did you have to rethink everything you had to do, what steps or processes and in what order? In everyday life, any activity We can describe it as a series of actions or tasks. Likewise, we are always evaluating whether this activity is going to achieve what we want, starting from making decisions during its development, without losing sight of what we want to achieve and what we need to achieve it, to this set of activities or processes formed by a series of instructions or tasks organized in a logical way that allows us to achieve a result or solve a problem is known as an algorithm.

Many times we apply the algorithm unconsciously and automatically, since it has been solved so many times that we hardly start listing the steps to achieve the objective, and therefore we do it mechanically.

But on the other hand, there are a large number of problems that require deep analysis and flexible and structured thinking for a solution, and in order to solve them it is necessary to develop what we know as algorithmic thinking, that is, develop skills to solve problems. computer scientists using the computer through logical, systemic and reasoned thinking that allows proposing solutions when developing elementary algorithms, using the different methodologies and tools that exist.

But, what are those tools that can be recommended to develop algorithmic thinking? These tools will give you the guideline to get you started in the world of computer programming. In programming, methodological tools and techniques are used that allow the construction of efficient algorithms and therefore the resolution of a problem.

We can find useful tools developed by computer scientists and education, these tools allow us to unfold the mastery of the algorithmic school, for this I suggest the following tools, some are free, others are used directly on the web and that generally They are available to everyone, there are some others that have similar objectives, but I consider that these are essential to achieve a degree of algorithmic thinking that allows us to have the ability to solve problems.

1. Flow charts

2. Scratch

3. Blockly

4. C or C ++ language

5. Programming strategies

1.- Flow charts:

They are very useful to start with the graphical representation of everyday algorithms and to learn the principles of algorithm instruction, by using flow charts, developing construction techniques and algorithm representation. An example of a flow chart is seen in the figure below, which is a classic representation of some activities to check why a lamp is not working and to apply a solution.

Flowchart

Figure 1 Flow chart

As it can be observed, the flow diagrams favor the understanding of the processes when the algorithms are represented in the drawing.

After solving not only everyday problems and representing them with flow diagrams, you will now be ready to start with some tools that allow us to continue building algorithms, but now performing desktop tests, or as we say, implementing them and observing their operation. That's right, we know that there are tools like Logo and the Karel robot, but in my opinion I think you can start and work a few hours with Scratch.

2.- Scratch

It will be useful to develop basic animation and other projects to create simple applications by developing algorithms represented in puzzles or blocks. We can find excellent learning at:

Programming in puzzles

Figure 2 programming in puzzles, image taken from:

By downloading and installing scratch on your computer, you will have the possibility to prepare yourself in this fascinating world of programming, it is very versatile in the implementation of algorithms and, above all, with a very friendly interface.

3.- Blockly

Blockly is a basic programming that helps you interact in contexts other than scratch and that is programmed on the web by google: https://code.google.com/p/blockly/ we can develop our algorithmic thinking with its different tools, because you will help achieve objectives by using your algorithmic trend. An example of its representation is the following:

Sample blocks in Blockly

Figure 3 Example blocks in Blockly, taken from:

4.- The C language

If you have already made several flowcharts, you worked several hours on Scratch and Blockly; Now you are ready to implement your programming skills as the professionals do, yes, it is time to use a programming language that is appreciated to create systems software, although it is also used to create applications, there are others with great success but what Interesting is that you develop your algorithmic thinking skills and the C language will be of great advantage to you, just as you learn with Blockly and Scratch, in a language like C you will create a good habit to program because its rules influence your skills. That's right, now it is no longer all symbolic and as visual as scratch and Blockly, now you have clear objectives, the C language is not difficult,check the following example of some lines of code to send a "Hello world" message in language C, I add the explanation in each line of code expressed in the middle of the characters: / * * /.

#include / * Function library * /

main () / * Main function * /

{/ * Start of instruction block * /

printf ("Hello World"); / * The message with the instruction is sent to the screen

} / * End of instruction block * /

Do you see that the C language will be of great benefit to you?

With these tools, I reason that impressive algorithmic thinking can be developed, which will allow you to enter the fascinating world of computational logic.

5.- Programming strategies

What if you push your algorithmic thinking to the extreme? That's right, after the processes outlined here, if you want to continue developing your skill, study these excellent strategies after having worked a few days with the C language and reached the elementary data structures, you will be ready to take your algorithmic thinking to the extreme with the following strategies:

  • Recursion Divide and conquer Greedy algorithms Geometric algorithms Genetic algorithms

There are more strategies, but with these you start in the development of your advanced computational thinking.

Students who participate in academic events where algorithmic thinking skills are required, have reached a considerable degree of advancement, and solve complex problems. Such is the case of the contestants of the computer science Olympics. There are scientists and academics in search of more instruments, through artificial intelligence robots have also been developed that have a programming language to interact with it and thus implement elemental algorithms in robots.

Robots of the Michoacán Institute of Robotics

Figure 4 Robots from the Michoacano Institute of Robotics (Robotrim)

References

  • https://code.google.com/p/blockly/.http://scratch.mit.edu/.Robert Sedgewick (2007), Algorithms in C ++, Pearson education.https: //www.coursera.org/course /pealgorithmic.Figure 1 Flowchart.Figure 2 programming in puzzles, image taken from: https://scratch.mit.edu/.Figure 3 Example blocks in Blockly, taken from:.Figure 4 Robots from the Michoacano Institute of Robotics (Robotrim).
Tools to develop algorithmic thinking