Flowgorithm (flowgorithm.org) is an amazing program that teaches students how the basic concepts of procedural programming with the use of flowcharts. Flowgorithm is completely free. The flowcharts created by the user can be run in the program which help students see how the flow of the program from start to finish.
Flowgorithm can be used to introduce concepts such as variables, control statements (if and else), loops (while, for, do while), functions, and arrays. Flowgorithm also supports recursive functions and has basic built in mathematical and string functions that you can find more details about here. Users can add blocks by right clicking on a line that will open a menu that displays the possible blocks shown above.
In the program pictured, the user will input an integer representing a mark and the computer will output the corresponding letter grade. When the program is run, the input and output of the program is shown like a messaging system where the user input appears on the right and the computer output appears on the left. There is also a variable watch window that shows the current value of the variables in the program. This is very useful to help students debug their program with the built in debugger.
One of the most powerful features of Flowgorithm is the ability to convert the flowchart to a programming language. Flowgorithm supports many languages such as C++, Java, Python, Perl, Lua, etc. To change languages, the user just needs to select another language in the drop down menu. The lines of code in the programming language are color coordinated with the color used in the flowchart.
I’ve been teaching programming for a few years to students that have English as their second language. This creates a barrier as they are basically using their second language to learn a new language. I decided to look into visual programming as a visual aid for my programming classes.
First visual programming language that came to mind was Scratch from MIT. I tried it for a few semesters and found that the programs created are very visual and scratch isn’t very well suited for traditional programming problems such as those found on CodingBat or LeetCode. So I did some research and found Flowgorithm
I used Flowgorithm in my class for a semester and I found it helped my students develop overall programming ability as they could visually see how the program actually runs. It also helped them with their debugging skills and problem solving in general. The students also picked up Python much quicker when I used Flowgorithm to teach them compared to when I did not use Flowgorithm to teach them.
Some drawbacks I found were the following
- functions do not return arrays
- large programs can be a bit complex to navigate
- generated program language source code isn’t always ideal since it has to deal with both strictly typed languages and loosely typed languages
- currently available only on Windows
Despite the drawbacks, I recommend that you try it in your introductory programming course as it did help my students learn and understand the concepts better. Let me know how it went in your class in the comments below.
You can find more information about flowgorithm on their website.
If you like my work, a small donation or feedback will be much appreciated.