May the source be with you, but remember the KISS principle ;-)
Home Switchboard Unix Administration Red Hat TCP/IP Networks Neoliberalism Toxic Managers
(slightly skeptical) Educational society promoting "Back to basics" movement against IT overcomplexity and  bastardization of classic Unix



See Also Recommended Books Recommended Links Reference Software
Visio MS Word and PowerPoint     Humor Etc

Flowcharts is a great education tool.  It is also of great help in troubleshooting and reconstruction of program logic. Now its almost forgotten art :-(.  I used to teach computer science students. It's simply great for introductory courses as well as for explanation of sorting and searching algorithms.  When flowcharting fell out of favor as a commercial design tool starting in the mid-1970s, it was discarded by CS teachers and now few are using it. I still do, but I am probably more an exception then the rule. 

It is not strictly necessary to use boxes, circles, diamonds or other such symbols to construct a flowchart, but these do help to describe the types of blocks in the chart more clearly. Described below are a set of standard symbols which are applicable to most situations without being overly complex.

A typical flowchart from older Computer Science textbooks may have the following kinds of symbols:

Start and end symbols.
Represented as circles, ovals or rounded rectangles, usually containing the word "Start" or "End", or another phrase signaling the start or end of a process, such as "submit enquiry" or "receive product".
Shows the "flow of control": an arrow coming from one symbol and ending at another symbol represents that control passes to the symbol the arrow points to.
Processing steps
Represented as rectangles. Examples: "Add 1 to X"; "replace identified part"; "save changes" or similar.
Represented as a parallelogram. Examples: Get X from the user; display X.
Conditional or decision
Represented as a diamond (rhombus). These typically contain a Yes/No question or True/False test. This symbol is unique in that it has two arrows coming out of it, usually from the bottom point and right point, one corresponding to Yes or True, and one corresponding to No or False. The arrows should always be labeled. More than two arrows can be used, but this is normally a clear indicator that a complex decision is being taken, in which case it may need to be broken-down further, or replaced with the "pre-defined process" symbol.

A number of other symbols that are much less frequently used and strictly speaking not that necessary as they do little to improve the clarity of the flowchart:

Flowcharts may contain other symbols, such as connectors, usually represented as circles, to represent converging paths in the flowchart. Circles will have more than one arrow coming into them but only one going out. Some flowcharts may just have an arrow point to another arrow instead. These are useful to represent an iterative process (what in Computer Science is called a loop). A loop may, for example, consist of a connector where control first enters, processing steps, a conditional with one arrow exiting the loop, and one going back to the connector. Off-page connectors are often used to signify a connection to a (part of another) process held on another sheet or screen. It is important to remember to keep these connections logical in order. All processes should flow from top to bottom and left to right.

The basic flow chart symbols for construction of algorithms (the ANSI standard symbols) are as follows: 

As a whole, flow charting has been around for a very long time. In fact, flow charts have been used for so long that no one individual is specified as the "father of the flow chart". The reason for this is obvious. A flow chart can be customized to fit any need or purpose. For this reason, flow charts can be recognized as a very unique algorithms description method

The following is a partial listing of software packages designed specifically for flow charts.

MS Word and PowerPoint are capable producing flowcharts too.

Flowcharting is a useful tool for analyzing algorithms. It allows you to break any algorithm down into basic steps and to display these in shorthand form showing the logical relationships between them. Constructing flowcharts promotes better understanding of algorithms, and better understanding of algorithms is a noble goal for any CS student and not only student.

Flowcharting, as a tool for clarifying situations and thus improving knowledge and understanding, is particularly useful when used in lectures or by a group or team. This is because by drawing a flowchart together you can:

Drawing a flowchart progressively on a whiteboard or flipchart, as team members contribute their information, opinions and ideas, will not only identify problems and areas of confusion, but will help focusing the team's attention on the most important properties of an algorithm. Be warned, however, that while flowcharting looks easy to do, it takes practice to use effectively. It forces users to identify algorithm steps so that they are clear and logical, which is of course its principal purpose.

How to draw a flowchart

There are no hard and fast rules for constructing flowcharts, but there are guidelines which are useful to bear in mind. Here are six steps which can be used as a guide for completing flowcharts.

  1. Describe the algorithm to be flowcharted in English using logical steps
  2. Start with the initialization of variables
  3. Note each successive action concisely and clearly
  4. Go with the main flow (put extra detail in other charts)
  5. Make cross references to supporting information
  6. Follow the process through to a useful conclusion (end at a 'target' point)

Top Visited
Past week
Past month


Old News ;-)

