Um, I'd say these guys, with all due respect, should have looked at the definition of an algorithm:
A step-by-step problem-solving procedure, especially an established, recursive computational procedure for solving a problem in a finite number of steps. (source:
algorithm - Definitions from Dictionary.com )
Mathematical logic, in fact, is a fundamental necessity in my not-so-humble opinion. For instance, w/o such logic, could you easily determine if the following 2 conditional expressions are equivalent?
Code:
if (!($user_logged_in && $user_attempting_to_login)) {
//Do something
} Code:
if (!$user_logged_in || !$user_attempting_to_login) {
} Personally, I find the second easier to read.
For those who aren't sure, those 2 statements are logically equivalent. Namely, NOT(A and B) => NOT(A) or NOT(B)
Now, to be fair, my degree's in math, so I probably take greater exception to such a claim than most may.
Now, if we examine the question "Could one learn programming w/o a mathematical background?" I'd answer, "Yes, but I don't want to look at their code!"
Babbling on...
Even though math is
an underlying principle in many algorithms, it is the presentation of programming from a substantially mathematical viewpoint which throws many - even people with a mathematical background. As with any subject, your students will learn best if you can put things in terms of something with which they are intimately familiar.