Stream cipher example for an introductory cryptography course I am looking for an easily defined stream cipher to illustrate two basic principles in an undergraduate cryptography course: 


  
  not every bit of the internal state should be used in the keystream;  
  some non-linear operations should be used to step the internal state. 
  


So far, my only candidate is the Geffe generator. But this is a bit too easily broken. My ideal example would be a stream cipher showing (1) and (2) that was a bit stronger than the Geffe generator, but still easily defined, and still breakable by a correlation attack. 

If there are no candidates then I'd welcome suggestions for a simple design meeting my requirements.
The shrinking generator (open to divide and conquer) or self-shrinking generators are possibilities.

If you use a nonlinear combination generator with 3 relatively prime length primitive LFSRs and a nonlinear boolean function $f(x_1,x_2,x_3)$ you can also illustrate the tradeoff between nonlinearity and the degree of the function (Xiao-Massey lemma) as well as have some room for divide and conquer. You can spend 10 minutes on Geffe and show how its weaknesses can be ameliorated with this generator.

It also enables you to explicitly compute the nonlinearity via $f(L_1, L_2, L_3)$ over the integers.