what cmos need to know about algorithms