When I was studying, my professors had different approaches when teaching programming to beginners:Choose a language with which the professor is comfortable and fulfills the course requirements but might not be so popular in the real world. I had this experience with Mathematica programming. We would spend lots of time dealing with this language and as a result less time dealing with the programming language per se.Teach in a flavor of pseudo-code. This makes it harder to commit errors cause by compilers, interpreters and syntax in general and allows the students to focus in the problem. Naturally has the disadvantage that you can't run your code anywhere.What do most professionals and students prefer when teaching/learning algorithms and basic programming?
Should the first Programming/Algorithms class be taught in pseudo-code?
pseudo code
Yes, the first algorithms class should be taught in pseudo-code(And teach logic tables too.)If the objective of the class is to teach algorithms and programming, not a programming language, the pseudo-code is the way to focus on the objectives, not the tools. Flow charting can be included, but need not be either.Programs written in pseudo-code don't have syntax errors, or compile-time errors. They don't have strict type-classing or confusingly abbreviated function names. They only have logic and design.After a program is written in pseudo-code it can be run on your desktop, the real one, not the metaphor created by Xerox (yes, Xerox, in 1970). Doing such a so-called Hand-check helps find logic errors and develops a better understanding of programming theory than jumping right into a formal language, no matter how simple it is. It's also a convenient skill to have as a functioning programmer for the occasions when logic error do get compiled and the environment does not include a step debugger. Some employers still test for that skill. (see the University of Kent's remarks.)For simple instruction on how to hand-check code see this from Dr. John Dalbey of CalPoly.Lastly, to allow a veteran educator to weigh in I'll mention the blog of Alfred Thompson about Hand-checking.Until computers can do what we mean we have to live with them doing what we tell them, and that's going to involve errors in how we say what we mean.