This document discusses computer numerical control (CNC) systems. It aims to help the reader understand the main components of a CNC system including point-to-point positioning and contouring systems. It also aims to teach how to write simple CNC milling programs. CNC systems use onboard computers to control machines from pre-programmed numeric data, allowing remote programming and manual modification of programs. The availability of low-cost programmable controllers enabled the widespread adoption of CNC in manufacturing.