|Syntactic Confectionery Delight|
Variables, control structures, and functions, definitely. Operators is another big one. In particular, I think a lot of non-programmers have trouble internalizing the distinction between assignment and comparison operators. Going over logical operators also gives people a good chance to connect with programming on an intuitive level (everyone understands what "and" and "or" and "not" mean).
Also, the concept of events and event handlers is pretty fundamental.
Update: * Pun unintentional, but I like it.