Programs(UserName) is text but User(ID) is integer. ProgramList(Program) is not unique. Your schema is logically inconsistent.
Programs(UserName) is text but User(ID) is integer. ProgramList(Program) is not unique. Your schema is logically inconsistent.