Revision History (Older Versions)
Version 1.12.1 (May 8, 2016)
- Updated the language icons. I was displaying them in 8-bit rather
than 32-bit. They should look much nicer now.
- Added the current language to the status bar of the main window.
This was designed to make it easy for someone, who doesn't understand
the current displayed language, change it. I
didn't include the flag image. The flag is designed to help the user
locate the correct icon, but seems a tad unnecessary on the main window.
- In the Export Image window, the margin (in pixels) inputbox was
changed to a combobox. The user can enter any value they want, but it
has the most common ones available on the drop down list.
- The visual styles manifest was removed from the installation script.
This was originally added so the tile background would not appear red in
Windows 8.1. However, the issue became moot with the release of Windows
- Bug fixes:
- The Print Windows wasn't showing its progress in its status bar.
- The Export Image Window wasn't showing updates in its status
Version 1.12 (March 30, 2016)
- Added support for Russian - Thanks
to Olga Cooke.
- Updated the generated C++ code to use the vector template.
- Fixed a translation error in Galician. This was completely my fault.
Version 1.11.3 (January 29, 2016)
- Added support for the Brazilian dialect of Portuguese - Thanks
to Theldo Cruz Franqueira.
Version 1.11.2 (January 17, 2016)
- Added the Play, Step, Pause, and Stop buttons to the Console Window.
These have the same behavior as the buttons on the main window.
- Made some internal changes to make the Console Window draw better.
- I forgot to fix a bug in Lua generated code. It was missing the -1 for
Version 1.11.1 (January 15, 2016)
setup correctly for decreasing values.
- Fixed a bug in Python Code. A comma was missing for decreasing
Version 1.11 (January 11, 2016)
- Added support for Japanese - Thanks to Saito Yutaka
- Clipboard Popup Menu now follows the current color scheme.
- Rubén Castiñeiras Lorenzo released new versions of his Spanish
(Castilian) and Galician translations.
- Added a new tab to the About Window. The new tab lists the names of
everyone who has helped find bugs and give valuable feedback.
- Source Code Viewer:
- To denote the start of the
programs "main" code, the source code often contains a comment. Now, the
comment will only be added if needed.
- For Java, the generated class is now called
"JavaApplication". This follows the defacto standard used by Java IDEs.
- Made some internal changes to the Add Shape Popup Menu.
- Bug fixes (thanks to Mathieu Kourouma):
- Made some internal changes that prevent the Variable Watch Window
from crashing on certain versions of Windows.
- Fixed a various grammatical and spelling mistakes.
Version 1.10.2 (December 24, 2015)
- Added support for French - Thanks to François Capon
- Fixed a typo in the English translation (thanks again to
- Updated the Change Translation and About windows. The
languages/names are now displayed in a ListView control.
- Made some changes to the Add Shape menu so that it loads quicker
and, hopefully, with less flicker.
- Fixed a small flaw in the Edit Comment window. It was displaying an
icon and appearing in the Windows Task Bar. This wasn't consistent with
the rest of the edit windows. I doubt anyone noticed.
Version 1.10.1 (December 18, 2015)
- Modified the Swift code created by the Source Code Viewer. The
intrinsic function Random() now maps to the Swift random() function.
- Made some internal changes so the program loads faster.
- Some miscellaneous GUI tweaks.
Version 1.10 (December 17, 2015)
- Added the ability to control execution speed. The system now
supports: Fast, Medium, and Slow. When set to medium or slow, the user
can passively watch each shape execute. It essentially works like the
user pressing the "Step" button.
- The behavior of the Play, Step, Pause, and Stop buttons were
- Added Apple's Swift to the Source Code Viewer.
- Added a new color scheme: Vibrant.
- Made some cosmetic changes to the window headers. Now, each draws a
line on the top and bottom. The goal was to prevent color clashes with
the window's title bar.
- When the window is resized, it now makes sure it doesn't size it
larger than the screen. Before, it was always defaulting to 800x600.
- Fixed an error in the Italian translation. It was my fault, not the
original translator. When I changed the translation file format, I
mistranslated "Assignment". Thanks to Roberto Atzori for letting me
Version 1.9.2 (November 17, 2015)
- Fixed an error that affected parameters displayed in the Edit
Function window. The parameters weren't being translated correctly.
Version 1.9.1 (November 15, 2015)
Version 1.9 (November 14, 2015)
- Addedsupport for Portuguese - Thanks to Jorge Duque.
- Chart styles:
- When selecting a chart style and color scheme, the preview image
now shows the proper colors and shapes. This preview is used in the Change Chart Style
window, Print window, and Export Image window. The "Color Preview"
caption was removed since it is no longer needed.
- Added a new chart style: Default (Descriptive). It is identical to
the "Default" chart style, but uses descriptive text on each shape.
- Added a new color schemes: "Blueprints" and "Sacramento State".
Eventually, the application will allow custom color schemes to be
- The current color scheme is now used in dialog windows. In previous
versions, the window header background was always blue. With the
change, the background color changes for each scheme.
- The Add Shape popup menu was modified to handle the new color scheme
design. Changes include the hover effect as well as the border of the
- Most dialog windows were increased in size.
- Added a Copy button to the Console Window.
- Made some internal changes in preparation for a Macintosh/Linux port.
- Random number generation was improved. This is an internal change.
- Bug fixes:
- Fixed a bug in For Loops. The system was not checking the range
before executing the first time.
- Fixed a bug in QBasic generated code. The dollar suffix was missing
on the call to MID$.
Version 1.8.2 (October 5, 2015) - Minor Update
- Fixed some minor translations issues such as failing to put a
tooltip on the Functions Dropdown Menu.
- Made some improvements to Java generated code. In particular, string
comparison was fixed.
- Made some improvements to QBasic generated code.
Version 1.8.1 (October 3, 2015)
- Added languages:
- Spanish (Castilian) - Thanks to Rubén Castiñeiras Lorenzo.
- Galician - Thanks to Rubén Castiñeiras Lorenzo.
- Italian - Thanks to Riccardo Scorretti
- Source Code Viewer:
- QBasic was added.
- The Java/C++/C# code was improved.
Beforehand, it wasn't using the proper Usual Arithmetic Conversions
for the algebraic operators. This resulted in unnecessary casting.
- The modulus operator is no longer restricted to integers.
buttons and windows were resized. The changes were made to either better
accommodate other translations or to simply make the window look better.
- Bug fixes: If a function was renamed in the Function Manager, the dropdown list wasn't being updated.
Version 1.8 (August 15, 2015) - Major Update
- Beside English, Flowgorithm now supports multiple spoken languages. Please check out
the "Change Language" menu item under Tools. Supported languages
- Chinese - Thanks to 苏晓 .
- Czech - Thanks to Honza Vaněk.
- German - Thanks to Andrej Preradovic.
- Hungarian - Thanks to Péter Bernát.
- Spanish - Thanks to Juan Carlos Rosales Larralde.
- A new intrinsic functions:
- ToFixed() will convert a real to a string with fixed
number of digits after the decimal point. For example:
ToFixed(3.14159265, 2) will return the string "3.14".
- ToCode() will convert a string into a character code. It is the
opposite of ToChar().
- Registry is used to save settings. If the application is started in
Administrator Mode, it will save settings to the Local Computer. This
will used as the default for any new users (which are saved to the
- Source Code Viewer:
- Perl was added.
- When stepping through a program, the window will now keep the
current statement visible.
- Line numbers can now be displayed. To save screen space, the feature is unchecked
- Lua source code was improved. The source now
uses a simple helper function for array access. Lua uses 1-indexing
while most languages (including Flowgorithm) uses 0-indexing.
- The C# and Visual Basic .NET code was changed slightly. The helper
functions for inputting values were renamed.
- If a comment contains multiple lines (the user hit manually
added a newline), multiple comments were will be produced.
- Color schemes and styles:
- Added several color schemes. These include: Paint, Paint (dark
background), Cyberspace, and Retro Computer (1980's EGA color).
- Added a new style:
Classic (Trapezoid). This is a variation of the classic flowchart
format which uses trapezoids to represent input/output (rather than
using a parallelogram for both).
- Added a new style: Classic (GOST). This is a slight
variation of the classic style that is used in Russia and other
states in the vicinity.
- The Add Shape Pop-up Menu now shows the same shapes as the
current flowchart style. Beforehand, it always displayed static
images based on the "default" style.
- The Source Code Viewer, Console Window, and Add Shape Pop-up Window now use the current color scheme.
- Console Window:
- The prompt text was moved into a Status Strip.
- Added a small icon to the Enter Button.
- If the output is displayed in the text-only format, rather than
"chat bubbles", it will be displayed in Courier New.
- The Variable Watch Window was improved. If the window is wide
enough, the variables will be displayed in multiple columns. This
feature can be disabled by unchecking the Columns button.
- The Error Window now shows the "Cause" rather than a more generic "Details" field.
- The mouse scroll wheel now works with the main window, Source Code Viewer and Console
- Printing was improved. The color scheme's background color is used on the whole page (rather than just the bounding square for the
- The Layout Windows feature was modified slightly. The "Variables"
layout sets the Variable Watch Window at 1/4 of the screen rather than
- Added a Stack Overflow Error. If recursion is being taught (or
implemented accidently), the system will prevent a run-away recursive
call from taking down the application. Instead, an error message will be
displayed. The maximum internal stack size can be get in the registry to
a larger value if needed (which should never be the case).
- Bug fixes:
- Fixed a bug that affected For Loops. If the range was incorrect
(i.e. it should never execute the block), it was still executing it
- Fixed a rare bug with the clipboard. It was possible to copy "zero" shapes to the clipboard.
- Fixed a bug in generated Python code. Python uses the same Usual
Arithmetic Conversions as C, but the code was not converting
operands to floats (if needed).
- Java and C# were not putting the
"static" modifier on user-defined functions.
- Fixed a typo in the Comment Edit Window.
Version 1.7.4 (February 12, 2015) - Minor Update
- Fixed a few minor spelling errors.
- The captions were made more consistent throughout the application.
Version 1.7.3 (February 9, 2015)
- Fixed a rather careless bug with the contextual menu that appears
for highlighted shapes. It should just appears after a single
right-click. However, it was requiring two clicks. Fortunately, the
Control-X, Control-V and delete buttons were working.
Version 1.7.2 (January 19, 2015)
- Minor changes to some error windows.
Version 1.7.1 (January 7, 2015)
- Source Code Viewer:
- Cleaned up the Delphi/Pascal generated code. The new code will make better use of dynamic arrays
and the SetLength() function.
- Updated some internal logic so the window updates better - in particular,
the vertical scroll bar.
- The system
will no longer display a syntax error if the user clicks "OK" on an
incomplete shape. The shape will still be displayed in gray.
- New shapes can be added by just clicking once on a line. Beforehand, the Add
Shape window would only appear if the line was double-clicked or
right-clicked. To edit a shape, you still need to couple click.
Changed some menu labels and tooltip labels.
Version 1.7 (January 2, 2015)
- Language improvements:
- Arrays can now be passed into functions. Function parameters
were also updated to support this feature.
- For Loops can now implement increasing and decreasing order.
Beforehand, For Loops were restricted to increasing order.
- Added two more trigonometric functions: arcsin() and arccos().
- To work with arrays, the size() function was added. It returns
the size (number of elements) of an array.
- Source Code Viewer:
- Added the Delphi / Pascal programming language.
- Internal changes were made so blank lines are inserted far more
logically than before. Basically, blank lines are inserted before a
group of comments or after a group of declarations.
- Added a button that allows you to disable the vertical padding
on each line. Without it, the text is not as cosmetically appealing,
but it is more condense.
- Fixed a cosmetic bug in VBA generated code. Subs were being indented one level too many.
- The Declare Shape was changed to make it easier to declare arrays. The
old format had the user write a very "code-like" statement. The new
version uses drop downs and should be more natural.
- File format was updated to support the new features. The "fprg" file
is compatible with older versions of Flowgorithm - although, naturally,
the new features will not be present.
- Made some minor modification to the error window.
Version 1.6.1 (December 14, 2014)
- Added auto-scrolling. If the user is selecting a region with the
mouse, the window will automatically scroll if the mouse is near the
edge. This behavior is found in most editors today.
- The Chart Style window, when opened, will show the current settings.
Before, it was always defaulting to "default" in "pastel".
- Fixed a bug that caused the system to crash if an invalid
identifier was entered.
- Fixed a few minor spelling error: affect vs. effect.
Version 1.6.0 (December 7, 2014)
- Language improvements:
- Added a new constant: Pi. You can now used PI in your programs
without having to manually declare a variable or use the literal 3.14...
in your expressions. In generated code, it will map to the language's
- The Equal-To and Not-Equal-To operators can now compare two Boolean
- I added a bunch of identifiers to the "future expansion" list. These
will be invalid to use for identifiers.
- The Export to Image File tool now allows you to specify if there
will be a margin (measured in pixels).
- The Chart Style button, on the main toolbar, lets you select a color
scheme and a chart style. The color schemes match the ones found in the
Print and Export to Image File windows. This window will be expanded in
- I also added a "gray scale" color scheme.
- Double-clicking (or right-clicking) on the flowchart background will
no longer open the Program Attributes window. Users found this annoying.
- I made the Input Shape a tad more blue. It appeared purple on some
- Bug fixes:
- If an array element is out of bounds, the error window was not
showing the correct upper bound.
- If a variable name is invalid (predefined), the system was not
alerting the programmer or causing an error
Version 1.5.0 (November 22, 2014)
- The Variable Watch window now can display arrays.
- Added a new intrinsic function: ToChar(). It will convert an
integer, representing a character code, into a character.
- Source Code Viewer now supports:
- Added Lua
- Added Ruby
- Added VBA (Visual Basic for Applications)
- Bug fixes:
- Made internal changes designed to eliminate a comma/decimal
point error. The "decimal mark", used in real numbers, can either be a comma or period -
depending on the culture. Europe, in particular, uses a comma. The
software was not handling the difference well. The new code will use
a period for all cases.
- Fixed a minor bug that affected the code generator. It was not
clearing the 'current statement' color properly.
- Removed multi-dimensional arrays. They are not really needed for
an introductory programming tool. Also, multi-dimensional arrays are
supported by the new generated languages.
Version 1.4.3 (October 18, 2014)
- Made some changes to avoid the crashing issue that affects some
users. I'm pretty sure that the error was resolved.
- I updated the internal parser tables so that variable
identifiers and string literals support Unicode characters.
Identifiers can now start with any Unicode "letter" character and
can be followed by zero or more Unicode letters or the digits 0..9.
- The Source Code Viewer now saves text in UTF-8.
Version 1.4.2 (October 17, 2014)
- Made some minor changes to how stepping works:
- The logic used to display the current shape was improved.
- Comments are now skipped.
- The Layout Windows tool is now displayed with a white background.
This is purely cosmetic.
Version 1.4.1 (October 16, 2014)
- When stepping through the Main function, the system will now wait on the
"end" terminal. This is the behavior on all other functions, but I forgot to give
this behavior to Main.
- Fixed a flaw in C++ generated code.
- The Source Code Viewer now saves text using the carriage-return
+ line-feed combo to terminate lines.
- Added a window that will catch any unhandled errors and copy the
error information to the clipboard. Hopefully, this will help solve
Version 1.4.0 (October 13, 2014)
- Debugging / Demonstration:
- Added a new Variable Viewer window. When stepping through a
program, this window will show the current variables. Each data
type is displayed using a unique color: integers (blue), real
numbers (purple), strings (red), Booleans (cyan). Arrays will not be
displayed - at least for now.
- The Layout Windows tool was revamped. Since variables can now be
displayed, the number of different screen configurations also
increased. The application will now display a window with several
preview pictures. You can either select "Layout Windows" from the menu or press
- When stepping through a program, the system will now keep the
current statement visible. This means it will automatically change charts and/or move the scrollbars.
- The system will also jump to a shape if an error occurs.
- If an error occurs when a function returns a value, the ending
terminal will now be highlighted in red.
- When a program is being loaded/saved, the status bar (at the bottom)
lets the user know what is happening. Also, the toolbars are
disabled at this time.
- The 'Export to an Image File' utility now adds the name of the
flowchart to the default name.
- The main window now zooms in and out far more smoothly.
- The Console Window was improved. The "chat bubbles" maintain better
margins with the left and right side.
- The Flowchart Style dropdown was replaced with an icon. This was
done to save space.
- Added an icon for the Variable Viewer. The Source Code Viewer was
changed to match the style.
- Source Code Viewer:
- Added C++.
- Source code was greatly improved. If a feature (such as a random
number generator) is not used, then the source code will not contain
- A new dropdown menu was added to the Source Code Viewer. The
dropdown displays the "style" of the source code. Beforehand, the
language dropdown had text like "Java (hanging brace)" which got too
verbose after I added C++. For now, the style dropdown just
displays "hanging brace" or "aligned brace" for C++ and Java.
- If the Copy Button is clicked on the Source Code Generator, it will tell the
user if text was copied. Also, if the source is empty, an error will no
- Bug fixes:
- Fixed a bug with Call Statements. If the program is executed, and
the statement is still gray, it caused a runtime error.
- Also fixed another bug with Call Statements. If the user causes a
syntax error, then the error will persist even after it is edited.
Basically, it wasn't resetting its "Syntax Status".
- The step value in For Loops cannot be negative. This is just a
limitation by Flowgorithm. If a negative value is used, an error
will now occur.
Version 1.3.3 (September 13, 2014)
- If a shape is edited, while the program is running (i.e. stepped
into), the flowchart will now stop and reset.
- Programs will now only be marked as 'changed' if a shape is
changed (rather then cancelled).
- The error messages for syntax and lexical errors were improved. They
were a tad obtuse before.
- If the Layout Windows feature is used, and a window is maximized, it
will be normalized.
- Source Code Generator:
- Fixed a minor Visual Basic generation bug. The source
contained "end class" rather than "end module".
- Fixed a Python generation bug. If code is generated, when a
Declare Statement is incomplete, the system reports an error.
Fortunately, it does not crash.
- Generated code for C#, Java, and Python now handles backslashes.
Flowgorithm doesn't have backslash override codes. So, a backslash
is always just a backslash. The generated code will now convert \ to
Version 1.3.2 (August 26, 2014)
- A bug with copy and paste was fixed. The order of pasted items would
sometimes be incorrect.
Version 1.3.1 (August 24, 2014)
- Fixed an alignment bug for the false branch of If Statements. This
was purely cosmetic - and I doubt anyone would have noticed.
- Python print statements, when incomplete, will show parenthesis.
This is cosmetic.
- Added the Program Attributes window to the Program Menu.
Version 1.3.0 (August 22, 2014)
- Flowcharts can be saved (one function a time) to image files. You
have the same basic features as Print.
- Python was added to the Source Code Viewer
- Added a "Check for Updates" feature. It doesn't run automatically. I
didn't want it to become an annoying popup window on lab computers.
- When auto-arranging windows, the system will normalize windows if
they were maximized.
- Fixed a bug in the Source Code Viewer that affected inputting into
an array element.
Version 1.2.0 (August 14, 2014)
- Flowcharts can now be printed. The feature allows users to select
one of three different color schemes: the default pastel, black and
white outlined (a great non-color option), and black and white solid.
- Added some links to the Help Menu.
- Made some internal changes that should help refresh the screen
Version 1.1.2 (August 11, 2014)
- Some minor changes before the semester begins.
Version 1.1.1 (August 10, 2014)
- Some minor cleanup
- Input Statements can now read array values (like they should have
Version 1.1.0 (August 8, 2014)
- Comments were added to the flowcharts. Comments do not affect how
the program is interpreted or behaves. They are useful for documenting
information about the program - for programmers to read.
- Added zoom buttons to the Console Window.
- Added zoom buttons to the Source Code Viewer.
- Gaddis Pseudocode was improved. If there is only one function, Main,
the Source Code Viewer will only show the statements rather than a
"Module Main" block. This was designed to mimic the examples used in
Version 1.0.2 (August 6, 2014)
This was the first release of the program. There was a version 1.0.0 and
1.0.1, but they didn't make it to the site.