This document provides an introduction to software defined networking (SDN). It discusses the history and disadvantages of traditional networking approaches. SDN aims to address these issues by separating the network control and forwarding functions, and enabling programmability of the network. The key components of an SDN architecture are described, including the OpenFlow protocol for communication between the control plane and data plane. Several SDN controllers and their programming languages are also mentioned. The document concludes with the objectives of running an SDN demonstration lab using Mininet to experiment with OpenFlow and SDN controllers like Ryu.