This document provides an overview of network programmability and Software Defined Networking (SDN). It discusses the evolution from traditional networks to SDN, including early concepts like active networking and separating the control and data planes. OpenFlow is introduced as an SDN protocol that enables an external controller to program the forwarding behavior of network switches. Key benefits of SDN like network programmability, innovation, and direct control over the data plane are covered. The roles of the SDN controller and OpenFlow switches are described. Examples of SDN applications and components like controllers are also mentioned.