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.