I've tried something and it seems fine:
Person (PersonID, info...)
PersonProgram (ID, PersonID, ProgramID, Date_of_signup)
Program (ProgramID, Name, Start, End, ProjectID)
Project (ProjectID, Name)
Program doesn't belong to multiple projects only to one !