Wireless sensor networks (WSNs) are used in several pervasive and ubiquitous applications such as security, health care, agriculture, environment and habitat monitoring. WSNs consist of a large number of sensor nodes which contain a few traditional sensors such as temperature, light, moisture, mobility, and pressure. Further, these wireless sensors are equipped with limited computing, storage, and communication resources. For extended network monitoring and easy maintenance. energy efficient data dissemination techniques are needed. This tutorial identifies the key challenges, techniques, and algorithms for energy efficient communication in WSNs. It would be beneficial for researchers, practitioners, and students. The tutorial will cover the following topics: Introduction to WSNs, Coverage and Connectivity, Cross layer Optimization, Virtual Antenna Arrays, MAC Layer, Routing, Algorithms, and Applications.