Computer Science Teacher - Thoughts and Information from Alfred Thompson Teaching Flowcharts – Have the Computer Draw One

Microsoft Visual Studio Middle School Power Toy 1.0 is a software package particularly designed by Microsoft to help middle school students learn computer programming.
July 29, 2008
Teaching Flowcharts – Have the Computer Draw One

Last week the Microsoft Visual Studio Middle School Toy was announced and I wrote about it in my blog. Today I wanted to give people a taste of what one of the features – the Visual Programming Flow Chart - looks like. It's really pretty simple to use. Point the mouse at a function/method name and right click for the context menu like this and select Generate flow chart


StatCounter - Free Web Tracker and Counter

The result will look something like this:


The color bars on the right let the user change the color coding for different things like loops, if statements, Try statements, etc. The resulting image can be saved as a JPEG file. This lets the user include it as documentation if they want.

This is not a super serious professional tool BTW. It seems to do a pretty good job for the student level modules I've tried it with though. I can see where it could be very useful for students because it shows what the logic of the code actually is rather than what the student might think it is. Note that right now it only works with C# – sorry about that. I've already started bugging people about Visual Basic support. :-)

81.06.03 Flowcharting A Method of Problem Solving by Sheryl A. DeCaprio


This unit is designed for use with seventh and eighth grade students as a supplemental activity and as an aid to develop problem solving techniques. This unit would be most beneficial if introduced in the beginning of the school year so that students may develop an understanding of the vocabulary and processes involved, then students may be encouraged to use this alternative method of problem solving throughout the school year.

The attractiveness of computers, computer languages, and computer games is evident, creating in this attractiveness a powerful and motivational learning tool. We have all seen our students on Saturday afternoons, pouring quarters into Space invaders machines or playing with electronic games. We cannot ignore the fact that computers are increasingly becoming part of our daily lives, and particularly,our students lives. Our students will undoubtedly be dealing with and operating computers in any career they choose. An early introduction of the student to computers and its use in problem solving will ensure, for the student, a certain degree of literacy and, proficiency in the usage of computers. We must help them relinquish their misconceptions that math and computers are beyond common knowledge and interesting to only a few crazed mathematicians while helping them develop a healthy attitude towards problem solving. All students would benefit from an introduction into the world of computers.

Computer Thinking and Flowcharting

Computers and computer programming has become an integral part of today's society. The usage of computers appears in the educational and business as well as the scientific fields. Computer usage is a powerful resource and one that will grow and eventually become an integral part of all our lives. With the emergence of computers as an important learning tool, we as educators must also prepare our students for the future. Computer literacy is needed by all students. Computer literacy implies a working knowledge of a math language, the language of programming, and an idea of what computers can and cannot do.

Programming languages are available in many shapes and sizes. Some are science oriented, some business oriented, and some developed for a particular computer system. They all share one similarity, they all are languages based in logic. A computer is simply a logic machine that performs computations and calculations at an incredible speed. What those of us not associated with computers do not realize is that these units are quite moronic and are only as efficient and effective as the person instructing or programming the machine.

Our students will enter an adult working world and will be faced with computers. They will need to understand and use this facility. Introducing the usage of computers, basic programming skills, and encouraging our children to think logically about solving problems will help them immensely when they enter the job market. The purpose of this unit is to act as an introduction to the thinking world of computers, to help students develop a math language and an alternative methodology that will enable them to solve all problems. This unit is directed specifically to those who still have difficulty deciphering and solving single and double-step word problems.

Most middle school students try to solve a word problem or any mutli-step task by trying to take intuitive leaps at the answer. This method has only two possibilities for solution. The answer is either right or wrong and efforts to solve the problem end. Students have attacked the whole without ever contemplating alternative ways of dealing with the problem. Our students would best solve problems if they critically read each problem and determined what information is given, what kind of answer should be returned, and what steps or calculations are needed to obtain this answer. This need not be so difficult to achieve. The introduction of computers, how computers work, and flowcharting will help students develop ways to handle these problems. Methods must be developed to help students relate the immediate problem to ones they have previously solved. Our students can solve these problems if we can explain how to break large difficult problems into small manageable ones. Again, a step by step procedure to solve tasks. Many of our students believe or have been told that they're just "not good in math". Ideally, with computers as a motivational tool, these students will also be able to achieve success in school mathematics.

