This document provides an introduction to the network simulator NS-2 and its scripting language OTcl. It discusses basics of OTcl like classes, objects, and methods. It provides examples of creating classes and objects in OTcl. It also explains the structure of an NS-2 simulation including creating the event scheduler, topology, sending data using UDP/TCP, and tracing outputs. Suggested readings on OTcl and NS-2 tutorials are provided at the end.