I follow "20 + 20 + break" approach. My father used it for 30+ years (professor of physics and CS).
It means 20 minutes of theory, 20 minutes of practice, 10-minute break. It can be 25 + 25 + 5, or something along these lines. I never do more than 25. The bottom line is that people are getting bored after more than 20 minutes of theory.