The key to developing a child's ability to think logically is to have him talk through or explain how he goes about solving a problem. This method of "talking through" the problem will force them to verbalize an explanation of a problem he may think he understands. A child who can explain how to solve a problem, whether it be a mathematical problem or some other task, truly understands the process involved and is not dependent upon rote memorization of a skill. How many students can actually explain how to subtract two numbers when regrouping is involved? Our goal is to help students sit back and think about what must be done before attempting to solve a problem. An efficient and powerful method to use is that of flowcharting a problem. Flowcharts are used in programming to diagram the path in which information is processed through a computer to obtain the desired results. The flowchart will be a general outline of how to solve a problem or perform a task. The chart will not only enable the creator of the chart to solve the problem but other students may follow that procedure as well. Below is an explanation of the symbols used in flowcharting.

... ... ...

Students should be encouraged to keep a notebook of charts explaining how to perform certain tasks. The use of general flowcharting techniques, especially those used to find area and perimeter, also help students adapt to the concepts of using variables and formulas, an important concept for children to grasp and necessary for math literacy.

A child who is able to develop a process for solving problems will achieve success in school and develop a healthier attitude towards learning. Flowcharting gives the children a direction and a method to decipher and decode the problems they, at one time, would not attempt. Practice and reinforcement of these skills will enable our students to solve any problem, and build their confidence in their own problem solving skills. To "think like a computer" that is to approach a task in a logical, sequential order, is to reorganize their thinking patterns and achieve success in developing problem solving techniques.

Teaching Flowcharting with FlowC Journal of Information Systems Education Find Articles at BNET

Journal of Information Systems Education, Spring 2004 by Gill, T Grandon

When detailed logic flowcharting fell out of favor as a commercial design tool starting in the mid-1970s, it was discarded by many IS educators. In doing so, however, we may have thrown the baby out with the bathwater. Many of the disadvantages of flowcharting as a commercial tool-such as the immense size of flowcharts of large programs-are not necessarily serious drawbacks in introductory programming classes. Several researchers have also found benefits from the use of flowcharts as a teaching tool. The challenge is to develop approaches whereby learning to program-not learning to flowchart-is emphasized. FlowC, a Windows-based flowcharting application, is an example of a tool that can be used to minimize the challenges of teaching flowcharting while retaining its benefits in the formative stages of learning to program. In addition to guiding the user through the creation of diagrams, FlowC also allows the user to view the code (or pseudocode) implied by each construct drawn in the flowchart. The user may also generate complete applications that may then be compiled and run in MS Visual Studio .NET. FlowC has been used for three semesters to teach introductory programming (in C) to undergraduate MIS majors. The students have found the program easy to use and have reported that flowcharting has been an important component of their overall learning in the course. In addition, analysis of survey data gathered from students suggests that learning flowcharting early in the course has benefited their learning in subsequent programming assignments.

Why use flowcharts

Hopefully you will be persuaded that there are good reasons for using flow charts to program microcontrollers in teaching electronics. So why choose Flowcode in particular? Flowcode was developed specifically for teaching programming skills in electronics and there are lots of features which support this. Firstly a simulation mode allows students to step through each icon in a chart and see the effects on the system on –screen. This simulation mode allows students to effectively 'see' their program running on screen. Secondly Flowcode is tightly integrated with a suite of hardware sub-systems – E-blockswhich allow electronic systems to be rapidly built. Flowcode contains on-screen representations of these sub-systems so that students can quickly learn how they work, and can 'glue' them together to form complex systems – for example a mobile phone.

Recommended Links

Google matched content

Softpanorama Recommended

Top articles


Phil Cohen, "Flowcharting Sessions", HCI Consulting, URL: (viewed Spring 1998)


There are dozens of flowcharting tools available on the market. Their capabilities range from the very simplistic drawing functions to advanced process mapping and simulation capabilities (found in high-end manufacturing simulation modeling tools). Microsoft provides pretty decent flowcharting capabilities in MS Word and Powerpoint. Some tools are free, see 7 Free online tools for creating flow charts

C-C++ Programming Tools by SGV Sarc - Flowcharts, AutoFormat and other tools.

