add description of basis of programming