This document provides an overview of computer numerical control (CNC) and programming. It discusses the history of NC machines from 1945 onwards. It then defines numerical control and describes how the control strategy is applied to machine tools like lathes and mills. The document outlines the advantages of CNC machining over conventional machining and lists some common applications. It also discusses elements of the NC system like data processing units, classification of systems, and CNC axes nomenclature. Finally, it provides a brief introduction to CNC programming concepts like workpiece and machine zero, G and M codes, programming methods like point-to-point and continuous path, and examples of simple CNC programs.