Flowcharts From Source Code Understand code in less time Rich Trees What globals, structs are used CallFlow Fast attack, navigate in functions DataFlow Flowchart of Data Objects & parameter tracking Documentation Flowcharts of all functions, Code Metrics & more

Know more:

>> Crystal FLOW -- Why Crystal Flow Interactive Flowcharts HTML Documentation Code Navigation Premium Browsing Call/Caller/File Trees Screen Shots Systems Requirements

SmartDraw is the ideal choice for people who need to create professional-quality drawings quickly and simply, without having to take time to learn a complex application.

Quality Digest gives a list of 23 flowcharting programs, along with pricing, system compatibility and links to manufacturers' web sites (This site reflects prices before May 6, 1998).

The Centre for Virtual Organization and Commerce at Louisiana State University has developed a repository on a number of flowcharting tools such as SmartDraw Software , FlowCharter 7 Software, Visio, and ProcessModel.

"The Reengineering Distinctionary: Process description vs Process flowcharting", Francis Wade Consulting, URL: (viewed Spring 1998)

Code Visual to Flowchart - Reviews and free downloads at

Proof Software Graphicae

Graphicae's main selling point is its ability to add extra diagram, table and map features to Microsoft PowerPoint, making it easier for business users to create flowcharts, tables, marketing analysis and other data graphics.

Once installed, Graphicae has its own toolbar in PowerPoint to easily access its features. The Table Engine is intuitive and provides options for quickly creating and customizing tables. But although it easily creates tables, Graphicae does not solve the age-old PowerPoint problem of animating table cells.

Graphicae's Framework Engine is its most impressive feature, offering several diagrams that can be dropped into place on a slide and sized. Divided by category (financial, operations, sales, etc.), there are many flowcharts, diagrams and options to choose from, making it easy to create visuals out of complex company data.

While you can edit the pieces of a diagram individually by "ungrouping" the object (changing color, borders, etc.), it is not possible to resize individual parts of a diagram.

The Map Engine provides a variety of geographical maps, but again there are limited choices for resizing individual state and country shapes. And the text shown on a map image appears jagged and not as clean as text typed directly into a slide.

Overall, Graphicae provides some amazing diagrams and tables to help PowerPoint creators in the corporate world. But it lacks some customization features, and it's a Windows-only program.

Prices: download, $80; boxed, $90.
Contact: Proof Software LLC, 781.575.1001,


International Organization for Standardization (ISO), ISO 5807 Information processing -- Documentation symbols and conventions; program and system flowcharts ...

American National Standard, ANSI X3.6-1970, Flowchart Symbols and their Usage in Information Processing

HCi publication: Writing Effective Performance Support Documentation

Please see our new web site for further articles on knowledge management, operational effectiveness, compliance and quality management.



Groupthink : Two Party System as Polyarchy : Corruption of Regulators : Bureaucracies : Understanding Micromanagers and Control Freaks : Toxic Managers :   Harvard Mafia : Diplomatic Communication : Surviving a Bad Performance Review : Insufficient Retirement Funds as Immanent Problem of Neoliberal Regime : PseudoScience : Who Rules America : Neoliberalism  : The Iron Law of Oligarchy : Libertarian Philosophy


War and Peace : Skeptical Finance : John Kenneth Galbraith :Talleyrand : Oscar Wilde : Otto Von Bismarck : Keynes : George Carlin : Skeptics : Propaganda  : SE quotes : Language Design and Programming Quotes : Random IT-related quotesSomerset Maugham : Marcus Aurelius : Kurt Vonnegut : Eric Hoffer : Winston Churchill : Napoleon Bonaparte : Ambrose BierceBernard Shaw : Mark Twain Quotes


Vol 25, No.12 (December, 2013) Rational Fools vs. Efficient Crooks The efficient markets hypothesis : Political Skeptic Bulletin, 2013 : Unemployment Bulletin, 2010 :  Vol 23, No.10 (October, 2011) An observation about corporate security departments : Slightly Skeptical Euromaydan Chronicles, June 2014 : Greenspan legacy bulletin, 2008 : Vol 25, No.10 (October, 2013) Cryptolocker Trojan (Win32/Crilock.A) : Vol 25, No.08 (August, 2013) Cloud providers as intelligence collection hubs : Financial Humor Bulletin, 2010 : Inequality Bulletin, 2009 : Financial Humor Bulletin, 2008 : Copyleft Problems Bulletin, 2004 : Financial Humor Bulletin, 2011 : Energy Bulletin, 2010 : Malware Protection Bulletin, 2010 : Vol 26, No.1 (January, 2013) Object-Oriented Cult : Political Skeptic Bulletin, 2011 : Vol 23, No.11 (November, 2011) Softpanorama classification of sysadmin horror stories : Vol 25, No.05 (May, 2013) Corporate bullshit as a communication method  : Vol 25, No.06 (June, 2013) A Note on the Relationship of Brooks Law and Conway Law


