Flowgorithm

Last updated
Flowgorithm
Flowgorithm Logo.svg
Flowgorithm Editor.png
Paradigm Structured, imperative
Designed by Devin Cook
First appeared2014
Stable release
4.5.0 / October 8, 2024
Typing discipline Static, strong, safe
Implementation language C#
OS Windows
(planned for OS X and Linux)
License Freeware
Filename extensions .fprg
Website flowgorithm.org
Influenced by
Flowcharts

Flowgorithm is a graphical authoring tool which allows users to write and execute programs using flowcharts. The approach is designed to emphasize the algorithm rather than the syntax of a specific programming language. [1] The flowchart can be converted to several major programming languages. Flowgorithm was created at Sacramento State University. [2]

Contents

Origin of name

The name is a portmanteau of "flowchart" and "algorithm". [3]

Supported programming languages

Flowgorithm can interactively translate flowchart programs into source code written in other programming languages. As the user steps through their flowchart, the related code in the translated program is automatically highlighted. The following programming languages are supported: [4]

Multilingual support

Besides English, Flowgorithm supports other spoken languages. These are: [4]

Graphical shapes

Flowgorithm combines the classic flowchart symbols and those used by SDL diagrams. The color of each shape is shared by the associated generated code and the console window. The colors can be changed to several built-in themes.


Flowgorithm Shapes.png

Example

The image below has the solution for 99 Bottles of Beer. A function is used to return a string that either contains the singular "bottle" or plural "bottles" depending on the value of the parameter.
Flowgorithm 99 Bottles of Beer.png

See also

Other educational programming languages include:

Related Research Articles

A "Hello, World!" program is generally a simple computer program that emits to the screen a message similar to "Hello, World!". A small piece of code in most general-purpose programming languages, this program is used to illustrate a language's basic syntax. A "Hello, World!" program is often the first written by a student of a new programming language, but such a program can also be used as a sanity check to ensure that the computer software intended to compile or run source code is correctly installed, and that its operator understands how to use it.

An integrated development environment (IDE) is a software application that provides comprehensive facilities for software development. An IDE normally consists of at least a source-code editor, build automation tools, and a debugger. Some IDEs, such as IntelliJ IDEA, Eclipse and Lazarus contain the necessary compiler, interpreter or both; others, such as SharpDevelop and NetBeans, do not.

<span class="mw-page-title-main">Microsoft Access</span> Database manager part of the Microsoft 365 package

Microsoft Access is a database management system (DBMS) from Microsoft that combines the relational Access Database Engine (ACE) with a graphical user interface and software-development tools. It is a member of the Microsoft 365 suite of applications, included in the Professional and higher editions or sold separately.

<span class="mw-page-title-main">Programming language</span> Language for communicating instructions to a machine

A programming language is a system of notation for writing computer programs. Programming languages are described in terms of their syntax (form) and semantics (meaning), usually defined by a formal language. Languages usually provide features such as a type system, variables, and mechanisms for error handling. An implementation of a programming language is required in order to execute programs, namely an interpreter or a compiler. An interpreter directly executes the source code, while a compiler produces an executable program.

In computer science, pseudocode is a description of the steps in an algorithm using a mix of conventions of programming languages with informal, usually self-explanatory, notation of actions and conditions. Although pseudocode shares features with regular programming languages, it is intended for human reading rather than machine control. Pseudocode typically omits details that are essential for machine implementation of the algorithm, meaning that pseudocode can only be verified by hand. The programming language is augmented with natural language description details, where convenient, or with compact mathematical notation. The purpose of using pseudocode is that it is easier for people to understand than conventional programming language code, and that it is an efficient and environment-independent description of the key principles of an algorithm. It is commonly used in textbooks and scientific publications to document algorithms and in planning of software and other algorithms.

<span class="mw-page-title-main">Visual programming language</span> Programming language written graphically by a user

In computing, a visual programming language, also known as diagrammatic programming, graphical programming or block coding, is a programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually. A VPL allows programming with visual expressions, spatial arrangements of text and graphic symbols, used either as elements of syntax or secondary notation. For example, many VPLs are based on the idea of "boxes and arrows", where boxes or other screen objects are treated as entities, connected by arrows, lines or arcs which represent relations. VPLs are generally the basis of Low-code development platforms.

<span class="mw-page-title-main">Flowchart</span> Diagram that represents a workflow or process

A flowchart is a type of diagram that represents a workflow or process. A flowchart can also be defined as a diagrammatic representation of an algorithm, a step-by-step approach to solving a task.

