In my opinion, those likely to be end users or power users mostly need to know about factoring (redundancy), set theory versus hierarchies; and associations, such as 1-to-many relationships versus many-to-many relationships.
Understanding loops and IF statements is good knowledge perhaps, but end users seem more lacking in practical knowledge about relationships of data objects (information) than they do relevant knowledge of loops and conditionals, and this leads them to poor decisions and confusion when working with developers and analysts.
In other words, focus first on enabling them to work better with IT rather than to potentially be or replace IT. And understanding factoring and relationships is good education for future programmers anyhow, if they go that route.
Roughly half the students will eventually be involved with IT design decisions, but only 1% or so will be developers. Thus, rather than try to improve or increase just that 1%, enable the 50% by making them better able to communicate with IT. It's a larger total benefit to society.