A computer-aided flow diagram teaching system

This paper describes a system intended to aid beginning computer science students develop a systematic approach towards problem solution using structured flow diagrams. The student is carefully monitored during the specification of an initial flow diagram and through successive stages of refinement. As each new flow diagram symbol is entered, the system checks to see that the student is being consistent with earlier work and has not introduced potential errors. The flow diagram is an intermediate level representation of an algorithm which is independent of the particular programming language chosen for implementation. When the structured flow diagram has been completely refined, the final translation to a programming language is relatively automatic. To test the program logic, the resultant source code should be executed. The student can modify the flow diagram, generate new code, and re-execute until the program runs correctly.