C# and Visual Basic (.NET) are the two main programming languages used to program on the .NET framework.

<span class="mw-page-title-main">Lego Mindstorms NXT</span> Programmable robotics kit

Lego Mindstorms NXT is a programmable robotics kit released by Lego on August 2, 2006. It replaced the Robotics Invention System, the first-generation Lego Mindstorms kit. The base kit ships in two versions: the retail version and the education base set. It comes with the NXT-G programming software or the optional LabVIEW for Lego Mindstorms. A variety of unofficial languages exist, such as NXC, NBC, leJOS NXJ, and RobotC. A second-generation set, Lego Mindstorms NXT 2.0, was released on August 1, 2009, with a color sensor and other upgrades. The third-generation EV3 was released in September 2013.

The following outline is provided as an overview of and topical guide to computer programming:

<span class="mw-page-title-main">Comment (computer programming)</span> Explanatory note in the source code of a computer program

In computer programming, a comment is a human-readable explanation or annotation in the source code of a computer program. They are added with the purpose of making the source code easier for humans to understand, and are generally ignored by compilers and interpreters. The syntax of comments in various programming languages varies considerably.

<span class="mw-page-title-main">Scratch (programming language)</span> Programming language learning environment

Scratch is a high-level, block-based visual programming language and website aimed primarily at children as an educational tool, with a target audience of ages 8 to 16. Users on the site can create projects on the website using a block-like interface. Scratch was conceived and designed through collaborative National Science Foundation grants awarded to Mitchel Resnick and Yasmin Kafai. Scratch is developed by the MIT Media Lab and has been translated into 70+ languages, being used in most parts of the world. Scratch is taught and used in after-school centers, schools, and colleges, as well as other public knowledge institutions. As of 15 February 2023, community statistics on the language's official website show more than 123 million projects shared by over 103 million users, and more than 95 million monthly website visits. Overall, over 1 billion total projects have been created, with the site reaching its 1,000,000,000th project in April 2024.

<span class="mw-page-title-main">DRAKON</span> Algorithm mapping tool

DRAKON is a free and open source algorithmic visual programming and modeling language developed as part of the defunct Soviet Union Buran space program in 1986 following the need in increase of software development productivity. The visual language provides a uniform way to represent processes in flowcharts.

<span class="mw-page-title-main">Scripting language</span> Programming language designed for scripting

In computing, a script is a relatively short and simple set of instructions that typically automate an otherwise manual process. The act of writing a script is called scripting. Scripting language or script language describes a programming language that is used for scripting.

<span class="mw-page-title-main">Stencyl</span> Video game development software

Stencyl is a video game development tool that allows users to create 2D video games for computers, mobile devices, and the web. The software is available for free, with select publishing options available for purchase. The software was originally called "StencylWorks" while in development and for the initial release but was later shortened to just "Stencyl".

Hopscotch is a visual programming language developed by Hopscotch Technologies, designed to allow young or beginner programmers to develop simple projects. Its simple UI allows its users to drag and drop blocks to create scripts that can be played when activated. The use of the language is through an iPad or iPhone supporting Hopscotch. It has many easy-to-understand tutorials to help kids learn faster, and the ability to play other users projects that can help them learn and let them play!

<span class="mw-page-title-main">Raptor (programming language)</span>

RAPTOR, the Rapid Algorithmic Prototyping Tool for Ordered Reasoning, is a graphical authoring tool created by Martin C. Carlisle, Terry Wilson, Jeff Humphries and Jason Moore. Thosted and maintained by former US Air Force Academy and current Texas A&M University professor Martin Carlisle.

<span class="mw-page-title-main">Blockly</span> JavaScript library

Blockly is a client-side library for the programming language JavaScript for creating block-based visual programming languages (VPLs) and editors. A project of Google, it is free and open-source software released under the Apache License 2.0. It typically runs in a web browser, and visually resembles the language Scratch.

References

  1. "ASEE PSW-2015 Conference Proceedings" (PDF). asee.org. p. 158. Retrieved 2016-05-04.
  2. Kourouma, Mathieu (22 October 2016). "Capabilities and Features of Raptor, Visual Logic, and Flowgorithm for Program Logic and Design". ResearchGate. Retrieved 16 July 2017.
  3. "Info". Flowgorithm. Archived from the original on 2016-03-16. Retrieved 2016-01-15.
  4. 1 2 "Features". Flowgorithm. Archived from the original on 2015-12-09. Retrieved 2016-01-15.