Fifty glorious years (1950-2000): the triumph of the US computer engineering : Donald Knuth : TAoCP and its Influence of Computer Science : Richard Stallman : Linus Torvalds  : Larry Wall  : John K. Ousterhout : CTSS : Multix OS Unix History : Unix shell history : VI editor : History of pipes concept : Solaris : MS DOSProgramming Languages History : PL/1 : Simula 67 : C : History of GCC developmentScripting Languages : Perl history   : OS History : Mail : DNS : SSH : CPU Instruction Sets : SPARC systems 1987-2006 : Norton Commander : Norton Utilities : Norton Ghost : Frontpage history : Malware Defense History : GNU Screen : OSS early history

Classic books:

The Peter Principle : Parkinson Law : 1984 : The Mythical Man-MonthHow to Solve It by George Polya : The Art of Computer Programming : The Elements of Programming Style : The Unix Hater’s Handbook : The Jargon file : The True Believer : Programming Pearls : The Good Soldier Svejk : The Power Elite

Most popular humor pages:

Manifest of the Softpanorama IT Slacker Society : Ten Commandments of the IT Slackers Society : Computer Humor Collection : BSD Logo Story : The Cuckoo's Egg : IT Slang : C++ Humor : ARE YOU A BBS ADDICT? : The Perl Purity Test : Object oriented programmers of all nations : Financial Humor : Financial Humor Bulletin, 2008 : Financial Humor Bulletin, 2010 : The Most Comprehensive Collection of Editor-related Humor : Programming Language Humor : Goldman Sachs related humor : Greenspan humor : C Humor : Scripting Humor : Real Programmers Humor : Web Humor : GPL-related Humor : OFM Humor : Politically Incorrect Humor : IDS Humor : "Linux Sucks" Humor : Russian Musical Humor : Best Russian Programmer Humor : Microsoft plans to buy Catholic Church : Richard Stallman Related Humor : Admin Humor : Perl-related Humor : Linus Torvalds Related humor : PseudoScience Related Humor : Networking Humor : Shell Humor : Financial Humor Bulletin, 2011 : Financial Humor Bulletin, 2012 : Financial Humor Bulletin, 2013 : Java Humor : Software Engineering Humor : Sun Solaris Related Humor : Education Humor : IBM Humor : Assembler-related Humor : VIM Humor : Computer Viruses Humor : Bright tomorrow is rescheduled to a day after tomorrow : Classic Computer Humor

The Last but not Least Technology is dominated by two types of people: those who understand what they do not manage and those who manage what they do not understand ~Archibald Putt. Ph.D

Copyright © 1996-2021 by Softpanorama Society. was initially created as a service to the (now defunct) UN Sustainable Development Networking Programme (SDNP) without any remuneration. This document is an industrial compilation designed and created exclusively for educational use and is distributed under the Softpanorama Content License. Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.

FAIR USE NOTICE This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner. We are making such material available to advance understanding of computer science, IT technology, economic, scientific, and social issues. We believe this constitutes a 'fair use' of any such copyrighted material as provided by section 107 of the US Copyright Law according to which such material can be distributed without profit exclusively for research and educational purposes.

This is a Spartan WHYFF (We Help You For Free) site written by people for whom English is not a native language. Grammar and spelling errors should be expected. The site contain some broken links as it develops like a living tree...

You can use PayPal to to buy a cup of coffee for authors of this site


The statements, views and opinions presented on this web page are those of the author (or referenced source) and are not endorsed by, nor do they necessarily reflect, the opinions of the Softpanorama society. We do not warrant the correctness of the information provided or its fitness for any purpose. The site uses AdSense so you need to be aware of Google privacy policy. You you do not want to be tracked by Google please disable Javascript for this site. This site is perfectly usable without Javascript.

Created Nov 1, 1996; Last modified: March 12, 2019