I agree --use this as a learning exercise. I have read your post briefly. I think, as others have kind of indicated, that you may not have your real requirement nailed down. My quick reading suggests you are trying to find how many students attended programs - but I may have misunderstood the thread.

So in simple English:

Teachers "present" Programs in sessions (where a session has a start-stop time is given by a Teacher to students)


Students could say or be marked "present" for a given program session or sessions.
Teachers could identify the number of students who attended a session.

Some of these may give you some ideas.
As always -be clear on your requirement. Don't make design a trial and error journey.

Requirements
Model
Test data and test the model
Revise and repeat until it meets your needs
Then build the database.

Good luck.