Blog Post

How come we don’t teach program flowcharting anymore?

What I found somewhat surprising during my training for Exploring Computer Science and Computer Science Principles courses was the lack of instruction in flowcharting for students. Like many others who took the training, I had been teaching in other subject areas and my computer programming background was obtained during an earlier time in my life when I was engaged in a different career. Unlike my own academic experience when I first learned to program, there is a great emphasis today on using a variety of unplugged activities with students. When I learned programming in the 1980s, the only unplugged activity was creating a flowchart.

I have to admit that that some of my favorite lessons in computer science never involve the use of a computer. There were several that struck a memorable chord with my students in the Exploring Computer Science course. The first compared different views of data. Groups of students were given an image, list of items, or a wordle—each describing the same set of information. My students were struck at the differences in information gleaned from the various data sources. Some of the best teaching moments are found when the students come together and compare their data. It reminds them that no one form of data representation is truly complete.

Another memorable lesson was Muddy City, which used a picture to study minimal spanning trees. My students enjoyed the competitive element as they compared with other groups to see who could connect all of the houses with the least number of blocks. Both of these lessons share some great CS teaching techniques. Having students work in groups to solve problems enhances their collaboration skills. Muddy City, in particular, is a great introduction to algorithms since students need to develop a specific, step by step process to optimize their answers. Our first exploration of algorithms was the “make a peanut butter and jelly sandwich” lesson. Certainly any lesson that ended with a snack was well received by my students.

Old School Programming Instruction

Teaching your students to write and read flowcharts can be a valuable addition to the lessons you use. Flowcharts provide a simple way to express program design. They are also a good tool for the visual learner to plan loops and other control structures that their programs will utilize. Thinking about how code should behave is a critical skill for beginning programmers to develop. Many of the troubleshooting that I have needed to perform with my students centers not on syntax, but on program logic. Having students appreciate the correct sequence of programming statements will help them write code that is more readable and functional.

When I took my first course in Fortran 77 way back in the mid-1980s, we were always told that we should construct a flowchart before writing a single line of code. My instructor wanted to make sure that we had a basic understanding of what our program was supposed to do prior to declaring the first variable or writing the first subroutine. While the systems I worked on were not steam-driven, my programs were always designed first with a flow chart, hand written on Fortran coding sheets, input on punched cards, and finally run on an IBM mainframe. It took time for the program to execute and the resulting output to be placed on a counter to be checked. If there was an error, I had to pull the problem punch card out of the stack, rekey the command on a new card, and submit the program once again. This entire process would be very time-consuming and troubleshooting errors often required multiple attempts to get the code running properly.

Writing a flowchart requires nothing more than blank paper and a pencil. Certainly a ruler and other basic drawing tools can be helpful. I still have my green flowchart template that made creating the basic symbols seen in the image quick and easy.

Flowcharts have not disappeared from the education landscape. The illustration below has been used by my students when we were doing basic troubleshooting of computer hardware. Flowcharts and decision trees are used in many other disciplines as well.

At my school, you see flowcharts being used in biology, math, and other disciplines. Biology students use flowcharts to learn about photosynthesis. Math students can use flowcharts for solving equations.

 

Resources

Of course the internet has a great number of sites you can use. Draw.io is online and free. If you want to install and download a program, consider Dia Diagram Editor. It is available for Windows, Mac, and Linux under the GNU Public License.

 

What types of “old school” lessons do you use with your students? Please share your ideas with others in the CS for All Teachers community!

Neil Plotnick (nplotnick@everett.k12.ma.us) works at Everett High School, an urban district located just north of Boston. In 2015, he was a recipient of the Presidential Award for Excellence for Math and Science Teaching (PAEMST).  He has taught Exploring Computer Science and was a pilot site for the AP Computer Science Principles course developed by Code.org during the 2015-16 academic year.

 

Image Sources:

http://csteachingtips.org/tip/use-activity-introduces-minimal-spanning-trees-having-students-determine-minimum-number-roads

A young Neal Plotnick coding back in the 80s

http://www.smithdrafting.com/rapidesign.htm

http://computingattallis.weebly.com/algorithms.html

www.computerhope.com

Everett High School class materials

 

Comments

Permalink

Submitted by John Mathew on Fri, 03/31/2017 - 12:31 am EDT

Writing go with the flow charts used to be the usual for designing software. What builders discovered was that they spent far too much time developing those go with the flow charts, and that they wound up being erroneous after they sincerely applied their code. I nonetheless have a template for drawing them out manually, and have a couple of licenses to expensive software program that did not pay for itself.Pseudo code is sort of a black art, and it's significantly undervalued. I do not assume that most software program engineers or managers recognize the fee of describing what you want to do in simple textual content. It's also feasible that programming courses sense that there isn't enough of a cognitive bounce among writing pseudo code and writing real code.Feel free to visit this website: http://usawriters.org

Permalink

Submitted by Cynthia Mills on Tue, 04/18/2017 - 2:17 am EDT

Nice information. It's helpful. Thanks!

http://bulletforcegame.com/

Permalink

Submitted by Alison Daewon on Thu, 10/12/2017 - 9:06 am EDT

Teachers focused on value give all students in a school with a comprehension of the advantages thorough educational program. Such teachers lead student congregations as well as introductions to guardians that obviously portray the upsides of taking an AP course and framework the work expected of students http://www.bestassignmentservice.com

Permalink

Submitted by Christina Rosales on Thu, 05/21/2020 - 2:56 am EDT

You can ask write my movie review from professional writers and get the best paper in the shortest terms. Sometimes it is impossible to go on without assignment help writing services.