This document introduces stacks and their operations. It defines a stack as a LIFO data structure where insertion and deletion is done from one end. The core operations on a stack are push to insert and pop to delete elements. Stacks can be implemented using arrays or linked lists. The document describes push and pop algorithms for stacks implemented with arrays. It provides examples of applications of stacks, including for recursion, arithmetic expressions, and the Towers of Hanoi problem.