To answser the question of whether or not programming knowledge is required to use C2. You have first to define what programming is.
If, to you programming is the sum of some obscure syntax and some mathematical formula. I'd say you've got a narrow view of it.
If you define programming as "a way to tell the computer what to do", then everything you do in your event sheet, is actually, a form of programming.
And once you learn more common way to program (C, Java, Javascript,...), you will notice that you're just doing exactly the same thing. In programming you have condition, you can make the computer do things (actions) and you definitely use some expression. You can also use loops and function.
In my opinion (and that's only mine), I don't think that "no programming knowledge required" is really true. I would rather say "no scripting knowledge required" and also "a really fast programming learning curve".
Because using Construct2, you have under the hood some boilerplate code in the form of the C2 engine itself, some plugins and behaviors that allows you to directly start with the most interesting part: making things move on screen using some inputs.
If you were to code a game in raw javascript from scratch, and I did, you would have to handle asset loading, collision polygon creation, some way to create levels, and also be careful about browser compatibility and performance.
Using Construct2, you can just (almost) ignore everything, and get started.
And because you can directly see results, you learn some programming concepts very fast. Those who learnt programming the hard way had to write awefully boring programs with assignements like:
"write an isLeapYear function to find if a year is a leap year" or "model a shopping cart" or "write a sorting function to sort numbers in an array" etc.
Some find that interesting (and I did), but seriously... Learning programming while making your own game is so much more motivating.
So in conclusion, to me, C2 is programming made accessible for every beginners.