I'd start looking at the ACM curriculum recomendations. They break down what a bachelor's degree should cover, in gread detail.
Yes, it covers some four years of coursework, full time. No, as Euclid is reported to say, there is no royal road.
Although it should probably be only one strategy among many, you might teach it through practical examples. In this short program that uses flask_user (and
which students can install in just a few minutes) the decorator ensures that only authenticated users can use the route:
There are two somewhat separate concepts of a decorator. I'm guessing that you mean the one related to using "first class" functions in Python or in a more traditional functional language. The other concept is from OO programming and involves the method structure of an object. They are related, of course, since a function in Python is an object.
After examining a number of the relevant syllabi, I have come to the conclusion that the CS programs of the "top" CS schools, MIT, Stanford, Cal Tech, and CMU are all innovative and thereby different from those of Ivy League schools. (For instance, CMU offers a joint CS and Psychology degree.) To a lesser extent, this appears to be true of certain ...