Flowcharting as a separate class before programming courses?

A Colleague's Comments:

The problem I saw in the 80’s and 90’s in college, and now in High school (and lower) since 2000 is that kids haven’t developed the HOTS that decent programming (even in something as simple as qBASIC) requires. They write code and tinker with it until it works, too often not even knowing why.

This is why I recommend flowcharting. I have gotten feedback from former students who are now teaching, I talk to people I know in industry, and I observe student myself. Everything supports my stand that if you teach programming first, the issue of thinking clearly is clouded by the learning of a “new language”.

Another point: the learning of a flowcharting program will be a wonderful tool for them in the long-run. It is used in the legal, medical, construction, and business  fields, to plan.

I won’t deny that a good teacher can teach clear, organized thinking by using qBASIC. But I do maintain that it is harder and less productive. I have fought the battle for 25+ years, and have seen too many wonderful successes by teaching logic first (using Chartist, Flowcharter, Flochart 123, then Visio), then a programming language.

Visio is more than a ‘good’ program. It is wonderful and versatile. I even complete rough drafts of fairly complex websites for clients in a couple of hours, permitting them to preview and decide on features before a lot of my billable time is spent.

I like your last sentence: better to learn to walk . . .”. I would suggest that learning the logic behind the programming IS walking. Asking kids to program, is asking them to start off jogging.

Good luck! Isn’t it wonderful to be able to make a difference, and know that the kids we teach will be doing the same long after we are gone?


My Comments:

01/24/2006

 
I guess my question is - Who is teaching programming languages without flow charts, logic structures, and/or modules? The teacher that is just giving them the code without teaching the logic is not teaching programming. Defining the purpose, inputs, outputs, modules, logic structures, etc is the core of a good programming class.
 
I had programming classes in High School in the 70s. We learned three languages and in all cases we had to turn in a flowchart before we could start code. In those days we turned in our written code and had it approved before we could use the punch card machine. Most of the Computer Science teachers I know still do that - in a modern way.
 
I taught programming in the 80s & the 90s - always using flow charts and logic structures as a key part of the learning process. I used the same process when I taught advanced Lotus and dBase at college. When I started teaching Microcomputer App.s and then BCIS I used the process again. If the problem is complex, then the flow chart or logic structure or modular design or ... is the way to go.
 
We must integrate Higher Order Thinking Skills into all of our teaching and not wait for the students to "develop" it. Programming classes are an excellent place for students to develop the skills. When I worked at a middle school 13 years ago, we taught programming in eighth grade. I can attest to the fact that most of the students were developmentally capable of learning the logic and the problem solving. But that does not mean it was easy to teach.
 
Today it is even more critical to expose students to as many languages as possible. I include SQL, HTML, PHP, advanced MS Access, advanced MS Excel, Java, Visual Basic, and more in my list of what can be taught in secondary schools. (6th - 12th) We can also add server languages, MS, Novell, Linux, Unix, etc. through Telecommunications and Networking classes. 
 
All of these will help develop the "whole" student and give them the confidence in solving problems that they need for the TAKS, SAT, and so on. I truly believe that reducing the classes student take to only the core is causing long term problems with testing.
 
Many students learned organization and problem solving in their drafting and wood working classes. They learned confidence in theater arts, creativity in art and music classes, logic and problem solving in both computers and - yes - homemaking. (Try making a pair of pants by yourself for yourself and see what I mean.) Yet these programs are gone in many middle schools and junior highs and depleted in a lot of high schools. In addition, due to a lack of funding, many of the programs that still exist have scaled back what they do to little more than book work and a few little projects.
 
There are also a lot of classes students are very interested in, such as Technology Applications courses, that schools do not run so that they can collect more money by offering a funded CATE class. So we discourage Computer Science, Webmaster, Desktop Publishing, Digital Graphics and Multimedia so that student can take BCIS. I understand that we need money, but keep the students interested and they stay in school, and I mean more than High School.
 
We need to quit selling our students short. Do not let the lazy students and the overprotective parents set the agenda and the curriculum. Let all of us assume that the students can do it. Set High Expectations and work a little extra to help the students achieve success. Go to the ARD meetings and volunteer to have those students in your class. Push them, pull them, encourage them, and they will become more successful than anyone imagined. And it will help their TAKS also.
 
I think that sometimes teachers use the "student centered learning" to justify "student self learning" in their classrooms. I also believe that most teachers who are being honest know how easy it is to slip into that habit.
 
Is Don correct? Yes, I am sure he is - to an extent. Do teachers just give code and let students tinker? I am sure some do. I am also sure that there are a lot of high quality Computer Science teachers who do an excellent job of teaching all the logic with the language. The proof of this can be seen in many of the UIL contests. These students crawled, walked, jogged and are now sprinting a marathon.
 
All classes from math to keyboarding need their students to have the proper background knowledge in order to be successful. Today it seems that we quite often find our students missing key knowledge and skills. As a student my teachers would stay after school and in from lunch to help me. As a teacher I need to do the same. As a student I had many interesting courses to chose from. As a teacher I sometimes teach three courses during the same period to give my students the same opportunities. Don - I understand your point, but I feel that an entire class for flowcharting is difficult to justify because in today's schools students do not have enough room in their schedules to dedicate an entire half credit or more to it. Plus, many Computer Science degree programs will go back and spend an entire class on this, so it will not hurt their long term professional skills. I work towards finding ways to offer as many options to students as possible.
 
One thing to remember - all of us programmers, computer geeks and teachers are famous for believing our way is the best. So I guess this should all come with a huge grain of salt. If learning is taking place we should be happy.
 
Thanks,
 
Dirk D Dykstra
 
Trackbacks
  • No trackbacks exist for this post.
Comments
  • No comments exist for this post.
Leave a comment

Submitted comments are subject to moderation before being displayed.

 Enter the above security code (required)

 Name (required)

 Email (will not be published) (required)

 Website

Your comment is 0 characters limited to 3000 characters.