flowcharts and teaching programming