Add uptodate checks for program object to avoid recomputation if not needed
respond to code review comments
Merge pull request #358 from Microsoft/uptodatecheck

Add uptodate checks for program