I thought this was supposed to be uncontroversial?
Classes? You can't be serious! Logic? If slashdot is any indication, most programmers couldn't pass an undergrad course in logic. Sure, you'll need an incredibly tiny subset of logic, but it's not a topic that needs special consideration. Most beginners work out the basics themselves without assistance. They certainly don't need a through understanding of the subject like a philosopher. I could go on ...
A better (much shorter) list of fundamentals:
- Data - variables, types, and structures (Just the basics, of course.)
- Flow control (iteration, branching)
That's it, really. (I may have even gone too far!) I can't really add anything else without stepping in to controversial territory.
Useful is a different matter, naturally, and we could add quite a bit more to the list. Though I doubt that it would be nearly as long as yours without becoming controversial.