This document introduces software frameworks and web frameworks. It defines a framework as reusable code with a well-defined API that can be overridden by user code. Frameworks are distinguished from normal libraries by additional features like coding methodologies and solutions to common problems. The document discusses examples of web frameworks for both server-side and client-side development, as well as common framework features like security, database mapping, URL mapping, MVC patterns, and templating. Key terms related to frameworks like design patterns, convention over configuration, and plugins are also introduced.